关键字:
KingbaseES;安全;受限DBA
1.概述
受限 DBA 可以对当前 DBA 的权限进行一定限制。当功能开启后 DBA 将不能读取、更改和执行不属于他的一些对象。
1. Table 2. Database 3. Function 4. Language 5. large object
6. Namespace 7. Tablespace 8. Foreign data wrapper 9. Foreign server
10. Type 11. Relation 12. Operator 13. Operator class 14. search dictionary
15. search configuration 16. conversion 17. extension 18. schema
KingbaseES 通过插件的方式来进行受限 DBA。这种方式更为灵活,当数据库的实用场景需要进行受限 DBA 管理时,加载插件即可。而不需要该功能时,卸载插件即可。 KingbaseES 通过 1 个全局级参数配合插件来实现受限 DBA 管理。
2.受限DBA特性实际操作
加载插件并配置
修改 kingbase.conf 文件中 shared_preload_libraries 参数后重启数据库,创建插件并切换用户为安全管理员 sso 打开受限 DBA 开关。
修改shared_preload_libraries = 'restricted_dba'
\c -system
create extension restricted_dba;
\c -sso
alter system set restricted_dba.restricted_enable = true;
select sys_reload_conf();
show restricted_dba.restricted_enable;
可以看到经过受限DBA控制,system无法查询表tt1
\c – system
create user uz1 with password '123456';
\c - uz1
create table tt1 (a int);
\c – system
select * from tt1;
同理,也无法对之前列举出的其他对象进行读取、更改和执行。
3.使用经验及注意事项
1.在修改shared_preload_libraries时,如果有其他参数,只需要在其中用分隔符隔开添加即可,如果对其进行修改,可能会导致数据库服务启动失败。
2.在修改shared_preload_libraries之后,记得重启数据库服务,不然会在修改restricted_dba.restricted_enable时出现错误。
3.在创建表时,注意创建表的用户具体是谁,必要时可以通过\d进行查询,可以看到表的创建者。
4.卸载时在kingbase.conf中删除修改的参数即可。
4.与竞品差异点
差异点 | Oracle | Kingbase | 差异点 |
---|---|---|---|
实现方式不同 | 对于DBA的限制,只能创建新的dba角色,将敏感的,不需要的权限从dba角色中剔除,再建立新的dba账户时,赋予新的dba角色,起到限制dba的作用。 | 通过插件restricted_dba 来进行受限 DBA。 | 实现方式不同 |
灵活性不同 | 需要每次对权限进行处理,并创建角色和账户。并且如果想要解除DBA限制,比较麻烦。 | 在需要时启用插件,不需要时卸载插件即可。 | 灵活性不同 |
5.价值评价
在很多时候,为了企业的数据安全,需要dba只进行一些管理操作,而不能访问业务数据,但是限制dba是很困难的,限制过严,则dba很多功能不嫩能够做,最终变为负担。
相比于Oracle的实现方式,Kingbase无疑更加灵活,通过插件可以简单的让用户实现此特性,提升数据安全性。 更多信息,参见https://help.kingbase.com.cn/v8/index.html