16 Oracle Database Vault Rule Set APIs
You can use the DBMS_MACADM PL/SQL package and a set of Oracle Database Vault rule functions to manage rule sets.
- DBMS_MACADM Rule Set Procedures
TheDBMS_MACADMrule set procedures enable you to configure both rule sets and individual rules that go within these rule sets. - Oracle Database Vault PL/SQL Rule Set Functions
Oracle Database Vault provides functions to use in rule sets to inspect the SQL statement that the rule set protects.
16.1 DBMS_MACADM Rule Set Procedures
The DBMS_MACADM rule set procedures enable you to configure both rule sets and individual rules that go within these rule sets.
Only users who have been granted the DV_OWNER or DV_ADMIN role can use these procedures.
- ADD_RULE_TO_RULE_SET Procedure
TheADD_RULE_TO_RULE_SETprocedure adds rule to a rule set; you can enable having the rule checked when the rule set is evaluated. - CREATE_RULE Procedure
TheCREATE_RULEprocedure creates both common and local rules, which afterward, can be added to a rule set. - CREATE_RULE_SET Procedure
TheCREATE_RULE_SETprocedure creates a rule set. - DELETE_RULE Procedure
TheDELETE_RULEprocedure deletes a rule. - DELETE_RULE_FROM_RULE_SET Procedure
TheDELETE_RULE_FROM_RULE_SETprocedure deletes a rule from a rule set. - DELETE_RULE_SET Procedure
TheDELETE_RULE_SETprocedure deletes a rule set. - RENAME_RULE Procedure
TheRENAME_RULEprocedure renames a rule and causes the name change to take effect everywhere the rule is used - RENAME_RULE_SET Procedure
TheRENAME_RULE_SETprocedure renames a rule set and causes the name change to take effect everywhere the rule set is used. - UPDATE_RULE Procedure
TheUPDATE_RULEprocedure updates a rule. - UPDATE_RULE_SET Procedure
TheUPDATE_RULE_SETprocedure updates a rule set.
Related Topics
Parent topic: Oracle Database Vault Rule Set APIs
16.1.1 ADD_RULE_TO_RULE_SET Procedure
The ADD_RULE_TO_RULE_SET procedure adds rule to a rule set; you can enable having the rule checked when the rule set is evaluated.
Syntax
DBMS_MACADM.ADD_RULE_TO_RULE_SET( rule_set_name IN VARCHAR2, rule_name IN VARCHAR2);
Parameters
Table 16-1 ADD_RULE_TO_RULE_SET Parameters
| Parameter | Description |
|---|---|
|
|
Rule set name. To find existing rule sets in the current database instance, query the |
|
|
Rule to add to the rule set. To find existing rules, query the To find rules that have been associated with rule sets, query |
Example
The following example adds a rule to a rule set, and by omitting the enabled parameter, automatically enables the rule to be checked when the rule set is evaluated.
BEGIN DBMS_MACADM.ADD_RULE_TO_RULE_SET( rule_set_name => 'Limit_DBA_Access', rule_name => 'Restrict DROP TABLE operations'); END; /
Related Topics
Parent topic: DBMS_MACADM Rule Set Procedures
16.1.2 CREATE_RULE Procedure
The CREATE_RULE procedure creates both common and local rules, which afterward, can be added to a rule set.
Syntax
DBMS_MACADM.CREATE_RULE( rule_name IN VARCHAR2, rule_expr IN VARCHAR2 scope IN NUMBER DEFAULT, is_static IN BOOLEAN DEFAULT FALSE);
Parameters
Table 16-2 CREATE_RULE Parameters
| Parameter | Description |
|---|---|
|
|
Rule name, up to 128 characters in mixed-case. Spaces are allowed. Oracle suggests that you start the name with a verb and complete the name with the purpose of the rule. For example: To find existing rules in the current database instance, query the To find rules that have been associated with rule sets, query |
|
|
PL/SQL It must follow these guidelines:
|
|
|
Determines how to execute this procedure. If you omit this setting, then it defaults to
|
|
|
Specifies whether the evaluation of a rule should be static or dynamic. If you omit this setting, then it defaults to
|
Examples
The following example shows how to create a local rule expression that checks if the current session user is SYSADM. The scope setting is omitted to default it to DBMS_MACUTL.G_SCOPE_LOCAL. The user running this procedure must be in the same PDB in which the rule and its rule set reside. To find the existing PDBs, run the show pdbs command. The rule and rule set must be local.
BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check UPDATE operations',
rule_expr =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SYSADM''',
is_static => TRUE);
END;
/
This example shows a multitenant environment common version of the preceding example. The user running this procedure must be in the CDB root, and the rule and its associated rule set must be common. The rule will reside in the application root.
BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check UPDATE operations',
rule_expr =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SYSADM''',
scope => DBMS_MACUTL.G_SCOPE_COMMON,
is_static => TRUE);
END;
/
This example shows how to create a rule expression that uses the public standalone function OLS_LABEL_DOMINATES to find if the session label of the hr_ols_pol Oracle Label Security policy dominates or is equal to the hs label. The value 0 indicates if it is false. (To check if it is equal, you would specify 1.) The scope (default is local) and is_static (default is FALSE) parameters are omitted; their default values will be used.
BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check OLS Factor',
rule_expr => 'OLS_LABEL_DOMINATES(''hr_ols_pol'', ''hs'') = 1');
END;
/Related Topics
Parent topic: DBMS_MACADM Rule Set Procedures
16.1.3 CREATE_RULE_SET Procedure
The CREATE_RULE_SET procedure creates a rule set.
After you create a rule set, you can use the CREATE_RULE and ADD_RULE_TO_RULE_SET procedures to create and add rules to the rule set.
Syntax
DBMS_MACADM.CREATE_RULE_SET( rule_set_name IN VARCHAR2, description IN VARCHAR2 DEFAULT, enabled IN VARCHAR2 DEFAULT, eval_options IN NUMBER DEFAULT, audit_options IN NUMBER DEFAULT, fail_options IN NUMBER DEFAULT, fail_message IN VARCHAR2 DEFAULT, fail_code IN NUMBER DEFAULT, handler_options IN NUMBER DEFAULT, handler IN VARCHAR2 DEFAULT, is_static IN BOOLEAN DEFAULT, scope IN NUMBER DEFAULT);
Parameters
Table 16-3 CREATE_RULE_SET Parameters
| Parameter | Description |
|---|---|
|
|
Rule set name, up to 128 characters in mixed-case. Spaces are allowed. Oracle suggests that you start the name with a verb and complete it with the realm or command rule name to which the rule set is attached. To find existing rule sets in the current database instance, query the |
|
|
Description of the purpose of the rule set, up to 1024 characters in mixed-case. If you omit this setting, then it defaults to an empty string. |
|
|
Controls realm checking. If you omit this setting, then it defaults to
|
|
|
For multiple rules being added to a rule set, determines if any or all rules are evaluated. If you omit this setting, then it defaults to
|
|
|
Specify Traditional auditing is desupported in Oracle AI Database 26ai. Oracle recommends that you use unified auditing. To audit a rule set, you must use unified auditing. See Oracle AI Database Security Guide for an example of how to create a unified audit policy for a rule set. |
|
|
Determines whether to show or not show errors if the rule set evaluation fails. If you omit this setting, then it defaults to
|
|
|
Enter an error message for failure, up to 80 characters in mixed-case, to associate with the fail code you specify for |
|
|
Enter a number in the range of -20000 to -20999 or 20000 to 20999 to associate with the |
|
|
Controls the behavior of the handler. If you omit this setting, then it defaults to
|
|
|
Name of the PL/SQL function or procedure that defines the custom event handler logic. If you omit this setting, then it defaults to You can create a custom event method to provide special processing outside the standard Oracle Database Vault rule set auditing features. For example, you can use an event handler to initiate a workflow process or send event information to an external system. Write the expression as a fully qualified procedure (such as
Be aware that you cannot use invoker's rights procedures as event handlers. Doing so can cause the rule set evaluation to fail unexpectedly. Only use definer's rights procedures as event handlers. Use the following syntax: my_schema.my_ruleset_handler |
|
|
Optional. Determines if the rule set is re-evaluated when it is accessed. If you omit this setting, then it defaults to
|
|
|
Determines whether the rule set should be common or local. If you omit this setting, then it defaults to
|
Examples
The following example creates a rule set that is enabled and is set so that at least one rule must evaluate to true for the rule set itself to evaluate to true. The enabled setting is omitted, which defaults the rule set's enablement status to DBMS_MACUTL.G_YES. It shows an error message and uses the fail code 20461 to track failures. It also uses a handler to send email alerts to the appropriate users if their are violations to the rule set.
BEGIN DBMS_MACADM.CREATE_RULE_SET( rule_set_name => 'Limit_DBA_Access', description => 'DBA access through predefined processes', eval_options => DBMS_MACUTL.G_RULESET_EVAL_ANY, audit_options => DBMS_MACUTL.G_RULESET_AUDIT_OFF, fail_options => DBMS_MACUTL.G_RULESET_FAIL_SILENT, fail_message => 'Configuration failed; check settings', fail_code => 20461, handler_options => DBMS_MACUTL.G_RULESET_HANDLER_FAIL, handler => 'dbavowner.email_alert', is_static => TRUE); END; /
This rule set uses no fail messages or fail codes, nor does it use any handlers. This rule set will be in the application root of a multitenant environment, so the user running this procedure must be in the application root. It has no fail message or fail code, so the fail_message and fail_code settings are omitted. Any rules or command rules that are associated with this rule set must be common.
BEGIN DBMS_MACADM.CREATE_RULE_SET( rule_set_name => 'Check_HR_Access', description => 'Checks for failed access attempts to the HR schema', enabled => DBMS_MACUTL.G_YES, eval_options => DBMS_MACUTL.G_RULESET_EVAL_ANY, audit_options => DBMS_MACUTL.G_RULESET_AUDIT_OFF, fail_options => DBMS_MACUTL.G_RULESET_FAIL_SILENT, is_static => TRUE, scope => DBMS_MACUTL.G_SCOPE_COMMON); END; /
This rule set is a local version of the preceding rule set. The user who creates this rule set must be in the PDB in which this rule set will reside. The fail_message, fail_code, handler_options, and handler settings are omitted because this rule set has no error messages or handler. Any rules or command rules that are associated with this rule set must be local.
BEGIN DBMS_MACADM.CREATE_RULE_SET( rule_set_name => 'Check_HR_Access', description => 'Checks for failed access attempts to the HR schema', enabled => DBMS_MACUTL.G_YES, eval_options => DBMS_MACUTL.G_RULESET_EVAL_ANY, audit_options => DBMS_MACUTL.G_RULESET_AUDIT_OFF, fail_options => DBMS_MACUTL.G_RULESET_FAIL_SILENT, is_static => TRUE, scope => DBMS_MACUTL.G_SCOPE_LOCAL); END; /
Related Topics
Parent topic: DBMS_MACADM Rule Set Procedures
16.1.4 DELETE_RULE Procedure
The DELETE_RULE procedure deletes a rule.
Syntax
DBMS_MACADM.DELETE_RULE( rule_name IN VARCHAR2);
Parameter
Table 16-4 DELETE_RULE Parameter
| Parameter | Description |
|---|---|
|
|
Rule name. To find existing rules in the current database instance, query the To find rules that have been associated with rule sets, query |
Example
EXEC DBMS_MACADM.DELETE_RULE('Check UPDATE operations'); Parent topic: DBMS_MACADM Rule Set Procedures
16.1.5 DELETE_RULE_FROM_RULE_SET Procedure
The DELETE_RULE_FROM_RULE_SET procedure deletes a rule from a rule set.
Syntax
DBMS_MACADM.DELETE_RULE_FROM_RULE_SET( rule_set_name IN VARCHAR2, rule_name IN VARCHAR2);
Parameters
Table 16-5 DELETE_RULE_FROM_RULE_SET Parameters
| Parameter | Description |
|---|---|
|
|
Rule set name. To find existing rule sets in the current database instance, query the |
|
|
Rule to remove from the rule set. To find existing rules in the current database instance, query the To find rules that have been associated with rule sets, query |
Example
BEGIN DBMS_MACADM.DELETE_RULE_FROM_RULE_SET( rule_set_name => 'Limit_DBA_Access', rule_name => 'Check UPDATE operations'); END; /
Parent topic: DBMS_MACADM Rule Set Procedures
16.1.6 DELETE_RULE_SET Procedure
The DELETE_RULE_SET procedure deletes a rule set.
Syntax
DBMS_MACADM.DELETE_RULE_SET( rule_set_name IN VARCHAR2);
Parameters
Table 16-6 DELETE_RULE_SET Parameter
| Parameter | Description |
|---|---|
|
|
Rule set name. To find existing rule sets in the current database instance, query the |
Example
EXEC DBMS_MACADM.DELETE_RULE_SET('Limit_DBA_Access'); Parent topic: DBMS_MACADM Rule Set Procedures
16.1.7 RENAME_RULE Procedure
The RENAME_RULE procedure renames a rule and causes the name change to take effect everywhere the rule is used
Syntax
DBMS_MACADM.RENAME_RULE( rule_name IN VARCHAR2, new_name IN VARCHAR2);
Parameters
Table 16-7 RENAME_RULE Parameters
| Parameter | Description |
|---|---|
|
|
Current rule name. To find existing rules in the current database instance, query the To find rules that have been associated with rule sets, query |
|
|
New rule name, up to 128 characters in mixed-case. |
Example
BEGIN DBMS_MACADM.RENAME_RULE( rule_name => 'Check UPDATE operations', new_name => 'Check Sector 2 Processes'); END; /
Parent topic: DBMS_MACADM Rule Set Procedures
16.1.8 RENAME_RULE_SET Procedure
The RENAME_RULE_SET procedure renames a rule set and causes the name change to take effect everywhere the rule set is used.
Syntax
DBMS_MACADM.RENAME_RULE_SET( rule_set_name IN VARCHAR2, new_name IN VARCHAR2);
Parameters
Table 16-8 RENAME_RULE_SET Parameters
| Parameter | Description |
|---|---|
|
|
Current rule set name. To find existing rule sets in the current database instance, query the |
|
|
New rule set name, up to 128 characters in mixed-case. Spaces are allowed. |
Example
BEGIN DBMS_MACADM.RENAME_RULE_SET( rule_set_name => 'Limit_DBA_Access', new_name => 'Limit Sector 2 Access'); END; /
Parent topic: DBMS_MACADM Rule Set Procedures
16.1.9 UPDATE_RULE Procedure
The UPDATE_RULE procedure updates a rule.
Syntax
DBMS_MACADM.UPDATE_RULE( rule_name IN VARCHAR2, rule_expr IN VARCHAR2 DEFAULT, is_static IN BOOLEAN DEFAULT);
Parameters
Table 16-9 UPDATE_RULE Parameters
| Parameter | Description |
|---|---|
|
|
Rule name. To find existing rules in the current database instance. To find rules that have been associated with rule sets, query |
|
|
PL/SQL If the expression contains quotation marks, do not use double quotation marks. Instead, use two single quotation marks. Enclose the entire expression within single quotation marks. For example: 'TO_CHAR(SYSDATE,''HH24'') = ''12'''
To find existing rule expressions, query the |
|
|
Specifies whether the evaluation of a rule should be static or dynamic. If you do not want to change this setting, then omit it or set it to
|
Example
BEGIN
DBMS_MACADM.UPDATE_RULE(
rule_name => 'Check UPDATE operations',
rule_expr =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SYSADM'' AND
(
UPPER(SYS_CONTEXT(''USERENV'',''MODULE'')) LIKE ''APPSRVR%'' OR
UPPER(SYS_CONTEXT(''USERENV'',''MODULE'')) LIKE ''DBAPP%''
)',
is_static => TRUE);
END;
/Parent topic: DBMS_MACADM Rule Set Procedures
16.1.10 UPDATE_RULE_SET Procedure
The UPDATE_RULE_SET procedure updates a rule set.
When you update a rule set, the existing traditional audit records are disabled. You must create a unified audit policy to capture new audit records. To find the current values, query the DBA_DV_RULE_SET data dictionary view.
Syntax
DBMS_MACADM.UPDATE_RULE_SET( rule_set_name IN VARCHAR2, description IN VARCHAR2 DEFAULT, enabled IN VARCHAR2 DEFAULT, eval_options IN NUMBER DEFAULT, audit_options IN NUMBER DEFAULT, fail_options IN NUMBER DEFAULT, fail_message IN VARCHAR2 DEFAULT, fail_code IN NUMBER DEFAULT, handler_options IN NUMBER DEFAULT, handler IN VARCHAR2 DEFAULT, is_static IN BOOLEAN DEFAULT);
Parameters
Table 16-10 UPDATE_RULE_SET Parameters
| Parameter | Description |
|---|---|
|
|
Rule set name. To find existing rule sets in the current database instance. |
|
|
Description of the purpose of the rule set, up to 1024 characters in mixed-case. If you do not want to change this setting, then omit it or set it to |
|
|
Controls the enablement of the rule set. If you do not want to change this setting, then omit it or set it to
|
|
|
For multiple rules that have been added to a rule set, determines if any or all rules are evaluated. If you do not want to change this setting, then omit it or set it to
|
|
|
Perform one of the following actions:
Traditional auditing is desupported in Oracle AI Database 26ai. Oracle recommends that you use unified auditing. To audit a rule set, you must use unified auditing. See Oracle AI Database Security Guide for an example of how to create a unified audit policy for a rule set. |
|
|
Options for reporting errors. If you do not want to change this setting, then omit it or set it to
|
|
|
Error message for failure, up to 80 characters in mixed-case, to associate with the fail code you specify for |
|
|
Enter a number in the range of -20000 to -20999 or 20000 to 20999 to associate with the |
|
|
Controls the behavior of the handler. If you do not want to change this setting, then omit it or set it to
|
|
|
Name of the PL/SQL function or procedure that defines the custom event handler logic. If you do not want to change this setting, then omit it or set it to |
|
|
Optional. Determines how often a rule set is evaluated when it is accessed by a SQL statement. If you do not want to change this setting, then omit it or set it to
|
Example
In this example, enabled is omitted because this value did not need to change.
BEGIN DBMS_MACADM.UPDATE_RULE_SET( rule_set_name => 'Limit_DBA_Access', description => 'DBA access through predefined processes', eval_options => DBMS_MACUTL.G_RULESET_EVAL_ANY, audit_options => DBMS_MACUTL.G_RULESET_AUDIT_OFF, fail_options => DBMS_MACUTL.G_RULESET_FAIL_SHOW, fail_message => 'Access denied!', fail_code => 20900, handler_options => DBMS_MACUTL.G_RULESET_HANDLER_OFF, handler => '', is_static => TRUE); END; /
If you did not make any modifications to the audit_options
parameter of your rule set, then the existing traditional audit policy will still be in
place. If you updated the audit_options parameter of the rule set, then
this auditing will be disabled because traditional auditing is desupported starting in Oracle AI Database 26ai. To capture new audit records, as a user who has been granted the
AUDIT_ADMIN
Oracle AI
Database role and AUDIT_ADMIN Oracle Database Vault authorization, create and
enable a unified audit policy. For example:
CREATE AUDIT POLICY Limit_DBA_Access_pol
ACTIONS COMPONENT=DV RULE SET FAILURE ON "Limit_DBA_Access";
AUDIT POLICY Limit_DBA_Access_pol;You can view the audit records by querying the UNIFIED_AUDIT_TRAIL data dictionary view. See Oracle AI Database
Security Guide for how this works.
16.2 Oracle Database Vault PL/SQL Rule Set Functions
Oracle Database Vault provides functions to use in rule sets to inspect the SQL statement that the rule set protects.
- DV_SYSEVENT Function
TheDV_SYSEVENTfunction returns the system event firing the rule set. . - DV_LOGIN_USER Function
TheDV_LOGIN_USERfunction returns the session user name, inVARCHAR2data type. - DV_INSTANCE_NUM Function
TheDV_INSTANCE_NUMfunction returns the database instance number, inNUMBERdata type. - DV_DATABASE_NAME Function
TheDV_DATABASE_NAMEfunction returns the database name, inVARCHAR2data type. - DV_DICT_OBJ_TYPE Function
TheDV_DICT_OBJ_TYPEfunction returns the type of the dictionary object on which the database operation occurred. - DV_DICT_OBJ_OWNER Function
TheDV_DICT_OBJ_OWNERfunction returns the name of the owner of the dictionary object on which the database operation occurred. - DV_DICT_OBJ_NAME Function
TheDV_DICT_OBJ_NAMEfunction returns the name of the dictionary object on which the database operation occurred. - DV_SQL_TEXT Function
TheDV_SQL_TEXTfunction returns the first 4000 characters of SQL text of the database statement used in the operation.
Parent topic: Oracle Database Vault Rule Set APIs
16.2.1 DV_SYSEVENT Function
The DV_SYSEVENT function returns the system event firing the rule set. .
The event name is the same as that in the syntax of the SQL statement (for example, INSERT, CREATE.) The return type is VARCHAR2.
Syntax
DV_SYSEVENT () RETURN VARCHAR2;
Parameters
None
Example
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Get System Event Firing the Maintenance Rule Set', rule_expr => 'DV_SYSEVENT = ''CREATE'''); END; /
Parent topic: Oracle Database Vault PL/SQL Rule Set Functions
16.2.2 DV_LOGIN_USER Function
The DV_LOGIN_USER function returns the session user name, in VARCHAR2 data type.
Syntax
DV_LOGIN_USER () RETURN VARCHAR2;
Parameters
None
Example
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Session User Name', rule_expr => 'DV_LOGIN_USER = ''SEBASTIAN'''); END; /
Parent topic: Oracle Database Vault PL/SQL Rule Set Functions
16.2.3 DV_INSTANCE_NUM Function
The DV_INSTANCE_NUM function returns the database instance number, in NUMBER data type.
Syntax
DV_INSTANCE_NUM () RETURN NUMBER;
Parameters
None
Example
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Database Instance Number', rule_expr => 'DV_INSTANCE_NUM BETWEEN 6 AND 9'); END; /
Parent topic: Oracle Database Vault PL/SQL Rule Set Functions
16.2.4 DV_DATABASE_NAME Function
The DV_DATABASE_NAME function returns the database name, in VARCHAR2 data type.
Syntax
DV_DATABASE_NAME () RETURN VARCHAR2;
Parameters
None
Example
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Database Name', rule_expr => 'DV_DATABASE_NAME = ''ORCL'''); END; /
Parent topic: Oracle Database Vault PL/SQL Rule Set Functions
16.2.5 DV_DICT_OBJ_TYPE Function
The DV_DICT_OBJ_TYPE function returns the type of the dictionary object on which the database operation occurred.
For example, dictionary objects it returns are table, procedure, or view. The return type is VARCHAR2.
Syntax
DV_DICT_OBJ_TYPE () RETURN VARCHAR2;
Parameters
None
Example
BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Dictionary Object Type',
rule_expr => 'DV_DICT_OBJ_TYPE IN (''TABLE'', ''VIEW'')');
END;
/Parent topic: Oracle Database Vault PL/SQL Rule Set Functions
16.2.6 DV_DICT_OBJ_OWNER Function
The DV_DICT_OBJ_OWNER function returns the name of the owner of the dictionary object on which the database operation occurred.
The return type is VARCHAR2.
Syntax
DV_DICT_OBJ_OWNER () RETURN VARCHAR2;
Parameters
None
Example
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Dictionary Object Owner', rule_expr => 'DV_DICT_OBJ_OWNER = ''JSMITH'''); END; /
Parent topic: Oracle Database Vault PL/SQL Rule Set Functions
16.2.7 DV_DICT_OBJ_NAME Function
The DV_DICT_OBJ_NAME function returns the name of the dictionary object on which the database operation occurred.
The return type is VARCHAR2.
Syntax
DV_DICT_OBJ_NAME () RETURN VARCHAR2;
Parameters
None
Example
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check Dictionary Object Name', rule_expr => 'DV_DICT_OBJ_NAME = ''SALES'''); END; /
Parent topic: Oracle Database Vault PL/SQL Rule Set Functions
16.2.8 DV_SQL_TEXT Function
The DV_SQL_TEXT function returns the first 4000 characters of SQL text of the database statement used in the operation.
The return type is VARCHAR2.
Syntax
DV_SQL_TEXT () RETURN VARCHAR2;
Parameters
None
Example
BEGIN DBMS_MACADM.CREATE_RULE( rule_name => 'Check SQL Text', rule_expr => 'DV_SQL_TEXT = ''SELECT SALARY FROM HR.EMPLOYEES'''); END; /
Parent topic: Oracle Database Vault PL/SQL Rule Set Functions