Oracle XS_DATA_SECURITY_UTIL
Version 26ai

General Information
Library Note Morgan's Library Page Header
The best Oracle News for FY2026

Oracle Database 26ai is now availble. If you haven't you downloaded already: Why?
Purpose Real Application Security

The following important note was added to the create script
-- Bug 23597785: Create XS_DATA_SECURITY_UTIL with invoker rights
AUTHID CURRENT_USER
Data Types TYPE objnametype IS TABLE OF VARCHAR2(130)
INDEX BY BINARY_INTEGER;

TYPE objnumtype IS TABLE OF NUMBER
INDEX BY BINARY_INTEGER;
Dependencies
DBMS_PRIV_CAPTURE DBMS_SYS_SQL PLITBLM
DBMS_SNAP_INTERNAL DBMS_XDS_INT XS_ADMIN_UTIL
DBMS_SQL DBMS_XDS_LIB XS_DATA_SECURITY_UTIL_INT
DBMS_SYS_ERROR    
Documented Partially
Exceptions
Error Code Reason
46025 No static rule specified in applied policy
First Available 12.1
Security Model Owned by SYS with EXECUTE granted to the OGG_APPLY_PROCREP role.
Source {ORACLE_HOME}/rdbms/admin/xsds.sql
Subprograms
 
ALTER_STATIC_ACL_REFRESH
Alters the refresh mode for a ACLMV for a table by removing any refresh schedule for this ACLMV (see schedule_static_acl_refresh) xs_data_security_util.alter_static_acl_refresh(
schema_name  IN VARCHAR2 := NULL,
table_name   IN VARCHAR2,
refresh_mode IN VARCHAR2); -- refresh mode for internal ACLMV. 'ON DEMAND' and
                              'ON COMMIT' are the only legal values
exec xs_data_security_util.alter_static_acl_refresh('UWCLASS', 'SERVERS', xs_data_security_util.aclmv_on_commit);

PL/SQL procedure successfully completed.
 
PURGE_ACL_REFRESH_HISTORY
Purges contents for the table's ACL MV xs_data_security_util.purge_acl_refresh_history(
object_schema IN VARCHAR2 := NULL,
object_name   IN VARCHAR2,
purge_date    IN DATE     := NULL);
exec xs_data_security_util.purge_acl_refresh_history('UWCLASS', 'SERVERS', SYSDATE);

PL/SQL procedure successfully completed.

SELECT *
FROM sys.aclmvrefstat$;
 
SCHEDULE_STATIC_ACL_REFRESH
Schedules automatic refresh of an ACL MV changing the refresh mode to "ON DEMAND" xs_data_security_util.schedule_static_acl_refresh(
schema_name     IN VARCHAR2                 := NULL,
table_name      IN VARCHAR2,
start_date      IN TIMESTAMP WITH TIME ZONE := NULL,
repeat_interval IN VARCHAR2                 := NULL,
comments        IN VARCHAR2                 := NULL);
exec xs_data_security_util.schedule_static_acl_refresh('UWCLASS', 'SERVERS', SYSTIMESTAMP+1, 'freq=hourly; interval=4', 'Refresh On Demand');
 
SET_TRACE_LEVEL
Sets the debugging trace level xs_data_security_util.set_trace_level(
schema_name IN VARCHAR2,
table_name  IN VARCHAR2,
level       IN NUMBER);
exec xs_data_security_util.set_trace_level('UWCLASS', 'SERVERS', 8);

PL/SQL procedure successfully completed.

SELECT *
FROM sys.aclmv$_reflog;
 
XS$REFRESH_STATIC_ACL
Scheduler callback procedure to refresh an acl-mv xs_data_security_util.xs$refresh_static_acl(
schema_name IN VARCHAR2,
table_name  IN VARCHAR2,
mview_name  IN VARCHAR2,
job_name    IN VARCHAR2);
exec xs_data_security_util.xs$refresh_static_acl('SEC_MGR', 'SECTAB', 'SEC_TAB_MV', 'SECJOB');

PL/SQL procedure successfully completed.

Related Topics
Built-in Functions
Built-in Packages
Database Security
DBMS_XS_PRINCIPALS
DBMS_XS_SESSIONS
DBMS_XS_SESSIONS_FFI
DBMS_XS_SIDP
DBMS_XS_SYSTEM
DBMS_XS_SYSTEM_FFI
XS_ACL
XS_ADMIN_UTIL
XS_DATA_SECURITY_UTIL_INT
XS_DIAG
XS_DIAG_INT
XS_NAMESPACE
XS_PRINCIPAL
XS_PRINCIPAL_INT
XS_SECURITY_CLASS
What's New In 21c
What's New In 26ai

Morgan's Library Page Footer
This site is maintained by Daniel Morgan. Last Updated: This site is protected by copyright and trademark laws under U.S. and International law. © 1998-2026 Daniel A. Morgan All Rights Reserved