数据库权限越大,责任越重。为了防止某一管理员过度集中权限,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 的三权分立机制,从系统层面划清了管理职责边界,有效减少因误操作或权限滥用带来的风险。它不仅是一种权限控制策略,更是一种数据库治理理念。


数据库砖家
1 声望0 粉丝