Oracle database vault是Oracle10g新推出的增强性安全管理组件,让人头疼的是安全性跟操作简便性总是一对冤家。 在安装了Oracle database vault组件的数据库中很多sys用户的特权都被取消了,比如你无法用操作系统验证直接登录sys用户(甚至在修改数据库密码文件之前任何方法都无法使用SYSDBA权限登录数据库),比如你无法运行alter system dump datafile命令来转储block的信息,还有更多需要sysdba权限的数据库功能都受到影响,比如Data Guard,RMAN,RAC svrctl, ASM, Oracle Enterprise Manager Database Control等等。 SQL> show user; USER is “SYS” SQL> alter system dump datafile 4 block 11; alter system dump datafile 4 block 11 * ERROR at line 1: ORA-01031: insufficient privileges 如果想暂时禁用Oracle database vault功能,在Windows操作系统中需要如下操作。 1. 在service中停止Oracle服务,必须停止Oracle服务,仅仅在SQL*Plus中关闭数据库是不够的 2. 修改$ORACLE_HOME\bin\oradv10.dll文件名,随便改成什么,比如oradv10.dll.bak 3. 重新启动Oracle服务,打开数据库…
Tag: security
利用OLS实现行级安全性 Step By Step
前言:
在Oracle9i中有一个组件称为Oracle Label Security,这个组件实现了基于自定义策略而对数据库中的表甚或是整个Schema提供行级安全性功能。实际上Oracle Label Security是在Oracle8.1.7中提出的,在9i版本中功能得到了大幅度增强。
本文通过一个简单的例子对Oracle Label Security的功能作初步的探讨,本文使用的环境是Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 for Windows 32 bit。
利用VPD细粒度访问策略实现行级安全性 Step By Step
Oracle8i以后的版本都提供了VPD(virtual private database 虚拟专用数据库)这样一个强大的功能来实现呼声日益增高的系统安全性要求。 通过设置基于VPD的细粒度访问策略,我们可以只通过DBA的工作(不需要修改应用,也就是应用透明化)就可以实现用户只能访问自己有权限访问的数据,当然如果需要更加复杂的权限控制开发人员的参与还是必不可少的。 下面用一个简单的例子来实现这样的功能,在EMP表中的用户登录数据库以后只能查询和更新自己所属部门的其它员工资料,不是本部门的不会显示也不允许更新。 1. 我们需要用到3个用户,一个是拥有EMP表的SCOTT用户,一个是用于设置VPD策略的KAMUS用户,另外一个是在EMP表中有记录的SMITH用户。 SCOTT用户可以利用$ORACLE_HOME/rdbms/admin/scott.sql创建。 @?/rdbms/admin/scott.sql KAMUS用户需要能够执行DBMS_RLS包的权限。 grant execute on dbms_rls to kamus; SMITH用户需要能够读取并更新EMP表的权限。 grant select on scott.emp to smith; 2. 首先用KAMUS用户创建策略权限表。为方便起见我们直接通过EMP表创建,本策略表中包含了员工姓名和所属部门编号。为了更加完善策略函数,我们创建完策略表后在表中新增一条记录,让SMITH用户同时属于20和10这两个部门。 SQL> create table access_policy as select ename,deptno from scott.emp; Table created SQL> select * from access_policy; ENAME DEPTNO ———- —— SMITH 20 ALLEN 30 WARD 30 JONES 20 MARTIN…