使用 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 用户身份修改基本数据库参数

在本教程中,您希望确保不能从一台远程计算机对(已批准)数据库配置进行即席更改。在本主题中,您将尝试以 SYSTEM 用户身份创建一个新的重做日志文件。执行以下步骤:

1.

在 SQL Worksheet 区域输入以下 SELECT 语句,选择执行语句图标 或按 F9 键。

alter system switch logfile


2.

SYSTEM 用户无法执行该操作。

返回主题列表

修改规则集来禁止远程 Alter 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 路径式导航栏,返回主页面。在下一部分中,您将测试命令。

返回主题列表

测试 Alter System 命令规则

再次执行先前运行的 SQL 语句。此时,您看到 SYSTEM 用户无法执行命令,因为只有规则集中值为“TRUE”的 IP 地址才是 Database Vault 服务器的 IP 地址。访问该服务器的计算机的 IP 地址不同,在本教程中,您希望禁止对数据库远程更改。执行以下步骤:

1.

切换到 Oracle SQL Developer。单击执行语句图标 或按 F9 键再次执行先前运行的 SQL。


2.

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

返回主题列表

以 SYSTEM 用户身份创建一个数据库链接

让我们来看另一个场景:您还希望确保不能从一台远程计算机对(已批准)数据库配置进行即席更改。在本主题中,您将尝试以 SYSTEM 用户身份创建一个数据库链接。执行以下步骤:

1.

在 SQL Worksheet 区域输入以下语句,选择执行语句图标 或按 F9 键。

create database link mylink


2.

SYSTEM 用户无法执行该操作。

返回主题列表

创建命令规则来禁止远程 Create Database Link 命令执行

在本主题中,您将向现有的规则集添加一个规则,以禁止特权用户远程对数据库执行 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 路径式导航栏,返回主页面。在下一部分中,您将测试命令。

返回主题列表

测试 Create Database Link 命令规则

再次执行先前运行的 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 用户远程执行数据库命令

返回主题列表

将鼠标置于该图标上可以隐藏所有的屏幕截图。