在数据库开辟过程中,假定研发人员良多,进行相干的权限治理是很是首要的工作,可以大年夜大年夜削减对数据库的误把持。
某天,公司出产环境中的某一个产品库被研发人员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';
经由过程上述编制,可以节制研发人员对出产库的把持,一旦权限被节制,就大年夜大年夜降落了数据库面对的风险。在这个过程中,我们可以采取审计编制记实下每个把持。
在数据库开辟过程中,假定研发人员良多,进行相干的权限治理是很是首要的工作,可以大年夜大年夜削减对数据库的误把持。触发器是一个别例,别的经由过程同义词,可觉得每个用户伶仃成立用户,进步研发人员把持数据库时的专心程度,避免误把持的产生。
启明星斗公司数据库审计专家点评
本案例比较活泼,且具体描述了权限节制编制。从数据库安然的角度来讲,除成立杰出的权限节制机制,还要考虑治理上的风险(账号共用)及数据库本身弱点(缝隙操纵等),数据库本身的安然查抄、系统加固、审计等办法都很有需要。