文档章节

oracle 策略POLICY学习

豆腐干123
 豆腐干123
发布于 2013/07/02 11:24
字数 332
阅读 798
收藏 3
-- 1、创建测试表
create table TEST_POLICY
(
  USERNAME VARCHAR2(10),
  PASSWORD NUMBER(10)
);
insert into TEST_POLICY values('a',30);
insert into TEST_POLICY values('b',20);
insert into TEST_POLICY values('c',40);
commit;
--2、创建策略约束函数,表只可输入密码为40的用户,其他用户将被删除
CREATE OR REPLACE Function Fn_GetPolicy(P_Schema in varchar2,
                                        P_Object in varchar2)
  return varchar2 is
  L_PREDICATE VARCHAR2(1000) := '';
Begin
  L_PREDICATE := 'password=40';
  Return L_PREDICATE;
end Fn_GetPolicy;
--3、创建策略
declare
Begin
  Dbms_Rls.Add_Policy(Object_Schema   => 'SCOTT', --数据表(或视图)所在的Schema名称 
                      Object_Name     => 'TEST_Policy', --数据表(或视图)的名称 
                      Policy_Name     => 'T_TestPolicy', --POLICY的名称,主要用于将来对Policy的管理 
                      Function_Schema => 'SCOTT', --返回Where子句的函数所在Schema名称 
                      Policy_Function => 'Fn_GetPolicy', --返回Where子句的函数名称 
                      Statement_Types => 'Select,Insert,Update,Delete', --要使用该Policy的DML类型,如'Select,Insert,Update,Delete' 
                      Update_Check    => True, --仅适用于Statement_Type为'Insert,Update',值为'True'或'False' 
                      Enable          => True --是否启用,值为'True'或'False' 
                      );
end;
--注:如果Update_Check设为'True',则用户插入的值不符合Policy_Function返回条件时,该DML执行返回错误信息。 
--现在就可以工作了: select * from TEST_POLICY ;  看看结果怎样, 是不是少了password<>40的数据了.
--4、查看当前用户的策略
SELECT * FROM USER_POLICIES;
--5、删除策略
DECLARE
BEGIN
  Dbms_Rls.drop_policy('SCOTT', --要删除的Policy所在的Schema
                       'TEST_Policy', --要删除Policy的数据表(或视图)名称
                       'T_TESTPOLICY' --要删除的Policy名称
                       );
end;

© 著作权归作者所有

共有 人打赏支持
豆腐干123
粉丝 0
博文 4
码字总数 1122
作品 0
大连
程序员
Oracle_Label_Security[转]

前言: 在Oracle9i中有一个组件称为Oracle Label Security,这个组件实现了基于自定义策略而对数据库中的表甚或是整个Schema提供行级安全性功能。实际上Oracle Label Security是在Oracle8.1...

cnbird
2013/04/17
0
0
SYS_R12 MOAC多组织底层技术实现技术分析(Oracle VPD) (案例)

2014-05-30 Created By BaoXinjian 一、 介绍 之前一直存在对Oracle R12 多组织访问的一些疑惑,所以查询了一些相关资料,并介绍实现R12 MOAC的Oracle VPD技术 Oracle VPD全称Virtual Priva...

东方瀚海鲍
2014/06/09
0
0
使用VPD限制数据访问

一 概述 虚拟专用数据库 (VPD) 在确保物理数据分离的情况下按用户或客户来控制数据访问。对于互联网访问,虚拟专用数据库可以确保在线银行的客户只能看到他们自己的帐户。Web 托管公司可以在...

技术小胖子
2017/11/09
0
0
15、oracle审计

15、oracle审计 学习文档(http://blog.csdn.net/rlhua/article/category/1638551) http://www.cnblogs.com/remote-antiquity/p/6920065.html 1、数据库安全及审计的责任 责任分离 2、标准审计......

lxm111111
2017/06/25
0
0
Java 密码扩展无限制权限策略文件

因为美家的进口管制限制,Java发布的运行环境包中的加解密有一定的限制。比如默认不允许256位密钥的AES加解密,解决方法就是修改策略文件。 官方网站提供了JCE无限制权限策略文件的下载: JD...

iphoenix
2016/04/15
194
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
9分钟前
0
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
5
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
3
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
3
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部