Oracle Policy
来源:互联网 发布:linux建立文件 编辑:程序博客网 时间:2024/06/05 01:52
select * from Policy_test;
select GRANTEE,OWNER,TABLE_NAME,COLUMN_NAME,GRANTOR,PRIVILEGE,GRANTABLE from user_col_privs;
select * from user_users;
select user from dual;
-- 0、查看Policy
SELECT * FROM user_policies;
-- 1、创建测试表
create table Policy_test(
服务类型 VARCHAR(100),
服务名称 VARCHAR(100),
用户部门 VARCHAR(100),
单价 number(30),
时间_Month number(30),
收入 number(30)
);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','灾备NAS存储服务','平安科技系统开发一部车险承保组',1000,11,11000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','银行-生产高端SAN存储服务','平安科技系统开发二部渠道支持组',2000,12,24000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('虚拟服务','PO项目管理支持','平安科技系统开发五部投资平台开发组',3000,11,33000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('虚拟服务','应用架构维护','平安科技系统开发二部集团资金平台组',4000,12,48000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','证券-数据采集服务','平安科技系统开发一部理赔系统组',5000,11,55000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','万里通-集中用户管理服务','平安科技系统开发三部成都公共平台组',6000,12,72000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','证券-集中用户管理服务','平安科技系统开发五部投资外围开发组',7000,11,77000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','个人电脑服务(总部)','平安科技系统开发二部理赔组',8000,12,96000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','银行-staging中端SAN存储服务','平安科技系统开发二部集团资金平台组',9000,11,99000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','银行-生产数据库服务器服务','平安科技系统开发二部渠道支持组',10000,12,120000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','事件响应VIP服务','平安科技系统开发三部成都后援服务组',11000,11,121000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','证券-ODS平台服务','平安科技系统开发二部集团财务组',12000,12,144000);
commit;
--2、创建策略约束函数,itcostdata用户只能看到“定价服务”
CREATE OR REPLACE Function Fn_GetPolicy(P_Schema In Varchar2,P_Object In Varchar2) Return Varchar2 Is
p_count integer;
begin
select COUNT(user) into p_count from dual where user='ITCOSTDATA';
if p_count>0 then
Return('服务类型=定价服务');
else
Return('服务类型=test');
end if;
end Fn_GetPolicy;
--drop Function Fn_GetPolicy;
--3 加入Policy
Begin
Dbms_Rls.Add_Policy(Object_Schema =>'ITCOSTDATA'
,Object_Name =>'Policy_test'
,Policy_Name =>'T_TestPolicy'
,Function_Schema =>'ITCOSTDATA'
,Policy_Function =>'Fn_GetPolicy'
,Statement_Types =>'Select'--,Insert,Update,Delete
,Update_Check =>'False'
,Enable =>'True'
);
End;
--新增Policy
Dbms_Rls.Add_Policy(Object_Schema --数据表(或视图)所在的Schema名称
,Object_Name --数据表(或视图)的名称
,Policy_Name --POLICY的名称,主要用于将来对Policy的管理
,Function_Schema --返回Where子句的函数所在Schema名称
,Policy_Function --返回Where子句的函数名称
,Statement_Types --要使用该Policy的DML类型,如'Select,Insert,Update,Delete'
,Update_Check --仅适用于Statement_Type为'Insert,Update',值为'True'或'False'
,Enable --是否启用,值为'True'或'False'
);
--4 测试Policy
Select * From Policy_test where 服务类型='虚拟服务';
Insert Into T_Policy Values ('d',10);
Insert Into T_Policy Values ('d',20);
Commit;
--5 查看Policyy设定情况
Select * From user_policies;
--重要提示:执行Dbms_Rls.Add_Policy时,必须将执行Dbms_Rls包执行的权限授予Scott。测试时也可能使用其它Schema,
--最简单的方法是将测试的Schame设为“DBA”权限。
select GRANTEE,OWNER,TABLE_NAME,COLUMN_NAME,GRANTOR,PRIVILEGE,GRANTABLE from user_col_privs;
select * from user_users;
select user from dual;
-- 0、查看Policy
SELECT * FROM user_policies;
-- 1、创建测试表
create table Policy_test(
服务类型 VARCHAR(100),
服务名称 VARCHAR(100),
用户部门 VARCHAR(100),
单价 number(30),
时间_Month number(30),
收入 number(30)
);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','灾备NAS存储服务','平安科技系统开发一部车险承保组',1000,11,11000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','银行-生产高端SAN存储服务','平安科技系统开发二部渠道支持组',2000,12,24000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('虚拟服务','PO项目管理支持','平安科技系统开发五部投资平台开发组',3000,11,33000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('虚拟服务','应用架构维护','平安科技系统开发二部集团资金平台组',4000,12,48000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','证券-数据采集服务','平安科技系统开发一部理赔系统组',5000,11,55000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','万里通-集中用户管理服务','平安科技系统开发三部成都公共平台组',6000,12,72000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','证券-集中用户管理服务','平安科技系统开发五部投资外围开发组',7000,11,77000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','个人电脑服务(总部)','平安科技系统开发二部理赔组',8000,12,96000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','银行-staging中端SAN存储服务','平安科技系统开发二部集团资金平台组',9000,11,99000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','银行-生产数据库服务器服务','平安科技系统开发二部渠道支持组',10000,12,120000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','事件响应VIP服务','平安科技系统开发三部成都后援服务组',11000,11,121000);
insert into Policy_test (服务类型,服务名称,用户部门,单价,时间_Month,收入)values('定价服务','证券-ODS平台服务','平安科技系统开发二部集团财务组',12000,12,144000);
commit;
--2、创建策略约束函数,itcostdata用户只能看到“定价服务”
CREATE OR REPLACE Function Fn_GetPolicy(P_Schema In Varchar2,P_Object In Varchar2) Return Varchar2 Is
p_count integer;
begin
select COUNT(user) into p_count from dual where user='ITCOSTDATA';
if p_count>0 then
Return('服务类型=定价服务');
else
Return('服务类型=test');
end if;
end Fn_GetPolicy;
--drop Function Fn_GetPolicy;
--3 加入Policy
Begin
Dbms_Rls.Add_Policy(Object_Schema =>'ITCOSTDATA'
,Object_Name =>'Policy_test'
,Policy_Name =>'T_TestPolicy'
,Function_Schema =>'ITCOSTDATA'
,Policy_Function =>'Fn_GetPolicy'
,Statement_Types =>'Select'--,Insert,Update,Delete
,Update_Check =>'False'
,Enable =>'True'
);
End;
--新增Policy
Dbms_Rls.Add_Policy(Object_Schema --数据表(或视图)所在的Schema名称
,Object_Name --数据表(或视图)的名称
,Policy_Name --POLICY的名称,主要用于将来对Policy的管理
,Function_Schema --返回Where子句的函数所在Schema名称
,Policy_Function --返回Where子句的函数名称
,Statement_Types --要使用该Policy的DML类型,如'Select,Insert,Update,Delete'
,Update_Check --仅适用于Statement_Type为'Insert,Update',值为'True'或'False'
,Enable --是否启用,值为'True'或'False'
);
--4 测试Policy
Select * From Policy_test where 服务类型='虚拟服务';
Insert Into T_Policy Values ('d',10);
Insert Into T_Policy Values ('d',20);
Commit;
--5 查看Policyy设定情况
Select * From user_policies;
--重要提示:执行Dbms_Rls.Add_Policy时,必须将执行Dbms_Rls包执行的权限授予Scott。测试时也可能使用其它Schema,
--最简单的方法是将测试的Schame设为“DBA”权限。
0 0
- Oracle Policy
- Oracle Policy For NBU
- oracle 策略POLICY学习
- Oracle 10g backup policy
- policy
- oracle Policy的应用--DBMS_RLS.ADD_POLICY
- ORACLE备份保留策略(RETENTION POLICY)
- ORACLE备份保留策略(RETENTION POLICY)
- ORACLE备份保留策略(RETENTION POLICY)
- oracle.jbo.JboException: JBO-29000: org/owasp/validator/html/Policy
- Oracle Policy-Managed Cluster – Growing for DBaaS
- 【ORACLE】Oracle 11g RAC使用Manual和Policy Managed方法配置
- Oracle 11gR2 RAC 实例 Admin-Managed 与 Policy-Managed 区别
- Oracle 11g RAC使用Manual和Policy Managed方法配置
- jaas policy
- Audio Policy
- Citrix Policy
- Privacy Policy
- java enum(枚举)的使用
- java接口可以继承多个接口
- (运输层)UDP知识详解
- Hadoop+HBase+ZooKeeper三者关系与安装配置
- GET请求和POST请求
- Oracle Policy
- Mdrill项目在lucene的改进上的10点心得
- 数据安全
- (转)java并发编程: 彻底理解ThreadLocal
- jquery uploadify动态传递参数如何实现
- iOS 同步 异步 并发 并行 多线程的讲解与区别
- hdu 1247 Hat’s Words(Trie)
- CentOS下vsftp安装、配置、卸载
- Android-Volley网络通信框架