Trust安卓版下载

TrustWallet钱包官方下载 OBE 主页 > 10gR2 单实例 > 安全性
TrustWallet钱包官方下载 OBE 主页 > 10gR2 单实例 > 安全性
发布日期:2025-04-29 00:09    点击次数:121
OBE 主页 > 10gR2 单实例 > 安全性 使用细粒度的审计 目的

本教程旨在演示如何使用细粒度审计检测对表中“honey token”的访问。

所需时间

大约 30 分钟

主题

本教程包括下列主题:

概述 前提条件

设置

创建并应用 VPD 策略 测试策略实施 检查审计违规 清理 总结 查看屏幕截图

将鼠标置于此图标上以加载和查看本教程的所有屏幕截图。 (警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)

注意:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。

概述

细粒度审计使用的策略可以基于内容监视数据访问。可以使用策略指定审计要记录的列和条件。条件可以包括将审计限制为与指定列结合使用的特定类型的 DML 语句。还可以提供在发生审计事件时要调用的例程名。该例程可以通知或警告管理员或处理错误和异常。

案例

本教程演示了如何使用细粒度审计检测对表中“honey token”的访问。本教程创建了一个根据信用卡供应商来限制对行的访问的 VPD 策略。honey token 是一个始终不可选中的信用卡号码。它无法通过常规的验证,并且信用卡号码无法与任何供应商关联,因此无权对该行进行访问。

VPD 策略不针对该表的所有者 OE。OE 有完全访问权限,因此当 OE(或获得了此身份的黑客)执行以下命令时

select from oe.cust_payment_info

honey token 将被选中,并且 FGA 策略将记录该事件。此外,您还可以调用事件处理程序(未包含在本教程中)向 audit_admin 发送一封有关此特殊行的访问权限的电子邮件。

本程在以下将职责划分至以下角色:

HR_sec 创建数据库用户(使用 hr.employees 表的员工列表)和数据库角色。 sec_admin

根据公司的访问控制和审计策略创建并应用 VPD 和 FGA 策略。

audit_admin 在数据库中查询审计记录 (dba_fga_audit_trail)。

返回主题列表

前提条件

开始本教程之前,您应该:

1.

完成了教程在 Windows 上安装 Oracle 数据库 10g。

2.

下载 fga.zip 文件并将其解压缩到您的目录 (c:\wkdir)。

返回主题列表

设置

在本部分内容中,您将更新 sqlnet.ora、创建一个加密钱夹 (ewallet.p12)、打开此钱夹并为 TDE 创建万能密钥。执行以下步骤:

1.

(可选:该主题应仅在尚未在先前的课程中执行该部分时执行)您需要更新 sqlnet.ora 文件以包含 ENCRYPTED_WALLET_LOCATION 条目。使用记事本或写字板打开 c:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora 文件。将以下条目添加到文件末尾:

ENCRYPTION_WALLET_LOCATION=   (SOURCE=(METHOD=FILE)(METHOD_DATA=   (DIRECTORY=c:\oracle\product\10.2.0\db_1\)))

保存您的更改并关闭文件。

注意:可以为加密钱夹选择任何目录,但路径不应指向在数据库安装过程中创建的标准模糊钱夹 (cwallet.sso)。

 

2.

(可选:该主题应仅在您尚未在以前的课程中执行该部分时执行)然后,您需要打开该钱夹并创建万能加密密钥。选择 开始 > 程序 > Oracle - OraDb10g_home1 > Application Development > SQL Plus。为 User Name 输入 /nolog,单击 OK。然后,输入以下命令:

@c:\wkdir\fga00_dbsetup

connect / as sysdba
alter system set key identified by "welcome1";

上面的 alter 命令执行以下任务:

如果指定的目录中不存在加密钱夹,则将创建加密钱夹 (ewallet.p12)、打开此钱夹并创建/重新创建万能密钥。 如果指定目录中存在加密钱夹,则将打开此钱夹并创建/重新创建万能密钥。

注意:只有拥有“alter system”权限的用户才能创建万能密钥或打开钱夹。

万能密钥只能创建一次,除非您想要使用新的加密密钥重新加密数据!!!

在后面的部分中,您不希望使用上面提供的命令;您需要打开钱夹(它在您关闭数据库时已经关闭),但您不希望创建一个新的万能密钥。于是,使用以下命令:

alter system set wallet open identified by "welcome1"; 

由于每个表都有各自的加密密钥,因此万能加密密钥是必需的。这些列密钥存储在数据库中。由于钱夹只能存储有限数目的密钥,并且可伸缩性不高,因此使用万能密钥加密列密钥。这样,TrustWallet钱包安卓下载您便可以拥有所需数量的列密钥, Trust安卓版下载并且钱夹中只存储少量的万能密钥(包括过期钥,当您某一天从旧的备份磁带解密数据时可能需要它)。默认情况下,以上命令使用 192 位的高级加密标准 (AES192) 生成一个密钥。也可以使用 3DES,或使用较小或较大的 AES 加密位数。

