Oracle
Label Security

OLS 用户许可作为 Oracle Database Vault 中的考虑因素

启动 Oracle Database Vault 并以 LBACSYS 身份(OLS 模式的所有者)登录,创建一个存储用户许可标签的 Label Security 策略。它们在后面将用作 Oracle Database Vault 中的考虑因素:
 

$ sqlplus LBACSYS/password
SQL> execute sa_sysdba.create_policy('PRIVACY','PRIVACY_COLUMN','NO_CONTROL');

以下命令创建 OLS 策略中用到的两个级别:

SQL> execute sa_components.create_level('PRIVACY',1000,'C','CONFIDENTIAL');
SQL> execute sa_components.create_level('PRIVACY',2000,'S','SENSITIVE');


下一条命令创建“PII”分隔:

SQL> execute sa_components.create_compartment('PRIVACY',100,'PII','PERS_INFO');


用户 JSmith 被授予较不敏感的标签:

SQL> execute sa_user_admin.set_user_labels('PRIVACY','JSmith','C');


用户 MDale 被授予较为敏感的标签,它也包括 PII 分隔:

SQL> execute sa_user_admin.set_user_labels('PRIVACY','MDale','S:PII');


为了将 OLS 标签用作 Database Vault 中的考虑因素,您需要先创建一个“规则集”:

SQL> connect dbv_owner/password;
SQL> execute dvsys.dbms_macadm.create_rule_set('PII Rule Set','Protect PII
         data from privileged users','Y',1,0,2,NULL,NULL,0,NULL);


规则集包含一条或多条规则;此规则包含用于评估 OLS 标签的语法:

SQL> execute dvsys.dbms_macadm.create_rule('Check OLS Factor',
         'dominates(sa_utl.numeric_label(''PRIVACY''),
         char_to_label(''PRIVACY'',''S:PII'')) = ''1''');
SQL> execute dvsys.dbms_macadm.sync_rules;
SQL> commit;


将规则添加到规则集:

SQL> execute dvsys.dbms_macadm.add_rule_to_rule_set
         ('PII Rule Set','Check OLS Factor');
SQL> commit;