当前位置: 首页 > news >正文

实验十九 GaussDB三权分立实验

一、三权分立简介

SYSADMIN:

系统管理员权限,不再具有创建、修改、删除用户/角色的权限,也不再具有查看和维护数据库审计日志的权限。

CREATEROLE:

安全管理员权限,具有创建、修改、删除用户/角色的权限。

AUDITADMIN:

审计管理员权限,具有查看和维护数据库审计日志的权限。

二、三权分立机制开启

此模式需要设置guc参数"enableSeparationOfDuty"的值为"on",该参数为POSTMASTER类型参数,修改完之后需要重启数据库。

#分布式

gs_guc set -Z coordinator -Z datanode -N all -I all -c "enableSeparationOfDuty=on"

#集中式

gs_guc set -Z datanode -N all -I all -c "enableSeparationOfDuty=on"

#重启集群

cm_ctl stop && cm_ctl start

三、创建三类管理员角色(超级用户执行)

创建系统管理员:负责资源调度、数据库维护

CREATE USER test_sysadmin WITH SYSADMIN password "Huawei@1234";

创建安全管理员:负责用户、权限、策略管理

CREATE USER test_createrole WITH CREATEROLE password "Huawei@1234";

创建审计管理员:负责审计日志查询与清理

CREATE USER test_auditadmin WITH AUDITADMIN password "Huawei@1234";

四、创建普通用户

1.系统管理员

创建普通用户:

gsql -dpostgres -p8000 -Utest_sysadmin -WHuawei@1234 -ar
create user test_sys_user with password 'test@123';

2.安全管理员

创建普通用户:

gsql -dpostgres -p8000 -Utest_createrole -WHuawei@1234 -ar
create user test_cre_user with password 'test@123';

3.审计管理员

创建普通用户:

gsql -dpostgres -p8000 -Utest_auditadmin -WHuawei@1234 -ar
create user test_aud_user with password 'test@123';

4.测试结果

系统管理员执行命令失败;

安全管理员执行命令成功;

审计管理员执行命令失败;

五、创建database

1.系统管理员

创建数据库:

gsql -dpostgres -p8000 -Utest_sysadmin -WHuawei@1234 -ar
create database testdb;

2.安全管理员

创建数据库:

gsql -dpostgres -p8000 -Utest_createrole -WHuawei@1234 -ar
create database testdb;

3.审计管理员

创建数据库:

gsql -dpostgres -p8000 -Utest_auditadmin -WHuawei@1234 -ar
create database testdb;

4.测试结果

系统管理员执行命令成功;

安全管理员执行命令失败;

审计管理员执行命令失败;

六、创建schema和table

1.系统管理员

创建测试schema和表,并写入数据

gsql -dtestdb -p8000 -Utest_sysadmin -WHuawei@1234 -ar
CREATE SCHEMA test_schema;
CREATE TABLE test_schema.sales (id int, amount numeric, region text);
INSERT INTO test_schema.sales VALUES (1, 1000, 'North'), (2, 1500, 'South');

2.安全管理员

创建测试schema和表,并写入数据

gsql -dtestdb -p8000 -Utest_createrole -WHuawei@1234 -ar
CREATE SCHEMA test_schema;
CREATE TABLE test_schema.sales (id int, amount numeric, region text);
INSERT INTO test_schema.sales VALUES (1, 1000, 'North'), (2, 1500, 'South');

3.审计管理员

创建测试schema和表,并写入数据

gsql -dtestdb -p8000 -Utest_auditadmin -WHuawei@1234 -ar
CREATE SCHEMA test_schema;
CREATE TABLE test_schema.sales (id int, amount numeric, region text);
INSERT INTO test_schema.sales VALUES (1, 1000, 'North'), (2, 1500, 'South');

4.测试结果

系统管理员创建schema成功,创建表和往表中插入数据成功

安全管理员创建schema失败,创建表和往表中插入数据失败

审计管理员创建schema失败,创建表和往表中插入数据失败

七、修改数据

1.系统管理员

gsql -dtestdb -p8000 -Utest_sysadmin -WHuawei@1234 -ar
update test_schema.sales set amount = 2000 where id = 1;

2.安全管理员

gsql -dtestdb -p8000 -Utest_createrole -WHuawei@1234 -ar
update test_schema.sales set amount = 2000 where id = 1;

3.审计管理员

gsql -dtestdb -p8000 -Utest_auditadmin -WHuawei@1234 -ar
update test_schema.sales set amount = 2000 where id = 1;

4.测试结果

系统管理员更新数据成功

安全管理员更新数据失败

审计管理员更新数据失败

八、修改密码和用户期限等策略

1.系统管理员

gsql -dpostgres -p8000 -Utest_sysadmin -WHuawei@1234 -ar
alter role test_cre_user valid until '2099-12-31';

2.安全管理员

gsql -dpostgres -p8000 -Utest_createrole -WHuawei@1234 -ar
alter role test_cre_user valid until '2099-12-31';

3.审计管理员

gsql -dpostgres -p8000 -Utest_auditadmin -WHuawei@1234 -ar
alter role test_cre_user valid until '2099-12-31';

4.测试结果

系统管理员用户期限限制失败

安全管理员用户期限限制成功

审计管理员用户期限限制失败

九、授予权限给用户

1.系统管理员

gsql -dtestdb -p8000 -Utest_sysadmin -WHuawei@1234 -ar
grant select on table test_schema.sales to test_cre_user;

2.安全管理员

gsql -dtestdb -p8000 -Utest_createrole -WHuawei@1234 -ar
grant select on table test_schema.sales to test_cre_user;

3.审计管理员

gsql -dtestdb -p8000 -Utest_auditadmin -WHuawei@1234 -ar
grant select on table test_schema.sales to test_cre_user;

4.测试结果

系统管理员用户授权成功

安全管理员用户授权失败

审计管理员用户授权失败

十、修改用户密码

1.系统管理员

gsql -dpostgres -p8000 -Utest_sysadmin -WHuawei@1234 -ar
ALTER USER test_cre_user IDENTIFIED BY 'TestNew@123';

2.安全管理员

gsql -dpostgres -p8000 -Utest_createrole -WHuawei@1234 -ar
ALTER USER test_cre_user IDENTIFIED BY 'TestNew@123';

3.审计管理员

gsql -dpostgres -p8000 -Utest_auditadmin -WHuawei@1234 -ar
ALTER USER test_cre_user IDENTIFIED BY 'TestNew@123';

4.测试结果

系统管理员用户授权失败

安全管理员用户授权成功

审计管理员用户授权失败

十一、回收权限

1.系统管理员

gsql -dtestdb -p8000 -Utest_sysadmin -WHuawei@1234 -ar
revoke select on table test_schema.sales from test_cre_user;

2.安全管理员

gsql -dtestdb -p8000 -Utest_createrole -WHuawei@1234 -ar
revoke select on table test_schema.sales from test_cre_user;

3.审计管理员

gsql -dtestdb -p8000 -Utest_auditadmin -WHuawei@1234 -ar
revoke select on table test_schema.sales from test_cre_user;

4.测试结果

系统管理员用户收回权限成功

安全管理员用户收回权限失败

审计管理员用户收回权限失败

十二、查看审计日志

1.系统管理员

gsql -dpostgres -p8000 -Utest_sysadmin -WHuawei@1234 -ar
SELECT * FROM pg_query_audit('2025-09-26 08:00:00', '2025-09-26 09:00:00') LIMIT 1;

2.安全管理员

gsql -dpostgres -p8000 -Utest_createrole -WHuawei@1234 -ar
SELECT * FROM pg_query_audit('2025-09-26 08:00:00', '2025-09-26 09:00:00') LIMIT 1;

3.审计管理员

gsql -dpostgres -p8000 -Utest_auditadmin -WHuawei@1234 -ar
SELECT * FROM pg_query_audit('2025-09-26 08:00:00', '2025-09-26 09:00:00') LIMIT 1;

4.测试结果

系统管理员查看审计日志失败

安全管理员查看审计日志失败

审计管理员查看审计日志成功

http://www.dtcms.com/a/449270.html

相关文章:

  • C++微基础备战蓝桥杯string篇10.5
  • 基于脚手架微服务的视频点播系统-脚手架开发部分-brpc中间件介绍与使用及二次封装
  • 网站建设需求登记表 免费下载软件开发公司企业简介
  • 北京城乡建设网站网站建设都是用什么软件
  • C++分布式语音识别服务实践
  • 轻松理解智能体设计模式(1/6):提示链(Prompt Chaining)
  • ARM TrustZone技术如何守护你的隐私
  • 北京恒伟网站建设wordpress 新页面打开空白
  • 从 0 到 1 搭建 Python 语言 Web UI自动化测试学习系列 8--基础知识 4--常用函数 2
  • 在 Python 项目中构建可靠的 CI/CD 流水线:从设计到实战(面向开发与运维的实用指南)
  • Linux基本指令(中)
  • 郑州服装网站建设公司php做电商网站安全性如何
  • 响应式网站 翻译网站关键词排名如何提升
  • python爬虫(二) ---- JS动态渲染数据抓取
  • 国庆回来的css
  • 廊坊做网站的电话公司网站外包
  • 八股文:计算机网络-20250925
  • MySql速成笔记5(多表关系)
  • 如何设计和建立一个公司的网站佛山网站优化有
  • 开源 C++ QT QML 开发(六)自定义控件--波形图
  • excel-mcp-server 安装
  • Axios快速上手
  • 中国建网站报价电子商务网站的建设流程图
  • 某单位固态硬盘站点备份至固态硬盘的站点备份方案
  • 高级经济师资源合集
  • 【数据结构】数据结构考研核心:树形查找算法对比与应用场景全指南
  • 做公司网站需要了解哪些东西体育网站的制作哪里可以做
  • 【Docker】解决Docker中“exec format error”错误:架构不匹配的完整指南
  • 如何自己开个网站平台成立网站建设公司要求
  • [嵌入式embed]RT-ThreadStudio-STM32F103C8T6(江协科技)+移植RT-Thread v4.11模版