XS_ADMIN_UTILパッケージ

XS_ADMIN_UTILパッケージには、他のパッケージで使用するヘルパー・サブプログラムが含まれます。

セキュリティ・モデル

XS_ADMIN_UTILパッケージは、SYSスキーマに作成されます。コール元には、このパッケージに対する実行者の権限があります。ユーザーまたはロールのReal Application Securityシステム権限を付与または取り消すには、SYS権限が必要です。

定数

次の定数は削除オプションを定義します。

DEFAULT_OPTION               CONSTANT PLS_INTEGER := 1;
CASCADE_OPTION               CONSTANT PLS_INTEGER := 2;
ALLOW_INCONSISTENCIES_OPTION CONSTANT PLS_INTEGER := 3;

次の定数はプリンシパルのタイプを定義します。

PTYPE_XS              CONSTANT PLS_INTEGER := 1;
PTYPE_DB              CONSTANT PLS_INTEGER := 2;
PTYPE_DN              CONSTANT PLS_INTEGER := 3;
PTYPE_EXTERNAL        CONSTANT PLS_INTEGER := 4;

オブジェクト・タイプ、コンストラクタ・ファンクション、シノニムおよび付与

このパッケージには、次のオブジェクト・タイプ、コンストラクタ・ファンクション、シノニムおよびGRANT文が定義されています。

CREATE OR REPLACE TYPE XS$LIST IS VARRAY(1000) OF VARCHAR2(4000);
CREATE OR REPLACE TYPE XS$NAME_LIST IS VARRAY(1000) OF VARCHAR2(261);

XS_ADMIN_UTILサブプログラムの要約

表11-4 XS_ADMIN_UTILサブプログラムの要約

サブプログラム 簡単な説明

GRANT_SYSTEM_PRIVILEGEプロシージャ

ユーザーまたはロールにReal Application Securityシステム権限を付与します。

REVOKE_SYSTEM_PRIVILEGEプロシージャ

ユーザーまたはロールからReal Application Securityシステム権限を取り消します。

この項では次のXS_ADMIN_UTILサブプログラムについて説明します。

GRANT_SYSTEM_PRIVILEGEプロシージャ

GRANT_SYSTEM_PRIVILEGEプロシージャを使用して、ユーザーまたはロールにReal Application Securityシステム権限を付与します。SYSまたはGRANT ANY PRIVILEGE権限を持つユーザーのみがこの操作を実行できます。

監査アクションAUDIT_GRANT_PRIVILEGEによって、システム権限またはスキーマ権限を付与するためのすべてのGRANT_SYSTEM_PRIVILEGEコールが監査されます。

構文

XS_ADMIN_UTIL.GRANT_SYSTEM_PRIVILEGE (
  priv_name      IN VARCHAR2,
  user_name      IN VARCHAR2,
  user_type      IN  PLS_INTEGER := XS_ADMIN_UTIL.PTYPE_DB,
  schema         IN VARCHAR2);

パラメータ

パラメータ 説明

priv_name

付与するReal Application Securityシステム権限またはスキーマ権限の名前を指定します。

user_name

Real Application Securityのシステム権限またはスキーマ権限を付与するユーザーまたはロールの名前を指定します。

user_type

ユーザーのタイプ。デフォルトではデータベース・ユーザーです。

schema

権限が付与されるスキーマ。その権限がシステム権限である場合、値はNULLです。

次の例では、データベース・ユーザーdbuser1を作成して、このデータベース・ユーザーにReal Application Security権限ADMINISTER_SESSIONを付与し、user_typeとしてデフォルトのXS_ADMIN_UTIL.PTYPE_DBを指定しますが、これはデフォルト値であるため指定は不要です。

SQL> CREATE USER dbuser1 identified by password;
SQL> EXEC SYS.XS_ADMIN_UTIL.GRANT_SYSTEM_PRIVILEGE('ADMINISTER_SESSION', 'dbuser1', XS_ADMIN_UTIL.PTYPE_DB, 'HR1');

次の例では、アプリケーション・ユーザーuser1を作成し、このアプリケーション・ユーザーにReal Application Security権限ADMINISTER_SESSIONを付与し、user_typeXS_ADMIN_UTIL.PTYPE_XSとして指定し、スキーマをHR1として指定します。

SQL> EXEC SYS.XS_PRINCIPAL.CREATE_USER('user1','HR1');
SQL> EXEC SYS.XS_PRINCIPAL.SET_PASSWORD('user1', 'password');
SQL> EXEC SYS.XS_ADMIN_UTIL.GRANT_SYSTEM_PRIVILEGE('ADMINISTER_SESSION', 'user1', XS_ADMIN_UTIL.PTYPE_XS, 'HR1');

REVOKE_SYSTEM_PRIVILEGEプロシージャ

REVOKE_SYSTEM_PRIVILEGEを使用して、ユーザーまたはロールからReal Application Securityのシステム権限またはスキーマ権限を取り消します。SYS権限またはGRANT ANY PRIVILEGE権限を持つユーザーのみがこの操作を実行できます。

監査アクションAUDIT_REVOKE_PRIVILEGEによって、システム権限またはスキーマ権限を取り消すためのすべてのREVOKE_SYSTEM_PRIVILEGEコールが監査されます。

構文

XS_ADMIN_UTIL.REVOKE_SYSTEM_PRIVILEGE (
  priv_name      IN VARCHAR2,
  user_name      IN VARCHAR2,
  user_type      IN PLS_INTEGER := XS_ADMIN_UTIL.PTYPE_DB,
  schema         IN VARCHAR2);

パラメータ

パラメータ 説明

priv_name

取り消すReal Application Securityシステム権限またはスキーマ権限の名前を指定します。

user_name

Real Application Securityのシステム権限またはスキーマ権限を取り消すユーザーまたはロールの名前を指定します。

user_type

ユーザーのタイプ。デフォルトではデータベース・ユーザーです。

schema

権限が取り消されるスキーマ。その権限がシステム権限である場合、値はNULLです。

次の例では、データベース・ユーザーdbuser1を作成して、このデータベース・ユーザーからReal Application Security権限ADMINISTER_SESSIONを取り消し、user_typeとしてデフォルトのXS_ADMIN_UTIL.PTYPE_DBを指定しますが、これはデフォルト値であるため指定は不要です。

CREATE USER dbuser1 identified by password;
SYS.XS_ADMIN_UTIL.REVOKE_SYSTEM_PRIVILEGE('ADMINISTER_SESSION','dbuser1', XS_ADMIN_UTIL.PTYPE_DB, 'HR1');

次の例では、アプリケーション・ユーザーuser1を作成して、このアプリケーション・ユーザーからReal Application Security権限ADMINISTER_SESSIONを取り消し、user_typeとしてデフォルトのXS_ADMIN_UTIL.PTYPE_XSを指定します。

SQL> EXEC SYS.XS_PRINCIPAL.CREATE_USER('user1','HR1');
SQL> EXEC SYS.XS_PRINCIPAL.SET_PASSWORD('user1', 'password');
SQL> EXEC SYS.XS_ADMIN_UTIL.REVOKE_SYSTEM_PRIVILEGE('ADMINISTER_SESSION','user1', XS_ADMIN_UTIL.PTYPE_XS, 'HR1');