MINI MINI MANI MO

Path : /opt/oracle/product/18c/dbhomeXE/rdbms/admin/
File Upload :
Current File : //opt/oracle/product/18c/dbhomeXE/rdbms/admin/xsacl.sql

Rem
Rem $Header: rdbms/admin/xsacl.sql /main/10 2015/08/19 11:54:51 raeburns Exp $
Rem
Rem xsacl.sql
Rem
Rem Copyright (c) 2009, 2015, Oracle and/or its affiliates. 
Rem All rights reserved.
Rem
Rem    NAME
Rem      xsacl.sql - XS ACL adminstrative interface
Rem
Rem    DESCRIPTION
Rem      XS_ACL package for ACL adminstrative interface
Rem
Rem    NOTES
Rem      <other useful comments, qualifications, etc.>
Rem
Rem
Rem BEGIN SQL_FILE_METADATA
Rem SQL_SOURCE_FILE: rdbms/admin/xsacl.sql
Rem SQL_SHIPPED_FILE: rdbms/admin/xsacl.sql
Rem SQL_PHASE: XSACL
Rem SQL_STARTUP_MODE: NORMAL
Rem SQL_IGNORABLE_ERRORS: NONE
Rem SQL_CALLING_FILE: rdbms/admin/catpdbms.sql
Rem END SQL_FILE_METADATA
Rem
Rem    MODIFIED   (MM/DD/YY)
Rem    raeburns    06/09/15 - Bug 21322727: Use FORCE for types with only type dependents
Rem    yiru        03/25/15 - Add API for Removing an ACL parameter value 
Rem                           associated with a policy
Rem    surman      12/29/13 - 13922626: Update SQL metadata
Rem    surman      03/27/12 - 13615447: Add SQL patching tags
Rem    yiru        08/04/11 - Admin APIs revision
Rem    yiru        06/29/11 - Admin Sec Prj enhancement: Add Invoker rights 
Rem                           package wrapper
Rem    yanlili     05/16/11 - Project 36762: Add log based replication and 
Rem                           rolling upgrade support at package level
Rem    yiru        05/13/11 - Admin Sec Prj2: Change to definer rights package
Rem    snadhika    04/15/10 - Triton session enhancement project
Rem    yiru        01/22/10 - cleanup
Rem    weihwang    10/15/09 - principal_format changed to principal_type
Rem    yiru        09/24/09 - Add exception
Rem    snadhika    07/08/09 - Created
Rem

@@?/rdbms/admin/sqlsessstart.sql

-- Type definition for ACE
CREATE OR REPLACE TYPE XS$ACE_TYPE FORCE AS OBJECT (

-- Member Variables
  privilege_list      XS$NAME_LIST,
  is_grant_ace        NUMBER,
  is_invert_principal NUMBER,
  principal_name      VARCHAR2(130),
  principal_type      NUMBER,
  start_date          TIMESTAMP WITH TIME ZONE,
  end_date            TIMESTAMP WITH TIME ZONE,

  CONSTRUCTOR FUNCTION XS$ACE_TYPE (
    privilege_list   IN XS$NAME_LIST,
    granted          IN BOOLEAN := TRUE,
    inverted         IN BOOLEAN := FALSE,
    principal_name   IN VARCHAR2,
    principal_type   IN PLS_INTEGER := 1,
    start_date       IN TIMESTAMP WITH TIME ZONE := NULL,
    end_date         IN TIMESTAMP WITH TIME ZONE := NULL)
  RETURN SELF AS RESULT,

-- Set the privileges
  MEMBER PROCEDURE set_privileges(privilege_list IN XS$NAME_LIST),

-- Return the privileges
  MEMBER FUNCTION get_privileges RETURN XS$NAME_LIST,

-- Grant or deny
  MEMBER PROCEDURE set_grant(granted IN BOOLEAN),

-- Return true if it is granted.
  MEMBER FUNCTION is_granted RETURN BOOLEAN,

-- Invert or not
  MEMBER PROCEDURE set_inverted_principal(inverted IN BOOLEAN),

-- Return true if the principal is inverted.
  MEMBER FUNCTION is_inverted_principal RETURN BOOLEAN,

-- Set the principal
  MEMBER PROCEDURE set_principal(principal_name IN VARCHAR2),

-- Return the principal
  MEMBER FUNCTION get_principal RETURN VARCHAR2,

-- Set the principal format
  MEMBER PROCEDURE set_principal_type (principal_type IN PLS_INTEGER),

-- Return the principal format
  MEMBER FUNCTION get_principal_type RETURN PLS_INTEGER,

-- Set the start date
  MEMBER PROCEDURE set_start_date(start_date IN TIMESTAMP WITH TIME ZONE),

-- Return the start date
  MEMBER FUNCTION get_start_date RETURN TIMESTAMP WITH TIME ZONE,

-- Set the end date
  MEMBER PROCEDURE set_end_date(end_date IN TIMESTAMP WITH TIME ZONE),

-- Return the end date
  MEMBER FUNCTION get_end_date RETURN TIMESTAMP WITH TIME ZONE

);
/

