GaussDB(DWS) 数据库安全设置之三权分立
GaussDB(DWS)创建集群时默认用户是SYSADMIN属性的系统管理员,具备系统最高权限。
在实际业务管理中,为了避免系统管理员拥有过度集中的权利带来高风险,可以设置三权分立,将系统管理员的权限分立给安全管理员和审计管理员。
三权分立后,系统管理员将不再具有CREATEROLE属性(安全管理员)和AUDITADMIN属性(审计管理员)能力。即不再拥有创建角色和用户的权限,并不再拥有查看和维护数据库审计日志的权限。关于CREATEROLE属性和AUDITADMIN属性的更多信息请参考 CREATE ROLE。
默认的用户权限
对象名称 | 系统管理员 | 安全管理员 | 审计管理员 | 普通用户 |
表空间 | 对表空间有创建、修改、删除、访问、分配操作的权限。 | 不具有对表空间进行创建、修改、删除、分配的权限,访问需要被赋权。 | ||
表 | 对所有表有所有的权限。 | 仅对自己的表有所有的权限,对其他用户的表无权限。 | ||
索引 | 可以在所有的表上建立索引。 | 仅可以在自己的表上建立索引。 | ||
模式 | 对所有模式有所有的权限。 | 仅对自己的模式有所有的权限,对其他用户的模式无权限。 | ||
函数 | 对所有的函数有所有的权限。 | 仅对自己的函数有所有的权限,对其他用户放在public这个公共模式下的函数有调用的权限,对其他用户放在其他模式下的函数无权限。 | ||
自定义视图 | 对所有的视图有所有的权限。 | 仅对自己的视图有所有的权限,对其他用户的视图无权限。 | ||
系统表和系统视图 | 可以查看所有系统表和视图。 | 只可以查看部分系统表和视图。详细请参见系统表和系统视图。 |
三权分立的权限最小化设置将数据库安全提升一个档次。
如何实现三权分立的设置,请看如下:
1、在数据仓库服务界面创建集群后,单击集群名称,进入集群详情,在详情页签中点击“安全设置”。
2、进入“安全设置”,呈现设置界面。
3、打开“三权分立”开关,可进行设置安全管理员及审计管理员用户名及密码(默认系统管理员在创建集群时已设定)。
4、设置完成后,对于审计配置建议进行设置,审计也是数据库运行过程的关键日志。
审计保留策略建议“时间优先”,最长可保留730天,再根据实际需要将越权访问、DML、DDL等分别设置,数据仓库服务还提供的审计日志转储OBS的功能,设置转储的OBS桶及路径,在转储周期内将生成审计日志文件,直接放在您的OBS桶中,方便查看。
5、设置完后,点击应用,成功后即可连接数据库查看三权分立的效果。
审计查询命令是数据库提供的sql函数pg_query_audit,其原型为:
pg_query_audit(timestamptz startime,timestamptz endtime,audit_log)
参数startime和endtime分别表示审计记录的开始时间和结束时间,audit_log表示所查看的审计日志信息所在的物理文件路径,当不指定audit_log时,默认查看连接当前实例的审计日志信息。
通过sql函数pgxc_query_audit可以查询所有CN节点的审计日志,其原型为:
pgxc_query_audit(timestamptz startime,timestamptz endtime)
说明:
startime和endtime的差值代表要查询的时间段,其有效值为从startime日期中的00:00:00开始到endtime日期中的23:59:59之间的任何值。请正确指定这两个参数,否则将查不到需要的审计信息。
- 点赞
- 收藏
- 关注作者
评论(0)