| Security Advisory | 
    
    
      This package is part of Oracle Database Real Application Security (RAS) and is used perform a number of internal administrative functions including at least one connected to auditing. 
       
      Oracle has very responsibly granted no permissions to EXECUTE for this package though we would have preferred that they had added an ACCESSIBLE BY clause so that it could not be executed ad hoc as we have done in a few demos on this page. | 
    
    
      |   | 
    
    
      | Recommended Security Rules | 
    
    
       
       NEVER
      
        - Grant access to this package to any user for any reason
 
       
       WITH GREAT CARE
      
        - Review audit logs for package use or attempts to use this package
 
       
       CAUTIONS
       | 
    
    
      |   | 
    
    
      | How Oracle Works | 
    
    
      
      Oracle has released an option named Real Application Security (RAS) that contains a lot of moving pieces of which this is one of them.
      We are currently working on a single comprehensive monograph to explain RAS from the standpoint of what it offers, the  pieces required to make it work, and any risks associated either with its use or how Oracle has implemented it. 
       
      One of our biggest concerns is the lack of good documentation about the many pieces of the puzzle and while this package, other than a lack of an ACCESSIBLE BY clause is not of specific concern it is best to monitor any calls or requests pertaining to any of the pieces with care. | 
    
    
      |   | 
    
    
      | XS_ADMIN_INT Package Information | 
    
    
      | AUTHID | 
      CURRENT_USER | 
    
    
      | Constants | 
      
        
          
            
              | Name | 
              Data Type | 
              Value | 
             
            
              | 
               Dependency Types | 
               
            
              | ROLE_GRANT_PROXY_DEP | 
              PLS_INTEGER | 
              1 | 
             
            
              | SC_INHERIT_DEP | 
              PLS_INTEGER | 
              2 | 
             
            
              | SCOPE_ACL_DEP | 
              PLS_INTEGER | 
              3 | 
             
            
              | ACL_INHERIT_DEP | 
              PLS_INTEGER | 
              4 | 
             
            
              | PROTECT_INST_SET_DEP | 
              PLS_INTEGER | 
              5 | 
             
            
              | GRANT_DENY_PRNC_DEP | 
              PLS_INTEGER | 
              6 | 
             
            
              | ROLE_ROLESET_DEP | 
              PLS_INTEGER | 
              7 | 
             
            
              |  DELETE_ENTITY Returned Values | 
               
            
              | DELETE_SUCCESS | 
              PLS_INTEGER | 
              0 | 
             
            
              | WARN_DEP_EXISTS | 
              PLS_INTEGER | 
              1 | 
             
            
              | WARN_CONSTRIANTS_EXISTS | 
              PLS_INTEGER | 
              2 | 
             
            
              |  Object Creation Status Values | 
               
            
              | OBJ_WITH_STATUS_NOT_EXISTS | 
              PLS_INTEGER | 
              0 | 
             
            
              | OBJ_WITH_STATUS_EXISTS | 
              PLS_INTEGER | 
              1 | 
             
            
              | OBJ_WITH_STATUS_EXTERNAL | 
              PLS_INTEGER | 
              2 | 
             
            
              | 
               System Privileges for Operating Non-Schema Objects | 
               
            
              | SPRIV_DBA | 
              PLS_INTEGER | 
              0 | 
             
            
              | SPRIV_CREATE_USER | 
              PLS_INTEGER | 
              1 | 
             
            
              | SPRIV_CREATE_ROLE | 
              PLS_INTEGER | 
              2 | 
             
            
              | SPRIV_DROP_USER | 
              PLS_INTEGER | 
              3 | 
             
            
              | SPRIV_DROP_ROLE | 
              PLS_INTEGER | 
              4 | 
             
            
              | SPRIV_GRANT_ROLE | 
              PLS_INTEGER | 
              5 | 
             
            
              | SPRIV_ALTER_USER | 
              PLS_INTEGER | 
              6 | 
             
            
              | SPRIV_ALTER_ROLE | 
              PLS_INTEGER | 
              7 | 
             
            
              |  Triton Admin Audit Actions | 
               
            
              | AUDIT_CREATE_USER | 
              PLS_INTEGER | 
              1 | 
             
            
              | AUDIT_UPDATE_USER | 
              PLS_INTEGER | 
              2 | 
             
            
              | AUDIT_DELETE_USER | 
              PLS_INTEGER | 
              3 | 
             
            
              | AUDIT_CREATE_ROLE | 
              PLS_INTEGER | 
              4 | 
             
            
              | AUDIT_UPDATE_ROLE | 
              PLS_INTEGER | 
              5 | 
             
            
              | AUDIT_DELETE_ROLE | 
              PLS_INTEGER | 
              6 | 
             
            
              | AUDIT_GRANT_ROLE | 
              PLS_INTEGER | 
              7 | 
             
            
              | AUDIT_REVOKE_ROLE | 
              PLS_INTEGER | 
              8 | 
             
            
              | AUDIT_ADD_PROXY | 
              PLS_INTEGER | 
              9 | 
             
            
              | AUDIT_REMOVE_PROXY | 
              PLS_INTEGER | 
              10 | 
             
            
              | AUDIT_SET_PASSWORD | 
              PLS_INTEGER | 
              11 | 
             
            
              | AUDIT_SET_VERIFIER | 
              PLS_INTEGER | 
              12 | 
             
            
              | AUDIT_CREATE_ROLESET | 
              PLS_INTEGER | 
              13 | 
             
            
              | AUDIT_UPDATE_ROLESET | 
              PLS_INTEGER | 
              14 | 
             
            
              | AUDIT_DELETE_ROLESET | 
              PLS_INTEGER | 
              15 | 
             
            
              | AUDIT_CREATE_SECURITY_CLASS | 
              PLS_INTEGER | 
              16 | 
             
            
              | AUDIT_UPDATE_SECURITY_CLASS | 
              PLS_INTEGER | 
              17 | 
             
            
              | AUDIT_DELETE_SECURITY_CLASS | 
              PLS_INTEGER | 
              18 | 
             
            
              | AUDIT_CREATE_NAMESPACE | 
              PLS_INTEGER | 
              19 | 
             
            
              | AUDIT_UPDATE_NAMESPACE | 
              PLS_INTEGER | 
              20 | 
             
            
              | AUDIT_DELETE_NAMESPACE | 
              PLS_INTEGER | 
              21 | 
             
            
              | AUDIT_CREATE_ACL | 
              PLS_INTEGER | 
              22 | 
             
            
              | AUDIT_UPDATE_ACL | 
              PLS_INTEGER | 
              23 | 
             
            
              | AUDIT_DELETE_ACL | 
              PLS_INTEGER | 
              24 | 
             
            
              | AUDIT_CREATE_DATA_SECURITY | 
              PLS_INTEGER | 
              25 | 
             
            
              | AUDIT_UPDATE_DATA_SECURITY | 
              PLS_INTEGER | 
              26 | 
             
            
              | AUDIT_DELETE_DATA_SECURITY | 
              PLS_INTEGER | 
              27 | 
             
            
              | AUDIT_ENABLE_DATA_SECURITY | 
              PLS_INTEGER | 
              28 | 
             
            
              | AUDIT_DISABLE_DATA_SECURITY | 
              PLS_INTEGER | 
              29 | 
             
            
              | AUDIT_ENABLE_ROLE | 
              PLS_INTEGER | 
              33 | 
             
            
              | AUDIT_DISABLE_ROLE | 
              PLS_INTEGER | 
              34 | 
             
            
              | AUDIT_SET_PROFILE | 
              PLS_INTEGER | 
              47 | 
             
            
              | AUDIT_GRANT_PRIVILEGE | 
              PLS_INTEGER | 
              48 | 
             
            
              | AUDIT_REVOKE_PRIVILEGE | 
              PLS_INTEGER | 
              49 | 
             
            
              |  Indices in DBMS_XS_AUDLIST | 
               
            
              | AUD_TARGETPNAME | 
              PLS_INTEGER | 
              1 | 
             
            
              | AUD_PROXYUNAME | 
              PLS_INTEGER | 
              2 | 
             
            
              | AUD_POLICYNAME | 
              PLS_INTEGER | 
              3 | 
             
            
              | AUD_SCHEMANAME | 
              PLS_INTEGER | 
              4 | 
             
            
              | AUD_ENABLEDROLE | 
              PLS_INTEGER | 
              5 | 
             
            
              | AUD_OBJOWN | 
              PLS_INTEGER | 
              6 | 
             
            
              | AUD_OBJNAME | 
              PLS_INTEGER | 
              7 | 
             
            
              |  Auditing Entity Types | 
               
            
              | UD_ENTITY_TYPE_USER | 
              PLS_INTEGER | 
              1 | 
             
            
              | AUD_ENTITY_TYPE_SECURITY_CLASS | 
              PLS_INTEGER | 
              2 | 
             
            
              | AUD_ENTITY_TYPE_ACL | 
              PLS_INTEGER | 
              3 | 
             
            
              | AUD_ENTITY_TYPE_ROLE | 
              PLS_INTEGER | 
              4 | 
             
            
              | AUD_ENTITY_TYPE_DATA_SECURITY | 
              PLS_INTEGER | 
              5 | 
             
            
              | AUD_ENTITY_TYPE_ROLESET | 
              PLS_INTEGER | 
              6 | 
             
            
              | AUD_ENTITY_TYPE_NSTEMPL | 
              PLS_INTEGER | 
              7 | 
             
             | 
    
    
      | Data Types | 
      TYPE dbms_xs_audlit IS VARRAY(7) OF VARCHAR2(4000); | 
    
    
      | Dependencies | 
      
        
          
            
              | DBMS_RXS_LIB | 
              XS_DATA_SECURITY | 
              XS_PRINCIPAL_INT | 
             
            
              | PLITBLM | 
              XS_DATA_SECURITY_INT | 
              XS_ROLESET | 
             
            
              | XS_ACL | 
              XS_DIAG | 
              XS_ROLESET_INT | 
             
            
              | XS_ACL_INT | 
              XS_NAMESPACE | 
              XS_SECURITY_CLASS | 
             
            
              | XS_ADMIN_UTIL | 
              XS_NAMESPACE_INT | 
              XS_SECURITY_CLASS_INT | 
             
            
              | XS_ADMIN_UTIL_INT | 
              XS_PRINCIPAL | 
                | 
             
             | 
    
    
      | Documented | 
      No | 
    
    
      | Exceptions | 
      
        
          
            
              | Error Code | 
              Reason | 
             
            
              | ORA-46050 | 
              Oracle Real Application Security internal error. | 
             
            
              | ORA-46215 | 
              XS entity by the name <object_name_string> did not exist. | 
             
             | 
    
    
      | First Available | 
      12.1 | 
    
    
      | Security Model | 
      Owned by SYS with no privileges granted | 
    
    
      | Source | 
      {ORACLE_HOME}/rdbms/admin/xsadmi.sql | 
    
    
      | Subprograms | 
      
         | 
    
    
      |   | 
    
    
      | ADMIN_AUDIT | 
    
    
      | Audit wrapper | 
      xs_admin_int.admin_audit ( 
      act           IN PLS_INTEGER, 
      auderr        IN PLS_INTEGER, 
      entitytype    IN PLS_INTEGER, 
      audrec_index1 IN PLS_INTEGER := 0, 
      audrec1       IN VARCHAR2    := NULL, 
      audrec_index2 IN PLS_INTEGER := 0, 
      audrec2       IN VARCHAR2    := NULL, 
      audrec_index3 IN PLS_INTEGER := 0, 
      audrec3       IN VARCHAR2    := NULL); | 
    
    
      | TBD | 
    
    
      |   | 
    
    
      | CHECK_PERMISSION | 
    
    
      | Check object permissions | 
      xs_admin_int.check_permission( 
      obj_name        IN VARCHAR2, 
      obj_type        IN PLS_INTEGER, 
      sys_priv        IN PLS_INTEGER := NULL, 
      scope           IN PLS_INTEGER := 1, 
      aclid           IN NUMBER      := NULL, 
      access_type     IN PLS_INTEGER := NULL, 
      tab_schema      IN VARCHAR2    := NULL, 
      check_any_privs IN BOOLEAN     := FALSE); | 
    
    
      CREATE OR REPLACE PROCEDURE testproc AUTHID DEFINER IS 
      BEGIN 
        NULL; 
      END testproc; 
      / 
       
      exec xs_admin_int.check_permission('TESTPROC', 2); 
       
      PL/SQL procedure successfully completed. | 
    
    
      |   | 
    
    
      | CREATE_DEPENDENCY | 
    
    
      | Create a Triton dependency | 
      xs_admin_int.create_dependency( 
      dep_type  IN     PLS_INTEGER, 
      obj_name1 IN     VARCHAR2, 
      obj_type1 IN     PLS_INTEGER, 
      obj_id1   IN OUT NUMBER, 
      obj_name2 IN     VARCHAR2, 
      obj_type2 IN     PLS_INTEGER, 
      obj_id2   IN OUT NUMBER); | 
    
    
      | TBD | 
    
    
      |   | 
    
    
      | CREATE_ENTITY | 
    
    
      | Create a Triton object | 
      xs_admin_int.create_entity( 
      obj_name   IN  VARCHAR2, 
      obj_type   IN  PLS_INTEGER, 
      obj_status IN  PLS_INTEGER, 
      obj_id     OUT NUMBER); | 
    
    
      | TBD | 
    
    
      |   | 
    
    
      | DELETE_DEPENDENCY | 
    
    
      | Delete a Triton dependency | 
      xs_admin_int.delete_dependency( 
      dep_type  IN     PLS_INTEGER, 
      obj_name1 IN     VARCHAR2, 
      obj_type1 IN     PLS_INTEGER, 
      obj_id1   IN OUT NUMBER, 
      obj_name2 IN     VARCHAR2, 
      obj_type2 IN     PLS_INTEGER, 
      obj_id2   IN OUT NUMBER); | 
    
    
      | TBD | 
    
    
      |   | 
    
    
      | DELETE_ENTITY | 
    
    
      | Delete a Triton entity | 
      xs_admin_int.delete_entity( 
      obj_name   IN     VARCHAR2, 
      obj_type   IN     PLS_INTEGER, 
      opt        IN     PLS_INTEGER, 
      obj_id     IN OUT NUMBER, 
      ret_status    OUT PLS_INTEGER); | 
    
    
      | TBD | 
    
    
      |   | 
    
    
      | GET_ENTITY_ID | 
    
    
      | Returns the entity identifier | 
      xs_admin_int.get_entity_id( 
      obj_name   IN     VARCHAR2, 
      obj_type   IN     PLS_INTEGER, 
      obj_status    OUT PLS_INTEGER, 
      obj_schema    OUT VARCHAR2, 
      obj_oname     OUT VARCHAR2, 
      obj_id        OUT NUMBER); | 
    
    
      DECLARE 
       ostat PLS_INTEGER; 
       oscma VARCHAR2(30); 
       oname VARCHAR2(30); 
       oid   NUMBER; 
      BEGIN 
        xs_admin_int.get_entity_id('TESTPROC', 2, ostat, oscma, oname, oid); 
        dbms_output.put_line(ostat); 
        dbms_output.put_line(oscma); 
        dbms_output.put_line(oname); 
        dbms_output.put_line(oid); 
      END; 
      / 
      SYS 
      TESTPROC 
       
      PL/SQL procedure successfully completed. | 
    
    
      |   | 
    
    
      | INVALIDATE_ENTITY | 
    
    
      | Invalidate a Triton object | 
      xs_admin_int.invalidate_entity( 
      obj_id       IN NUMBER, 
      obj_type     IN PLS_INTEGER, 
      cleanup_priv IN BOOLEAN := FALSE); | 
    
    
      | TBD | 
    
    
      |   | 
    
    
      | VALIDATE_ENTITY_NAME | 
    
    
      | Parse and validate a RAS qualified name in the form schema_name.entity_name | 
      xs_admin_int.validate_entity_name( 
      obj_name   IN  VARCHAR2,  
      obj_type   IN  PLS_INTEGER, 
      obj_schema OUT VARCHAR2, 
      obj_ename  OUT VARCHAR2); | 
    
    
      DECLARE 
       sname VARCHAR2(30); 
       ename VARCHAR2(30); 
      BEGIN 
        xs_admin_int.validate_entity_name('TESTPROC', 2, sname, ename); 
        dbms_output.put_line(sname); 
        dbms_output.put_line(ename); 
      END; 
      / 
      SYS 
      TESTPROC 
       
      PL/SQL procedure successfully completed. |