https://www.bitpiepaz.com

 

3.

在本教程中,您将创建一组用户和角色来演示 FGA 如何工作。您将创建一个客户付款信息表并使用信用卡号码填充该表。由于信用卡号码不可能与“Honey Token”关联,因此授权用户将无法选择该行。只有不受访问策略约束的管理用户或成为“内部”管理员的入侵者才能选择它。这可以对该表进行高度集中的审计。从 SQLPlus 窗口中,执行以下脚本:

@c:\wkdir\01_fga_poptabl
conn oe/oecreate table cust_payment_info   (first_name varchar2(11),   last_name varchar2(10),   order_number number(5),   credit_card_number varchar2(16) ENCRYPT);insert into cust_payment_info values  ('Jon', 'Oldfield', 10001, '5446959708812985');insert into cust_payment_info values  ('Chris', 'White', 10002, '5122358046082560');insert into cust_payment_info values  ('Alan', 'Squire', 10003, '5595968943757920');insert into cust_payment_info values  ('Mike', 'Anderson', 10004, '4929889576357400');insert into cust_payment_info values  ('Annie', 'Schmidt', 10005, '4556988708236902');insert into cust_payment_info values  ('Elliott', 'Meyer', 10006, '374366599711820');insert into cust_payment_info values  ('Celine', 'Smith', 10007, '4716898533036');insert into cust_payment_info values  ('Steve', 'Haslam', 10008, '340975900376858');insert into cust_payment_info values  ('Albert', 'Einstein', 10009, '310654305412389');

 

4.

SYSTEM 将创建三个管理用户:HR_sec、sec_admin 和 audit_admin。HR_sec 将创建角色“emp_role”,然后将系统权限和对象权限授予 emp_role。从 SQLPlus 窗口中运行以下脚本:

@c:\wkdir\02_fga_cradminusers

connect system/oracle;create user sec_admin identified by welcome1;create user audit_admin identified by welcome1;create user HR_sec identified by welcome1;grant connect, create user, drop user, create role, drop any role to HR_sec;
connect HR_sec/welcome1;create role emp_role;
connect / as sysdba;grant execute on dbms_rls to sec_admin;grant execute on dbms_fga to sec_admin; grant select on dba_fga_audit_trail to audit_admin;
connect system/welcome1;grant connect to emp_role;grant create procedure to sec_admin;
connect OE/oe;grant select on oe.cust_payment_info to emp_role;

 

5.

HR_sec 创建数据库用户并将 emp_role 授予他们。从 SQLPlus 窗口中运行以下脚本:

@c:\wkdir\03_fga_crdbusers

connect HR_sec/welcome1;Prompt create user Janette King (JKING) (access to Card_A)grant emp_role to JKING identified by welcome1;Prompt create user Lindsay Smith (LSMITH) (access to Card_V)grant emp_role to LSMITH identified by welcome1;Prompt create user Louise Doran (LDORAN) (access to Card_M)grant emp_role to LDORAN identified by welcome1;Prompt grant emp_role to sec_admin:grant emp_role to sec_admin;Prompt grant emp_role to audit_admin:grant emp_role to audit_admin;
connect hr/hr;grant select on hr.employees to sec_admin;

 

创建并应用 VPD 策略

在本部分中,您将使用 VPD 策略定义并限制行的访问权限。您将检查登录到数据库的用户是否是员工,然后根据信用卡号码来限制对 cust_payment_info 表的访问。

Card_A 从“34”或“37”开始:Card_V 从“4”开始Card_M 从“5”开始

执行以下步骤:

1.

您首先需要创建一个策略函数来创建 where 子句。从 SQLPlus 窗口中,执行以下脚本:

@c:\wkdir\04_fga_crpolicy_function

conn sec_admin/welcome1;create or replace function f_policy_oe_cust_payment_info-- Function must have the following parameters   (schema in varchar2, tab in varchar2)-- Function will return a string that is used as a WHERE clause return varchar2as v_manager_id     number:=0; is_employee      number:=0; v_user           varchar2(20); out_string       varchar2(70) default '1=2 ';begin  -- get session user  v_user := lower(sys_context('userenv','session_user'));  -- Is the user an employee?  begin    select manager_id into v_manager_id    from hr.employees    where lower(email) = v_user;    is_employee:=1;  exception   when no_data_found then     is_employee:=2;  end;  -- create where clause when user is authorized to see parts of the table  if     is_employee=1 and lower(v_user)='jking' and v_manager_id=146 then  out_string := out_string