show errors;
CREATE OR REPLACE TYPE XS$ACE_LIST AS VARRAY(1000) OF XS$ACE_TYPE;
/

CREATE OR REPLACE PACKAGE XS_ACL AUTHID CURRENT_USER AS

-- The following constants define the parent ACL type.
  EXTENDED              CONSTANT PLS_INTEGER := 1;
  CONSTRAINED           CONSTANT PLS_INTEGER := 2;  

-- The following constants define the principal's type.
  PTYPE_XS              CONSTANT PLS_INTEGER := 1;
  PTYPE_DB              CONSTANT PLS_INTEGER := 2;
  PTYPE_DN              CONSTANT PLS_INTEGER := 3;
  PTYPE_EXTERNAL        CONSTANT PLS_INTEGER := 4;

-- The following constants define the parameter value type.
  TYPE_NUMBER           CONSTANT PLS_INTEGER := 1;	
  TYPE_VARCHAR          CONSTANT PLS_INTEGER := 2;

-- Enable log based replication for this package
  PRAGMA SUPPLEMENTAL_LOG_DATA(default, AUTO);

-- Create ACL API
  PROCEDURE create_acl (
    name            IN VARCHAR2,
    ace_list        IN XS$ACE_LIST,
    sec_class       IN VARCHAR2 := NULL,
    parent          IN VARCHAR2:=NULL,
    inherit_mode    IN PLS_INTEGER:=NULL,
    description     IN VARCHAR2 := NULL);

-- Append one ACE to the ACL
  PROCEDURE append_aces (
    acl  IN VARCHAR2,
    ace  IN XS$ACE_TYPE);

-- Append ACEs to the ACL
  PROCEDURE append_aces (
    acl      IN VARCHAR2,
    ace_list IN XS$ACE_LIST);

-- Remove all ACEs from the ACL
  PROCEDURE remove_aces (
    acl      IN VARCHAR2);

-- Set the secuirty class
  PROCEDURE set_security_class (
    acl       IN VARCHAR2,
    sec_class IN VARCHAR2);

-- Set the parent acl
  PROCEDURE set_parent_acl(
    acl          IN VARCHAR2,
    parent       IN VARCHAR2,
    inherit_mode IN PLS_INTEGER);

--Add a parameter value : NUMBER
  PROCEDURE add_acl_parameter (
    acl       IN VARCHAR2,
    policy    IN VARCHAR2,
    parameter IN VARCHAR2,
    value     IN NUMBER);

--Add a parameter value : VARCHAR2
  PROCEDURE add_acl_parameter (
    acl       IN VARCHAR2,
    policy    IN VARCHAR2,
    parameter IN VARCHAR2,
    value     IN VARCHAR2);

--Remove all parameters
  PROCEDURE remove_acl_parameters (
    acl       IN VARCHAR2);

-- Remove a parameter
  PROCEDURE remove_acl_parameters (
    acl       IN VARCHAR2,
    parameter IN VARCHAR2);

-- Remove a parameter associate with a policy
  PROCEDURE remove_acl_parameters (
    acl       IN VARCHAR2,
    policy    IN VARCHAR2,
    parameter IN VARCHAR2);

-- Set description of ACL
  PROCEDURE set_description (
    acl         IN VARCHAR2,
    description IN VARCHAR2);

-- Delete the ACL
  PROCEDURE delete_acl (
    acl           IN VARCHAR2,
    delete_option IN PLS_INTEGER:=XS_ADMIN_UTIL.DEFAULT_OPTION);

END XS_ACL;
/

show errors;

@?/rdbms/admin/sqlsessend.sql

OHA YOOOO