问题描述
嗨,
我正在尝试在数据库版本上使用Oracle透明敏感数据保护功能。12.1.0.2.0。
该计划是使用预定义的REDACT_AUDIT策略,以便隐藏引用敏感列的绑定变量。
我已经按照Oracle文档中解释的说明进行了操作https://docs.oracle.com/database/121/DBSEG/tsdp.htm#DBSEG810但它不起作用 (除非我错过了一些东西)。
这是我所做的:
1.
创建了一个包含CUST_ID列的表MYTAB,并填充了几千行;
2.
创建了一个敏感类型,并将其关联到列CUST_ID:
3.
将预定义策略REDACT_AUDIT关联到我的敏感类型:
4.
启用策略
在MYTAB上执行带有where条件的动态查询后
其中cust_id = :b
我期望,如文档中所述,不能从系统视图中读取任何绑定值 (只是指我的敏感列),但我可以通过查询V $ SQL_BIND_CAPTURE完美地看到它们。
我做错了什么?
非常感谢!
我正在尝试在数据库版本上使用Oracle透明敏感数据保护功能。12.1.0.2.0。
该计划是使用预定义的REDACT_AUDIT策略,以便隐藏引用敏感列的绑定变量。
我已经按照Oracle文档中解释的说明进行了操作https://docs.oracle.com/database/121/DBSEG/tsdp.htm#DBSEG810但它不起作用 (除非我错过了一些东西)。
这是我所做的:
1.
创建了一个包含CUST_ID列的表MYTAB,并填充了几千行;
2.
创建了一个敏感类型,并将其关联到列CUST_ID:
BEGIN DBMS_TSDP_MANAGE.ADD_SENSITIVE_TYPE ( sensitive_type => 'CUSTOMER_ID', user_comment => 'Customer id type'); DBMS_TSDP_MANAGE.ADD_SENSITIVE_COLUMN( schema_name => 'SCOTT', table_name => 'MYTAB', column_name => 'CUST_ID', sensitive_type => 'CUSTOMER_ID', user_comment => 'Bla bla bla'); END; /
3.
将预定义策略REDACT_AUDIT关联到我的敏感类型:
begin
dbms_tsdp_protect.ASSOCIATE_POLICY('REDACT_AUDIT', 'CUSTOMER_ID', true);
end;
/4.
启用策略
begin dbms_tsdp_protect.ENABLE_PROTECTION_COLUMN(policy => 'REDACT_AUDIT'); end; /
在MYTAB上执行带有where条件的动态查询后
其中cust_id = :b
我期望,如文档中所述,不能从系统视图中读取任何绑定值 (只是指我的敏感列),但我可以通过查询V $ SQL_BIND_CAPTURE完美地看到它们。
我做错了什么?
非常感谢!
专家解答
从文档中:
“REDACT_AUDIT透明敏感数据保护策略在审计记录,跟踪文件和V $ SQL_BIND_DATA视图查询中将数据显示为星号 (*)”
我怀疑不包括v $ sql_bind_capture可能是一个疏忽。例如,FGA日志按预期编辑
我会在支持下记录一个电话-这可能是一个错误。
“REDACT_AUDIT透明敏感数据保护策略在审计记录,跟踪文件和V $ SQL_BIND_DATA视图查询中将数据显示为星号 (*)”
我怀疑不包括v $ sql_bind_capture可能是一个疏忽。例如,FGA日志按预期编辑
SQL> create table scott.mytab ( CUST_ID varchar2(10));
Table created.
SQL> insert into scott.mytab values ('Connor');
1 row created.
SQL>
SQL> BEGIN
2 DBMS_TSDP_MANAGE.ADD_SENSITIVE_TYPE (
3 sensitive_type => 'CUSTOMER_ID',
4 user_comment => 'Customer id type');
5
6 DBMS_TSDP_MANAGE.ADD_SENSITIVE_COLUMN(
7 schema_name => 'SCOTT',
8 table_name => 'MYTAB',
9 column_name => 'CUST_ID',
10 sensitive_type => 'CUSTOMER_ID',
11 user_comment => 'Bla bla bla');
12 END;
13 /
PL/SQL procedure successfully completed.
SQL>
SQL>
SQL> begin
2 dbms_tsdp_protect.ENABLE_PROTECTION_COLUMN(policy => 'REDACT_AUDIT');
3 end;
4 /
PL/SQL procedure successfully completed.
SQL> begin
2 dbms_fga.add_policy
3 ( object_schema => 'SCOTT',
4 object_name => 'MYTAB',
5 policy_name => 'MYTAB_POL',
6 audit_condition => '1=1',
7 audit_column => 'CUST_ID' );
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> variable b1 varchar2(10)
SQL> exec :b1 := 'Connor';
PL/SQL procedure successfully completed.
SQL> select /*transdata*/ * from scott.mytab where cust_id = :b1;
CUST_ID
----------
Connor
SQL> @pt "select * from sys.fga_log$"
SESSIONID : 4020958
TIMESTAMP# :
DBUID : MCDONAC
OSUID : COMCDONA-AU\comcdona
OSHST : ORADEV\COMCDONA-AU
CLIENTID :
EXTID : COMCDONA-AU\comcdona
OBJ$SCHEMA : SCOTT
OBJ$NAME : MYTAB
POLICYNAME : MYTAB_POL
SCN : 118891021
SQLTEXT :
LSQLTEXT : select /*transdata*/ * from scott.mytab where cust_id = :b1
SQLBIND :
COMMENT$TEXT :
PLHOL :
STMT_TYPE : 1
NTIMESTAMP# : 19-FEB-17 03.57.17.397000 AM
PROXY$SID :
USER$GUID :
INSTANCE# : 0
PROCESS# : 9924:22908
XID :
AUDITID :
STATEMENT : 16
ENTRYID : 2
DBID : 1914458800
LSQLBIND : #1(1):*
OBJ$EDITION :
PL/SQL procedure successfully completed.
SQL>
我会在支持下记录一个电话-这可能是一个错误。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




