Oracle提供的Policy管理方式能够改变利用条件限制语句进行数据访问权限控制的方式,减少设置工作量,并使用户使用的数据相对隔离。
例如不同仓库以及不同经营单位的数据访问隔离。
实现方式:
追加POLICY,由函数控制数据结果集。
DBMS_RLS.ADD_POLICY(OBJECT_SCHEMA --表所在的SCHEMA名称
,OBJECT_NAME --表名称
,POLICY_NAME --POLICY的名称
,FUNCTION_SCHEMA --函数所在SCHEMA名称
,POLICY_FUNCTION --函数名称
,STATEMENT_TYPES --要使用该POLICY的DML类型,如'SELECT,INSERT,UPDATE,DELETE'
,UPDATE_CHECK --值为'TRUE'不符合Policy条件时返回错误信息
);
删除POLICY:
例如不同仓库以及不同经营单位的数据访问隔离。
实现方式:
追加POLICY,由函数控制数据结果集。
DBMS_RLS.ADD_POLICY(OBJECT_SCHEMA --表所在的SCHEMA名称
,OBJECT_NAME --表名称
,POLICY_NAME --POLICY的名称
,FUNCTION_SCHEMA --函数所在SCHEMA名称
,POLICY_FUNCTION --函数名称
,STATEMENT_TYPES --要使用该POLICY的DML类型,如'SELECT,INSERT,UPDATE,DELETE'
,UPDATE_CHECK --值为'TRUE'不符合Policy条件时返回错误信息
);
删除POLICY:
DBMS_RLS.DROP_POLICY(OBJECT_SCHEMA --要删除的POLICY所在的SCHEMA
,OBJECT_NAME --要删除POLICY的表(或视图)名称
,POLICY_NAME --要删除的POLICY名称
);
启用POLICY:
DBMS_RLS.ENABLE_POLICY(OBJECT_SCHEMA --要启用的POLICY所在的SCHEMA
,OBJECT_NAME --要启用POLICY的表(或视图)名称
,POLICY_NAME --要启用的POLICY名称
,ENABLE --值为'TRUE'启用,
);
查询POLICY:
SELECT * FROM USER_POLICIES;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26101098/viewspace-1255709/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26101098/viewspace-1255709/