在上一篇文章中讨论了如何利用VPD对Oracle表中的行进行访问控制(见《[Oracle] 数据库安全之 - 虚拟私有数据库 (VPD)》),下面介绍一种比VPD复杂一点的访问控制技术——OLS (Oracle Label Security)。
启用OLS
如果你的数据库版本是10g,则需要额外安装OLS组件,但如果是11g,只要启用OLS即可,因为11g里OLS是默认安装的,下面是11g下启动OLS的语句:
C:\Users\xianzhu>chopt enable lbac
Writing to C:/app/xianzhu/product/11.2.0/dbhome_1/install/enable_lbac.log...
movefile C:\app\xianzhu\product\11.2.0\dbhome_1/bin/oralbac11.dll.dbl C:\app\xianzhu\product\11.2.0\dbhome_1/bin/oralbac11.dll
OLS启动成功,并重启数据库之后,再用sqlplus登陆数据库时,会发现多了"Oracle Label Security"的提示信息:
C:\Users\xianzhu>sqlplus test/test
SQL*Plus: Release 11.2.0.1.0 Production on 星期日 6月 9 09:40:17 2013
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining
and Real Application Testing options
启动OLS还是不够的,还需要用dbca配置OLS,其主要步骤如下: