使用 Oracle Database Vault 限制命令执行
使用 Oracle Database Vault 限制命令执行
本教程将向您介绍 Oracle Database Vault 如何防止具有 DBA 角色的高级用户远程执行基本数据库修改。
大约 15 分钟
本教程包括下列主题:
将鼠标置于此图标上以加载和查看本教程的所有屏幕截图。
(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。
Oracle Database Vault 可帮助用户解决现有的极为棘手的安全问题,即防止内部的威胁,满足合规性要求以及实现职责划分。Oracle Database Vault 能防止 DBA 查看应用程序数据,解决了必须保护涉及合作伙伴、员工和顾客的敏感业务信息或隐私数据的客户最为担心的问题。Oracle Database Vault 可防止高权限的应用程序 DBA 访问其他的应用程序、执行其权限之外的任务。Oracle Database Vault 可以轻松快捷地保护现有应用程序,且不影响应用程序的功能。
返回主题列表
开始本教程之前,您应该:
| 1. |
安装 Oracle 数据库 11g 11.1.0.6 版。使用示例模式创建一个数据库(在安装过程中或安装之后)。 |
| 2. |
下载并解压缩 Oracle SQL Developer。 |
| 3. |
为您的数据库配置 Oracle Database Vault 选件。默认的 Oracle 数据库安装中并不安装 Oracle Database Vault,但 Oracle Database Vault 是 Oracle 数据库安装介质中可用的产品的一部分。您可以使用 Oracle Universal Installer 将它安装到一个现有数据库中。安装了 Oracle Database Vault 之后,使用 Database Configuration Assistant (dbca) 将 database vault 注册到数据库,然后创建所需的 database vault 帐户(有关更多信息,参阅 Oracle 数据库两日速成 + 安全性指南 11g 第 1 版 (11.1) 在线文档)。
注: 为使本 OBE 成功,您应当在另一台(远程)计算机上执行步骤,而非您安装了数据库并且配置了 Oracle Database Vault 选件的计算机。 |
返回主题列表
以 SYSTEM 身份创建一个数据库连接。执行以下步骤:
| 1. |
打开 Oracle SQL Developer。右键单击 Connections,选择 New Connection。

|
| 2. |
输入下面的信息并单击 Test。
Connection Name:system@database vault Username:system Password:<您的系统口令> Save Password:选中 Hostname:<您的主机名或 ip> Port:<您的数据库端口> SID:<您的数据库 sid>

|
| 3. |
如果状态为成功,单击 Connect。

|
| 4. |
连接建立。

|
返回主题列表
在本教程中,您希望确保不能从一台远程计算机对(已批准)数据库配置进行即席更改。在本主题中,您将尝试以 SYSTEM 用户身份创建一个新的重做日志文件。执行以下步骤:
| 1. |
在 SQL Worksheet 区域输入以下 SELECT 语句,选择执行语句图标 或按 F9 键。
alter system switch logfile

|
| 2. |
SYSTEM 用户无法执行该操作。

|
返回主题列表
在本主题中,您将向现有的规则集添加一个规则,以禁止特权用户远程对数据库执行命令(基于其 ip 地址)。执行以下步骤:
| 1. |
打开浏览器,输入以下 URL:
https://<your_hostname>:1158/dva

输入以下信息,然后单击 Login。
User Name:<您的 database vault 所有者> Password:<您的 database vault 所有者口令> Host:<您的主机名> Port:<您的数据库端口> SID / Service:<选择 SID 并输入您的数据库 sid>

|
| 2. |
单击 Command Rules 链接。

|
| 3. |
注意,ALTER SYSTEM 命令与 Allow System Parameters 规则集相关联。单击 Database Instance 路径式导航栏,返回主页面。

|
| 4. |
单击 Rule Sets 链接。

|
| 5. |
规则集是命令规则使用的高度自定义的参数。由于您不希望 DBA 远程执行 ALTER SYSTEM 命令,因此您可以向 Allow System Parameters 规则集添加一个规则(注:您之前看到 ALTER SYSTEM 命令已与 Allow System Parameters 规则集相关联)。选择 Allow System Parameters 规则集并单击 Edit。

|
| 6. |
向下滚动至页面底部。

|
| 7. |
在 Rules Associated to the Rule Set 下,单击 Create。

|
| 8. |
Oracle Database Vault 利用应用程序上下文特性提供大量预定义的“基元”(如“ip_address”),这些基元可用于确定访问权限或执行权限。指定一个名称,在 Rule Expression 域中输入以下内容,然后单击 OK。
sys_context('userenv','ip_address')='<your_host_ip_address>'
其中, 是您主机的 IP 地址

|
| 9. |
审核刚添加的规则集。然后,向上滚动至表单顶部。

|
| 10. |
确保状态为 Enabled,单击 OK。

|
| 11. |
已应用规则集。单击 Database Instance 路径式导航栏,返回主页面。在下一部分中,您将测试命令。

|
返回主题列表
再次执行先前运行的 SQL 语句。此时,您看到 SYSTEM 用户无法执行命令,因为只有规则集中值为“TRUE”的 IP 地址才是 Database Vault 服务器的 IP 地址。访问该服务器的计算机的 IP 地址不同,在本教程中,您希望禁止对数据库远程更改。执行以下步骤:
| 1. |
切换到 Oracle SQL Developer。单击执行语句图标 或按 F9 键再次执行先前运行的 SQL。

|
2.
|
此时当 SYSTEM 尝试执行 ALTER SYSTEM 命令时,会发生违规。

|
返回主题列表
让我们来看另一个场景:您还希望确保不能从一台远程计算机对(已批准)数据库配置进行即席更改。在本主题中,您将尝试以 SYSTEM 用户身份创建一个数据库链接。执行以下步骤:
| 1. |
在 SQL Worksheet 区域输入以下语句,选择执行语句图标 或按 F9 键。
create database link mylink

|
| 2. |
SYSTEM 用户无法执行该操作。

|
返回主题列表
在本主题中,您将向现有的规则集添加一个规则,以禁止特权用户远程对数据库执行 CREATE DATABASE LINK 命令(基于其 ip 地址)。执行以下步骤:
| 1. |
切换回 Oracle Database Vault,在主页面中单击 Command Rules 链接。

|
| 2. |
单击 Create。

|
| 3. |
从 Command 列表中选择 CREATE DATABASE LINK。从 Rule Set 列表中选择 Allow System Parameters(这是您之前通过添加规则以检查发出命令的计算机的 ip 地址时修改的规则集)。单击 OK。

|
| 4. |
注意,CREATE DATABASE LINK 命令规则现在出现在列表中,并且与 Allow Systems Parameters 规则集相关联。单击 Database Instance 路径式导航栏,返回主页面。在下一部分中,您将测试命令。

|
返回主题列表
再次执行先前运行的 SQL 语句。此时,您看到 SYSTEM 用户无法执行命令,因为只有规则集中值为“TRUE”的 IP 地址才是 Database Vault 服务器的 IP 地址。访问该服务器的计算机的 IP 地址不同,在本教程中,您希望禁止对数据库远程更改。执行以下步骤:
| 1. |
切换回 Oracle SQL Developer,尝试创建第二个数据库链接。在 SQL Worksheet 区域输入以下语句,选择执行语句图标 或按 F9 键。
创建数据库链接 mylink2

|
2. |
此时当 SYSTEM 尝试执行 CREATE DATABASE LINK 命令时,会发生违规。

|
创建规则集之后,审计选项被设为 Audit on Failure。执行下面的步骤验证审计:
| 1. |
切换到 Oracle Database Vault。单击 Data Vault Reports 选项卡。

|
2. |
在 Data Vault Reporting 类别下,选择 Command Rule Audit 并单击 Run Report。

|
3. |
随即显示报表。注意,在这种情况下,将显示运行的命令并将调用您更改的规则集。

|
返回主题列表
在本教程中,您学习了如何防止 DBA 用户远程执行数据库命令。
返回主题列表
将鼠标置于该图标上可以隐藏所有的屏幕截图。
|