Oracle标签安全性(3)

2019-01-26 21:36

EXEC sa_user_admin.set_user_labels(policy_name=> 'TEST_POLICY',user_name =>'TEST',max_read_label =>'READ222');

执行查询:

发现还是这三条数据,因为其它数据TEST_LABEL列未定义值; 通过SYS用户,对数据进行赋值;

这个时候,就可以看到所有的数据了;因为前面提到:

EXEC sa_components.create_level('TEST_POLICY', 111,'READ111', 'Public Level'); EXEC sa_components.create_level('TEST_POLICY', 222,'READ222', 'Internal Level');

第一个参数是上一步创建的安全策略的名字。第二个参数是Level的等级,数字越大表示权限越高,比如此处具有'READ222'等级的就可以同时查看有'READ111'等级的数据。第三个参数是Level的短名,随便定义。第四个参数是Level的长名,只是起到一个说明的作用,随便定义。

3.9、新增LEVEL

这里考虑到一点,因为LEVEL的数据越大,级别越高,加入我需要新增一个LEVEL,用来控制用户的访问,就可以按照如下操作:

1、

定义LEVEL

EXEC sa_components.create_level('zftang_POLICY', 333,'PUBLIC', 'Public Level1');

-------创建一个LEVEL

2、

定义LABEL

EXEC sa_label_admin.create_label('TEST_POLICY', '333','READ333', TRUE);

3 、 将LABEL赋予用户

在这里,如果赋予TEST用户READ111的LEVEL,那么这个用户只能看到值=111的数据; 如果赋予TEST用户READ222的LEVEL,可以看到值=111,或者=222的数据 如果赋予TEST用户READ333的LEVEL,就可以看到=111,222,333的数据; EXEC sa_user_admin.set_user_labels(policy_name=> 'TEST_POLICY',user_name =>'TEST',max_read_label =>'READ111');

至此,这个Oracle Label Security 的实验基本上是完成了,达到了我们预先计划的目标。

而关于性能方面,如果表中数据量很大,那么出于性能考虑,可能需要在Label列上(本例中的DOC_LABEL)添加合适的索引,根据cardinality的多少,选择B-Tree或者bitmap索引。

结论


Oracle标签安全性(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2013深圳杯数学建模B题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: