共计 4480 个字符,预计需要花费 12 分钟才能阅读完成。
这篇文章主要为大家展示了“Oracle Vault 是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“Oracle Vault 是什么”这篇文章吧。
Oracle 数据库作为目前最成熟的商业数据库,在稳定其核心功能的同时也针对数量众多的用户群提出了很多安全运维工具解决方案。在数据层面,Oracle 有三个代表新的技术:Virtual Private Database(VPD)、Label Security 和 Oracle Vault。VPD 主要是针对解决应用层面的数据访问需求添加数据访问权限,Label Security 是 VPD 某种程度的拓展升级。而 Vault 主要是对 Oracle 数据库的安全职责进行分离,将数据安全责任从用户甚至 sys 身上剥离出去,进行细粒度的安全责任分配。
1、Oracle Vault 简述
Oracle Vault 是官方推荐的 security 策略之一,它主要用于运维机构中对数据的保护。传统意义的 Oracle 安全是一种“sys 上帝”的主宰模型。我们虽然有各种系统、角色和对象权限,虽然各种安全手册要我们使用非 sys 用户进行维护工作,但是很多数据库管理员还是在使用 sys 进行所有工作。一些数据防护技术,比如 VPD 虽然可以实现数据层面的控制,但是对 sys 也是无效的。
更重要的是一些 any 类的系统权限,如 select any table,一旦赋予,用户其实就控制了所有数据表的数据访问。这个是非常武断的做法,潜藏着很大问题。
在“sys 上帝”的前提控制下,这样的局面是控制不住的。因为一些运维操作,如数据备份、导入导出是避免不了高级访问权限的。“要么不做、要么别管”就是我们目前很多运维机构的现状。
Oracle Vault 提供了 sys 用户削权的一种选择。作为 Oracle 数据库的一个可选组件,Vault 是需要额外的文件链接、注册和安装的。安装 vault 之后,Oracle 会去创建一个全新的用户 dbvowner,原有的 sys 对一些数据的操作和访问权限,也都有进行控制的可能。
Vault 中的三个核心要素:Realm(领域)、Factor(因素)和规则(Rule)。从数据对象、操作命令等多个方面来限制或者保护特定的对象。
本系列中,会介绍 Oracle Vault 的安装、配置和使用方法。首先,我们介绍如何进行 vault 安装。
2、Oracle Vault 前提
默认企业版中,Vault 是不会安装的。我们需要手工的进行编译、安装,才能使用。
我们采用 Oracle 11gR2 进行测试,版本号为 11.2.0.4。
SQL select * from v$version;
BANNER
—————————————–
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – Production
PL/SQL Release 11.2.0.4.0 – Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 – Production
NLSRTL Version 11.2.0.4.0 – Production
判断当前 vault 是否安装,查看 v$option 视图。
SQL select * from v$option where parameter like %Vault%
PARAMETER VALUE
————————- ———-
Oracle Database Vault FALSE
安装配置之前,要将数据库、监听程序、DB Console 关闭。
– 监听程序
[oracle@SimpleLinux ~]$ lsnrctl stop
LSNRCTL for Linux: Version 11.2.0.4.0 – Production on 07-APR-2014 12:41:34
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=SimpleLinux)(PORT=1521)))
The command completed successfully
–Console
[oracle@SimpleLinux ~]$ emctl stop dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.4.0
Copyright (c) 1996, 2013 Oracle Corporation. All rights reserved.
https://SimpleLinux:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 11g Database Control …
… Stopped.
–Database Server
SQL shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
3、组件编译
Oracle Vault 是依赖 Label Security,需要在操作系统层面上启动配置。在 Linux/Unix 环境下,使用 make 进行配置链接。
[oracle@SimpleLinux lib]$ cd $ORACLE_HOME/rdbms/lib
[oracle@SimpleLinux lib]$ make -f ins_rdbms.mk dv_on lbac_on ioracle
/usr/bin/ar d /u01/app/oracle/rdbms/lib/libknlopt.a kzvndv.o
/usr/bin/ar cr /u01/app/oracle/rdbms/lib/libknlopt.a /u01/app/oracle/rdbms/lib/kzvidv.o
/usr/bin/ar d /u01/app/oracle/rdbms/lib/libknlopt.a kzlnlbac.o
/usr/bin/ar cr /u01/app/oracle/rdbms/lib/libknlopt.a /u01/app/oracle/rdbms/lib/kzlilbac.o
chmod 755 /u01/app/oracle/bin
– Linking Oracle
rm -f /u01/app/oracle/rdbms/lib/oracle
gcc -o /u01/app/oracle/rdbms/lib/oracle -m32 -z noexecstack -L/u01/app/oracle/rdbms/lib/ -L/u01/app/oracle/lib/ -L/u01/app/oracle/lib/stubs/ -L/u01/app/oracle/lib/ -lirc -lipgo -Wl,-E /u01/app/oracle/rdbms/lib/opimai.o
(篇幅原因,有省略……)
-L/u01/app/oracle/lib
test ! -f /u01/app/oracle/bin/oracle ||\
mv -f /u01/app/oracle/bin/oracle /u01/app/oracle/bin/oracleO
mv /u01/app/oracle/rdbms/lib/oracle /u01/app/oracle/bin/oracle
chmod 6751 /u01/app/oracle/bin/oracle
注意:如果在 Exadata 中需要使用 IPC 协议访问存储,则需要加入 ipc_rds 协议模块。另外如果 Windows 平台,则是将 $ORACLE_HOME/bin 目录中 oradv11.dll.dbl 改名为 oradv11.dll 命令。
之后,重新启动监听器和服务器。
[oracle@SimpleLinux lib]$ lsnrctl start
SQL conn / as sysdba
Connected to an idle instance.
SQL startup
ORACLE instance started.
Total System Global Area 372449280 bytes
Fixed Size 1364732 bytes
Variable Size 281021700 bytes
4、调用 dbca 启动
在支持 GUI 的界面方式下,调用 dbca 启动编译。
点击下一步 Next,选择 Configure Database Options 项目。之后选择目标数据库。
从选项中,选择上 Label Security 和 Vault 选项。
配置项目中,包括了 Oracle Vault 用户 owner 的名称和管理员密码。注意:这个配置密码环节是很严格的,要求长度是 8 -30 位、不出现重复字符和包括至少一个标点符号。
选择连接方法,包括独占方式和共享连接方式。最后安装选项。
最后安装成功,结束 GUI 界面。
5、启动 DBV 配置界面
和很多 Oracle 组件一样,Oracle Vault 是可以通过一系列的 API 接口调用来进行配置管理的。但是,由于复杂性,Oracle 并不推荐直接使用 API 接口命令进行管理,而是通过提供的 dbv 应用进行配置。使用 dbv 的方法和 em 很像,而且避免了出现错误的几率。
调用 dbv 的方法,首先是启动 emctl。之后调用 https://:
/dva。端口号和 em 是一样的。
点击登录,就可以看到配置项目。
Vault 默认是提供很多默认配置内容的。在完成安装之后,我们最直接观察就是 sys 本身功能被限制。
SQL conn sys/oracle@ora11g as sysdba
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.4.0
Connected as SYS
SQL create user xxx identified by xxx;
create user xxx identified by xxx
ORA-01031: 权限不足
SQL alter user scott identified by tiger;
alter user scott identified by tiger
ORA-01031: 权限不足
6、结论
Oracle Vault 是目前 Oracle 官方推荐的运维安全策略。在实际应用中,主要便于进行 sys 等管理员帐号权限限制,保护核心业务数据。
以上是“Oracle Vault 是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!