数据库权限越大,责任越重。为了防止某一管理员过度集中权限,YashanDB 提供了三权分立(Separation of Duty)机制,从源头上避免“超级管理员一人管天下”的风险。
什么是三权分立?
所谓三权分立,指的是将数据库管理员的权限进行细化划分,分别赋予不同角色。这样可以:
限制单一用户具备“修改、审计、安全”三类能力;
防止越权操作或误删误改;
提高整体系统安全性和可审计性。
YashanDB 内置三类管理角色
YashanDB 内置了以下三类关键权限角色,便于根据职责划分授权:
DBA:负责数据库运维和管理;
AUDIT_ADMIN:负责审计策略创建与查询;
SECURITY_ADMIN:负责权限授予、回收和账户安全。
如何启用三权分立?
默认情况下,三权分立机制是关闭的。需要通过参数开启:
ALTER SYSTEM SET ENABLE_SEPARATE_DUTY=TRUE SCOPE=SPFILE;
注意:该参数为启动参数,修改后需重启数据库生效。
操作演示:三权分立行为验证
1. 创建用户并赋权
CREATE USER user1 IDENTIFIED BY "user1";
CREATE USER user2 IDENTIFIED BY "user2";
CREATE USER user3 IDENTIFIED BY "user3";
GRANT DBA TO user1;
GRANT AUDIT_ADMIN TO user2;
GRANT SECURITY_ADMIN, RESOURCE TO user3;
2. 开启前测试权限(未开启三权分立)
user1 可执行权限授权、审计策略创建;
user2 只能做审计相关操作,不能授权;
user3 只能授权权限,无法操作审计策略。
3. 启用三权分立并重启数据库
-- 以 SYSDBA 身份执行
ALTER SYSTEM SET ENABLE_SEPARATE_DUTY=TRUE SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP;
4. 启用后再测试
user1 的权限被限制,无法执行授权与审计操作;
user2 保持只可操作审计策略;
user3 仍然只可授权,不可操作审计策略;
普通用户权限不受影响,可正常建表等操作。
使用建议
为不同职能人员分配对应角色,避免权限滥用;
建议大型企业、政务机构等启用此机制提升内控安全;
各角色权限可通过 DBA_ROLE_PRIVS 视图查询确认。
总结
YashanDB 的三权分立机制,从系统层面划清了管理职责边界,有效减少因误操作或权限滥用带来的风险。它不仅是一种权限控制策略,更是一种数据库治理理念。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。