代码改变世界

Oracle 10g&11g安装卸载Oracle Label Security

2019-06-25 22:13  潇湘隐者  阅读(1731)  评论(0编辑  收藏  举报

Oracle Label Securit简介

 

Oracle Label Security是内置于数据库引擎中的过程与约束条件集,该数据引擎实施对在单个表或整个模式上的""级访问控制。要利用Oracle Label Security,需要创建一个或多个安全策略,其中每一个安全策略都包含一组标签。你可以用这些标签来标明哪些用户能够访问什么类型数据。在创建了一个策略之后,将该策略应用于需要保护的表,并将这些标签授予你的用户,这样,你就完成了整个过程。Oracle Label Security对查询的修改是透明的,并且在即时计算访问级别,以执行你的新策略。Oracle Label Security 让企业和政府机构能够将具有不同访问要求的数据(包括政府机密数据)整合到同一个数据库中。它根据数据分类和应用用户的访问标签实施多级访问控制。借助这一强大功能,用户可以在 Oracle Database 中按需访问与研发项目、非公共财务信息或者医疗保健信息相关的敏感数据。

 

 

Oracle Label Security安装

 

 

 

首先使用下面脚本检查数据库实例是否安装了Oracle Label Security组件

 

 

col comp_name for a36;
col version for a30;
select comp_id, comp_name, version, status 
from dba_registry 
where comp_name='Oracle Label Security';

 

 

如果没有安装Oracle Label Security组件,那么可以使用catols.sql脚本创建Oracle Label Security所需要用户LBACSYS及数据库对象

 

 

@?/rdbms/admin/catols.sql

 

 执行脚本过程可能会遇到ORA-01432: public synonym to be dropped does not exist错误,这个是删除的同义词不存在,不必纠结。可以忽略。 另外,需要注意的是:脚本执行完成后会执行shutdown immediate关闭数据实例。

 

clip_image001

 

Oracle Label Security对象和有效性检查

 

可以使用下面脚本检查Oracle Label Security对象和对象有效性,如下所示:

 

select object_type,object_name 
from dba_objects 
where owner='LBACSYS' and status='INVALID';
 
select object_type,count(*) 
from dba_objects 
where owner='LBACSYS' group by object_type;

 

 

 

clip_image002

 

 

clip_image003

 

 

 

卸载Oracle Label Security

 

 

卸载Oracle Label Security也仅需执行一个catnools.sql脚本即可。如下所示:

 

SQL> @?/rdbms/admin/catnools.sql
 
PL/SQL procedure successfully completed.
 
 
PL/SQL procedure successfully completed.
 
 
Trigger dropped.
 
 
Trigger dropped.
 
 
Trigger dropped.
 
 
PL/SQL procedure successfully completed.
 
 
PL/SQL procedure successfully completed.
 
 
User dropped.
 
 
2 rows deleted.
 
 
Commit complete.
 
SQL>