权限管理让数据库更安全

某天,公司生产环境中的某一个产品库被研发人员truncate一张非常重要的表,研发总监知道后非常生气,要求严格控制研发人员的权限问题,每个人用自己的用户名称操作数据库,审计每个人的操作权限,将每个研发人员对生产库的操作进行记录。

在这种情况下,需要严格控制研发人员的DDL权限,限制用户对数据库进行DDL等操作。如果单纯的进行限制,可以通过触发器来进行控制,语句如下:

CREATEORREPLACETRIGGERDDL_RESTRICT

BEFOREDROPORCREATEORTRUNCATEORALTERONDATABASE

DECLARE

BEGIN

IFORA_SYSEVENT()IN('DROP','CREATE','ALTER','TRUNCATE')

ANDORA_DICT_OBJ_OWNER()IN('BUPTDREAM'AND

ORA_DICT_OBJ_TYPEIN('TABLE') AND

ORA_DICT_OBJ_NAME()NOTLIKE'%a%'AND

ORA_DICT_OBJ_NAME()NOTLIKE'%b%'AND

ORA_DICT_OBJ_NAME()NOTLIKE'%c%'THEN

RAISE_APPLICATION_ERROR(NUM => -20000,

MSG =>'禁止'|| ORA_SYSEVENT() ||' '||

ORA_DICT_OBJ_OWNER() ||'用户下的'||

ORA_DICT_OBJ_NAME() ||'表,请与DBA联系');

ENDIF;

END;

通过触发器可以控制开发人员对生产库的DDL操作,如果想要禁止delete的DML操作,也可以用触发器来实现。

在Oracle数据库中对用户的管理是使用权限的方式,也就是说,如果直接将生产库的权限给某个用户,我们必须要已授权的表的名称前键入该表所有者的名称,所以比较麻烦。

Oracle数据库中同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。在Oracle数据库中的大部分数据库对象,如表、视图、同义词、序列、存储过程、包等等,数据库管理员都可以根据实际情况为他们定义同义词。

批量建立同义词的语句如下:

select' create public synonym '|| OBJECT_NAME ||

' for CMAPP_PRODUCTION.'|| OBJECT_NAME ||';'

fromuser_objects

whereobject_typein

('TABLE','VIEW','PROCEDURE','TRIGGER','FUNCTION','PACKAGE');

同义词赋权的语句如下:

SELECT'grant select,insert,update,delete on '||

OBJECT_NAME ||' to buptdream;'

FROMUSER_OBJECTS

WHEREOBJECT_TYPE ='TABLE';

SELECT'grant select,insert,update,delete on '|| OBJECT_NAME ||

' to buptdream;'

FROMUSER_OBJECTS

WHEREOBJECT_TYPE ='VIEW';

SELECT'grant EXECUTE on '|| OBJECT_NAME ||' to buptdream;'

FROMUSER_OBJECTS

WHEREOBJECT_TYPE ='PROCEDURE';

SELECT'grant EXECUTE on '|| OBJECT_NAME ||' to buptdream;'

FROMUSER_OBJECTS  WHEREOBJECT_TYPE ='FUNCTION';

SELECT'grant select on '|| OBJECT_NAME ||' to buptdream;'

FROMUSER_OBJECTS

WHEREOBJECT_TYPE ='SEQUENCE';

通过上述方法,可以控制研发人员对生产库的操作,一旦权限被控制,就大大降低了数据库面临的风险。在这个过程中,我们可以采用审计方式记录下每个操作。

在数据库开发过程中,如果研发人员很多,进行相关的权限管理是非常重要的事情,可以大大减少对数据库的误操作。触发器是一个方法,另外通过同义词,可以为每个用户单独建立用户,提高研发人员操作数据库时的专心程度,防止误操作的发生。

(责任编辑:)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

网络安全:互联网安全 如何防范木马及病毒

网络安全:互联网安全 如何防范木马及病毒的攻击

一、计算机中毒有哪些症状? 人生病了,会有各种各样的症状,同样,电脑中毒了也会有...[详细]

加强网站服务器安全维护的技巧

加强网站服务器安全维护的技巧

计算机系统服务器的维护工作十分重要,稍有不慎就会使整个网络陷入瘫痪。目前,网络经...[详细]

电脑离线就安全?这个软件一样能远程窃取数

电脑离线就安全?这个软件一样能远程窃取数据

以色列的一个研究团队已改良了窃取离线电脑数据的方法。人们一直认为这种离线电脑在面...[详细]

如何在Linux上最妥善地管理加密密钥?

如何在Linux上最妥善地管理加密密钥?

存储SSH加密密钥和牢记密码可能是一件让人很头痛的事儿。不过遗憾的是,在如今恶意黑...[详细]

如何在 Linux 上运行命令前临时清空 Bash

如何在 Linux 上运行命令前临时清空 Bash 环境变量

我是个 bash shell 用户。我想临时清空 bash shell 环境变量。但我不想删除或者 unset...[详细]

返回首页 返回顶部