E Oracle Label SecurityのPL/SQLパッケージ
Oracle Label Securityには、PL/SQLパッケージのセットが用意されています。
- SA_AUDIT_ADMIN Oracle Label Security監査PL/SQLパッケージ
非統合監査環境では、SA_AUDIT_ADMIN
PL/SQLパッケージは、Oracle Label Securityに固有の監査を構成します。 - SA_COMPONENTSラベル・コンポーネントPL/SQLパッケージ
SA_COMPONENTS
PL/SQLパッケージは、Oracle Label Securityラベルのコンポーネント定義を管理します。 - SA_LABEL_ADMINラベル管理PL/SQLパッケージ
SA_LABEL_ADMIN
PL/SQLパッケージは、ポリシーで使用されるラベルを管理する管理インタフェースを提供します。 - SA_POLICY_ADMINポリシー管理PL/SQLパッケージ
SA_POLICY_ADMIN
PL/SQLパッケージは、Oracle Label Securityポリシー全体を管理します。 - SA_SESSIONセッション管理PL/SQLパッケージ
SA_SESSION
PL/SQLパッケージは、ユーザー認可に関するセッション動作を管理します。 - SA_SYSDBAポリシー管理PL/SQLパッケージ
SA_SYSDBA
PL/SQLパッケージは、Oracle Label Securityポリシーを管理します。 - SA_USER_ADMIN PL/SQLパッケージ
SA_USER_ADMIN
PL/SQLパッケージは、ユーザー・ラベルをラベル・コンポーネント別に管理します。 - SA_UTL PL/SQLユーティリティのファンクションおよびプロシージャ
SA_UTL
PL/SQLパッケージには、PL/SQLプログラムで使用されるユーティリティ・ファンクションおよびプロシージャが含まれています。
関連項目:
追加のスタンドアロンOracle Label Securityファンクションは、「支配ファンクションの使用」を参照してください
親トピック: 「付録」
E.1 SA_AUDIT_ADMIN Oracle Label Security監査PL/SQLパッケージ
非統合監査環境では、SA_AUDIT_ADMIN
PL/SQLパッケージは、Oracle Label Securityに固有の監査を構成します。
- SA_AUDIT_ADMIN PL/SQLパッケージについて
SA_AUDIT_ADMIN
PL/SQLパッケージは、ラベルおよびポリシーの監査を構成し、監査関連ビューを作成します。 - SA_AUDIT_ADMIN.AUDIT
SA_AUDIT_ADMIN.AUDIT
プロシージャは、ポリシー固有の監査を有効にします。 - SA_AUDIT_ADMIN.AUDIT_LABEL
SA_AUDIT_ADMIN.AUDIT_LABEL
プロシージャは、監査中にポリシー・ラベルを記録します。 - SA_AUDIT_ADMIN.AUDIT_LABEL_ENABLED
SA_AUDIT_ADMIN.AUDIT_LABEL_ENABLED
ファンクションは、ラベルがポリシーの監査レコードに記録されているかどうかを示します。 - SA_AUDIT_ADMIN.CREATE_VIEW
SA_AUDIT_ADMIN.CREATE_VIEW
プロシージャは、DBA_
policyname
_AUDIT_TRAIL
という名前の監査証跡ビューを作成します。 - SA_AUDIT_ADMIN.DROP_VIEW
SA_AUDIT_ADMIN.DROP_VIEW
プロシージャは、指定したポリシーの監査証跡ビューを削除します。 - SA_AUDIT_ADMIN.NOAUDIT
SA_AUDIT_ADMIN.NOAUDIT
プロシージャは、Oracle Label Securityのポリシー固有の監査を無効にします。 - SA_AUDIT_ADMIN.NOAUDIT_LABEL
SA_AUDIT_ADMIN.NOAUDIT_LABEL
プロシージャは、ポリシー・ラベルの監査を無効にします。
E.1.1 SA_AUDIT_ADMIN PL/SQLパッケージについて
SA_AUDIT_ADMIN
PL/SQLパッケージは、ラベルおよびポリシーの監査を構成し、監査関連ビューを作成します。
統合監査を使用する場合、Oracle Label Securityの統合監査ポリシーの作成については、『Oracle Databaseセキュリティ・ガイド』を参照してください。統合監査環境では、この項で説明するプロシージャを設定した結果、新しい監査レコードは生成されません。
システム単位の監査を有効化した後に、SA_AUDIT_ADMIN
PL/SQLパッケージ・プロシージャを使用して、Oracle Label Securityの監査を有効化または無効化できます。このパッケージを使用するには、SA_AUDIT_ADMIN
パッケージに対するpolicy
_DBA
ロール(たとえば、hr_ols_pol
ポリシーに対するロールとしてHR_OLS_POL_DBA
)、およびEXECUTE
権限が付与されている必要があります。
関連項目:
policy_
DBA
ロールの詳細は、「Oracle Label Security管理者の業務」を参照してください
E.1.2 SA_AUDIT_ADMIN.AUDIT
SA_AUDIT_ADMIN.AUDIT
プロシージャは、ポリシー固有の監査を有効化します。
各ポリシーの監査は、他から独立しています。監査レコードは、Oracle Label Securityの管理アクションを取得し、ログオン、DML実行および信頼できるストアド・プロシージャ呼出しの際に使用されたOracle Label Securityの権限の使用を取得します。
構文
SA_AUDIT_ADMIN.AUDIT ( policy_name IN VARCHAR2, users IN VARCHAR2 DEFAULT NULL, audit_option IN VARCHAR2 DEFAULT NULL, audit_type IN VARCHAR2 DEFAULT NULL, success IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-1 SA_AUDIT_ADMIN.AUDITのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
オプション。監査するユーザー名のカンマ区切りのリストは、次のとおりです。
Oracle Label Securityのポリシーを変更する権限を持つユーザーを検索するには、 |
|
オプション。監査するオプションのカンマ区切りのリストです。オプションは次のとおりです。
指定しない場合、すべてのデフォルト・オプション(つまり権限を含まないオプション)が監査されます。すべての権限の監査オプションを設定する |
|
オプション。 |
|
オプション。アクションが成功した場合は |
例
次の例では、ユーザーpsmith
およびrlayton
による失敗したAPPLY
およびREMOVE
の試行を監査します。
BEGIN SA_AUDIT_ADMIN.AUDIT( policy_name => 'hr_ols_pol', users => 'jjones, rlayton', audit_option => 'apply, remove', audit_type => 'by access', success => 'not successful'); END; /
監査オプションを指定しない場合は、権限関連のオプションを除き、すべてのオプションが監査されます。権限の監査を明示的に指定する必要があります。たとえば、次の文を入力した場合、hr_ols_pol
ポリシーにデフォルト・オプションが設定されます。
EXEC SA_AUDIT_ADMIN.AUDIT ('hr_ols_pol');
監査を有効化すると、アクションの成否に関係なく、すべてのユーザーについてセッション別に実行されます。
監査パラメータおよびオプションを設定すると、新しい値は現行セッションではなく後続のセッションにのみ適用されます。
あるSA_AUDIT_ADMIN.AUDIT
コール(ユーザー指定なし)で全ユーザーについてAPPLY
操作の監査を有効化し、2番目のコールで特定のユーザーについてREMOVE
操作の監査を有効化する場合を考えます。たとえば:
EXEC SA_AUDIT_ADMIN.AUDIT ('hr_ols_pol', null, 'apply'); EXEC SA_AUDIT_ADMIN.AUDIT ('hr_ols_pol', 'scott', 'remove');
この場合、SCOTT
はAPPLY
操作とREMOVE
操作の両方について監査対象となります。
E.1.3 SA_AUDIT_ADMIN.AUDIT_LABEL
SA_AUDIT_ADMIN.AUDIT_LABEL
プロシージャは、監査中にポリシー・ラベルを記録します。
このプロシージャは、ユーザーのセッション・ラベルを監査表に格納します。
構文
SA_AUDIT_ADMIN.AUDIT_LABEL ( policy_name IN VARCHAR2);
パラメータ
表E-2 SA_AUDIT_ADMIN.AUDIT_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、Oracle Label Securityのラベルがhr_ols_pol
ポリシーに対して監査されているかどうかを示す出力を書き込みます。
BEGIN SA_AUDIT_ADMIN.AUDIT_LABEL( policy_name => 'hr_ols_pol'); END; /
E.1.4 SA_AUDIT_ADMIN.AUDIT_LABEL_ENABLED
SA_AUDIT_ADMIN.AUDIT_LABEL_ENABLED
ファンクションは、ラベルがポリシーの監査レコードに記録されているかどうかを示します。
構文
SA_AUDIT_ADMIN.AUDIT_LABEL_ENABLED ( policy_name IN VARCHAR2) RETURN BOOLEAN;
パラメータ
表E-3 SA_AUDIT_ADMIN.AUDIT_LABEL_ENABLEDのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、Oracle Label Securityのラベルがhr_ols_pol
ポリシーに対して監査されているかどうかを示す出力を書き込みます。
SET SERVEROUTPUT ON BEGIN IF SA_AUDIT_ADMIN.AUDIT_LABEL_ENABLED('hr_ols_pol') THEN DBMS_OUTPUT.PUT_LINE('OLS hr_ols_pol labels are being audited.'); ELSE DBMS_OUTPUT.PUT_LINE('OLS hr_ols_pol labels not being audited.'); END IF; END; /
E.1.5 SA_AUDIT_ADMIN.CREATE_VIEW
SA_AUDIT_ADMIN.CREATE_VIEW
プロシージャは、DBA_
policyname
_AUDIT_TRAIL
という名前の監査証跡ビューを作成します。
このビューには、指定したポリシーのラベル列と、このポリシーにかわって書き込まれた監査証跡内のすべてのエントリが含まれています。ビュー名がデータベースの制限である30文字を超えた場合、ユーザーはオプションで短いビュー名を指定できます。
Oracle Label Securityにより、Oracle Label Securityポリシー・データベース管理者に、DBA_policyname_AUDIT_TRAIL
ビューに対するSELECT
権限が付与されます。
関連項目:
DBA_
policyname
_AUDIT_TRAIL
ビューに含まれている列を検索するには、「Oracle Label Securityのユーザー作成の監査ビュー」を参照してください
構文
SA_AUDIT_ADMIN.CREATE_VIEW ( policy_name IN VARCHAR2, view_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-4 SA_AUDIT_ADMIN.CREATE_VIEWのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
オプション。ビューの名前を指定します。この設定を省略した場合、名前は |
例
次の例では、hr_ols_pol
ポリシーのhr_ols_pol_view
と呼ばれるビューを作成します。
BEGIN SA_AUDIT_ADMIN.CREATE_VIEW( policy_name => 'hr_ols_pol', view_name => 'hr_ols_pol_view'); END; /
E.1.6 SA_AUDIT_ADMIN.DROP_VIEW
SA_AUDIT_ADMIN.DROP_VIEW
プロシージャは、指定したポリシーの監査証跡ビューを削除します。
構文
SA_AUDIT_ADMIN.DROP_VIEW ( policy_name IN VARCHAR2, view_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-5 SA_AUDIT_ADMIN.DROP_VIEWのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
既存のビューの名前を指定します。このビューを検索するには、まず、 |
例
次の例では、hr_ols_pol
ポリシーからhr_ols_pol_view
と呼ばれるビューを削除します。
BEGIN SA_AUDIT_ADMIN.DROP_VIEW( policy_name => 'hr_ols_pol', view_name => 'hr_ols_pol_view'); END; /
E.1.7 SA_AUDIT_ADMIN.NOAUDIT
SA_AUDIT_ADMIN.NOAUDIT
プロシージャは、Oracle Label Securityのポリシー固有の監査を無効にします。
構文
SA_AUDIT_ADMIN.NOAUDIT ( policy_name IN VARCHAR2, users IN VARCHAR2 DEFAULT NULL, audit_option IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-6 SA_AUDIT_ADMIN.NO_AUDITのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
オプション。監査されたユーザーのカンマ区切りのリストです。指定しない場合は、すべてのユーザーの監査が無効化されます。 Oracle Label Securityのポリシーを変更する権限を持つユーザーを検索するには、 |
|
オプション。無効化するオプションのカンマ区切りのリストです。オプションは次のとおりです。
指定しない場合、すべてのデフォルト・オプションが無効化されます。権限は明示的に無効化する必要があります。 |
例
次の例では、ユーザーpsmith
およびrlayton
による失敗したAPPLY
およびREMOVE
の試行の監査を無効化します。
BEGIN SA_AUDIT_ADMIN.NOAUDIT( policy_name => 'hr_ols_pol', users => 'jjones', audit_option => 'apply, remove'); END; /
有効化されているすべてのオプション、またはそのサブセットのみについて監査を無効化できます。指定したオプションに対するすべての監査が、指定した全ユーザー(または、usersパラメータがNULL
の場合は全ユーザー)について無効化されます。たとえば、次の文では、ユーザーJohn、MaryおよびScottについて、APPLY
およびREMOVE
操作の監査が無効化されます。
EXEC SA_AUDIT_ADMIN.NOAUDIT ('HR', 'JOHN, MARY, SCOTT', 'APPLY, REMOVE');
あるAUDIT
コールで特定のユーザーの監査を有効化し、2番目のコール(ユーザー指定なし)で全ユーザーの監査を有効化する場合を考えます。たとえば:
EXEC SA_AUDIT_ADMIN.AUDIT ('HR', 'SCOTT'); EXEC SA_AUDIT_ADMIN.AUDIT ('HR');
この場合、(次の文のように)ユーザーを指定せずに後続のNOAUDIT
へのコールを行うと、最初のコールで明示的にSCOTT
に対して設定された監査は無効になりません。したがって、SCOTT
の監査は引き続き実行されます。
EXEC SA_AUDIT_ADMIN.NOAUDIT ('HR');
このため、すべてのユーザーに対してSA_AUDIT_ADMIN.NOAUDIT
を設定しても、Oracle Label Securityでは監査が明示的に設定されているユーザーは引き続き監査されます。
権限付き操作の監査は明示的に指定する必要があります。オプションを指定せずにSA_AUDIT_ADMIN.NOAUDIT
を実行しても、Oracle Label Securityでは権限付き操作が引き続き監査されます。たとえば、監査を有効にして次のように入力すると、
EXEC SA_AUDIT_ADMIN.NOAUDIT ('HR');
権限付き操作(WRITEDOWN
など)については引き続き監査が実行されます。
設定したSA_AUDIT_ADMIN.NOAUDIT
パラメータおよびオプションは、現行セッションではなく後続のセッションにのみ適用されます。
設定済の監査オプションの有効化を試みたり、設定されていない監査オプションの無効化を試みると、Oracle Label Securityでは文は処理され、エラーは表示されません。 無効なオプションの指定を試みると、エラー・メッセージが表示されます。ALL_SA_AUDIT_OPTIONS
データ・ディクショナリ・ビューを問い合せることで、監査オプションのステータスを検索できます。
E.1.8 SA_AUDIT_ADMIN.NOAUDIT_LABEL
SA_AUDIT_ADMIN.NOAUDIT_LABEL
プロシージャは、ポリシー・ラベルの監査を無効化します。
構文
SA_AUDIT_ADMIN.NOAUDIT_LABEL ( policy_name IN VARCHAR2);
パラメータ
表E-7 SA_AUDIT_ADMIN.NO_AUDIT_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーの監査を無効化します。
BEGIN SA_AUDIT_ADMIN.NOAUDIT_LABEL( policy_name => 'hr_ols_pol'); END; /
E.2 SA_COMPONENTSラベル・コンポーネントPL/SQLパッケージ
SA_COMPONENTS
PL/SQLパッケージは、Oracle Label Securityラベルのコンポーネント定義を管理します。
- SA_COMPONENTS PL/SQLパッケージについて
SA_COMPONENTS
PL/SQLパッケージは、区分、グループ、親グループおよびレベルを構成します。 - SA_COMPONENTS.ALTER_COMPARTMENT
SA_COMPONENTS.ALTER_COMPARTMENT
プロシージャは、区分に関連付けられている短縮名および詳細名を変更します。 - SA_COMPONENTS.ALTER_GROUP
SA_COMPONENTS.ALTER_GROUP
プロシージャは、グループに関連付けられている短縮名および詳細名を変更します。 - SA_COMPONENTS.ALTER_GROUP_PARENT
SA_COMPONENTS.ALTER_GROUP_PARENT
プロシージャは、特定のグループに関連付けられている親グループを変更します。 - SA_COMPONENTS.ALTER_LEVEL
SA_COMPONENTS.ALTER_LEVEL
プロシージャは、レベルに関連付けられている短縮名および詳細名を変更します。 - SA_COMPONENTS.CREATE_COMPARTMENT
SA_COMPONENTS.CREATE_COMPARTMENT
プロシージャは、区分を作成し、その短縮名と詳細名を指定します。 - SA_COMPONENTS.CREATE_GROUP
SA_COMPONENTS.CREATE_GROUP
プロシージャは、グループを作成し、その短縮名と詳細名、およびオプションで親グループを指定します。 - SA_COMPONENTS.CREATE_LEVEL
SA_COMPONENTS.CREATE_LEVEL
プロシージャは、レベルを作成し、その短縮名と詳細名を指定します。 - SA_COMPONENTS.DROP_COMPARTMENT
SA_COMPONENTS.DROP_COMPARTMENT
プロシージャは、区分を削除します。 - SA_COMPONENTS.DROP_GROUP
SA_COMPONENTS.DROP_GROUP
プロシージャは、グループを削除します。 - SA_COMPONENTS.DROP_LEVEL
SA_COMPONENTS.DROP_LEVEL
プロシージャは、レベルを削除します。
E.2.1 SA_COMPONENTS PL/SQLパッケージについて
SA_COMPONENTS
PL/SQLパッケージは、区分、グループ、親グループおよびレベルを構成します。
このパッケージを使用するには、SA_COMPONENTS
パッケージでのpolicy_
DBA
ロール(たとえば、hr_ols_pol
ポリシーに対するロールとしてHR_OLS_POL_DBA
)、およびEXECUTE
権限が付与されている必要があります。
E.2.2 SA_COMPONENTS.ALTER_COMPARTMENT
SA_COMPONENTS.ALTER_COMPARTMENT
プロシージャは、区分に関連付けられている短縮名および詳細名を変更します。
comp_num
パラメータは、一度設定すると変更できません。既存のラベルでcomp_num
パラメータが使用されている場合、その短縮名は変更できませんが、その詳細名は変更できます。
構文
SA_COMPONENTS.ALTER_COMPARTMENT ( policy_name IN VARCHAR2, comp_num IN NUMBER(38), new_short_name IN VARCHAR2, new_long_name IN VARCHAR2); SA_COMPONENTS.ALTER_COMPARTMENT ( policy_name IN VARCHAR2, short_name IN VARCHAR2 DEFAULT NULL, new_long_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-8 SA_COMPONENTS.ALTER_COMPARTMENTのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
変更する区分の番号を指定します。既存の区分番号のリストを検索するには、 |
|
変更する区分の短縮名(30文字以内)を指定します。現行の区分を検索するには、 |
|
区分の新規の短縮名(30文字以内)を指定します。 |
|
区分の新規の詳細名(80文字以内)を指定します。 |
例
次の例では、hr_ols_pol
ポリシーを変更します。
BEGIN SA_COMPONENTS.ALTER_COMPARTMENT ( policy_name => 'hr_ols_pol', comp_num => '48', new_short_name => 'FIN', new_long_name => 'FINANCE'); END; /
E.2.3 SA_COMPONENTS.ALTER_GROUP
SA_COMPONENTS.ALTER_GROUP
プロシージャは、グループに関連付けられている短縮名および詳細名を変更します。
group_num
パラメータは、一度設定すると変更できません。既存のラベルでグループが使用されている場合、その短縮名は変更できませんが、その詳細名は変更できます。
構文
SA_COMPONENTS.ALTER_GROUP ( policy_name IN VARCHAR2, group_num IN NUMBER(38), new_short_name IN VARCHAR2 DEFAULT NULL, new_long_name IN VARCHAR2 DEFAULT NULL); SA_COMPONENTS.ALTER_GROUP ( policy_name IN VARCHAR2, short_name IN VARCHAR2, new_long_name IN VARCHAR2);
パラメータ
表E-9 SA_COMPONENTS.ALTER_GROUPのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
変更する既存のグループ番号を指定します。既存のグループ番号を検索するには、 |
|
変更する既存のグループの短縮名を指定します。既存の短縮名を検索するには、 |
|
グループを表す新規の短縮名(30文字以内)を指定します。 |
|
グループを表す新規の詳細名(80文字以内)を指定します。 |
例
次の例では、hr_ols_pol
ポリシーのlong_name
設定を変更します。
BEGIN SA_COMPONENTS.ALTER_GROUP ( policy_name => 'hr_ols_pol', short_name => 'ER_FIN', new_long_name => 'ER_FINANCES'); END; /
E.2.4 SA_COMPONENTS.ALTER_GROUP_PARENT
SA_COMPONENTS.ALTER_GROUP_PARENT
プロシージャは、特定のグループに関連付けられている親グループを変更します。
構文
SA_COMPONENTS.ALTER_GROUP_PARENT ( policy_name IN VARCHAR2, group_num IN NUMBER(38), new_parent_num IN NUMBER(38)); SA_COMPONENTS.ALTER_GROUP_PARENT ( policy_name IN VARCHAR2, group_num IN NUMBER(38), new_parent_name IN VARCHAR2); SA_COMPONENTS.ALTER_GROUP_PARENT ( policy_name IN VARCHAR2, short_name IN VARCHAR2, new_parent_name IN VARCHAR2);
パラメータ
表E-10 SA_COMPONENTS.ALTER_GROUP_PARENTのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
変更する既存のグループ番号を指定します。既存のグループ番号を検索するには、 |
|
変更する既存のグループの短縮名を指定します。既存の短縮名を検索するには、 |
|
既存グループの番号を親グループとして指定します。既存の親グループを検索するには、 |
|
既存グループの短縮名を親グループとして指定します。既存のグループを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーの親の名前を変更します。
BEGIN SA_COMPONENTS.ALTER_GROUP_PARENT ( policy_name => 'hr_ols_pol', group_num => 2100, new_parent_name => 'ER'); END; /
E.2.5 SA_COMPONENTS.ALTER_LEVEL
SA_COMPONENTS.ALTER_LEVEL
プロシージャは、レベルに関連付けられている短縮名および詳細名を変更します。
レベル番号は、一度定義すると変更できません。既存のラベルでレベルが使用されている場合、その短縮名は変更できませんが、その詳細名は変更できます。
構文
SA_COMPONENTS.ALTER_LEVEL ( policy_name IN VARCHAR2, level_num IN NUMBER(38), new_short_name IN VARCHAR2 DEFAULT NULL, new_long_name IN VARCHAR2 DEFAULT NULL); SA_COMPONENTS.ALTER_LEVEL ( policy_name IN VARCHAR2, short_name IN VARCHAR2, new_long_name IN VARCHAR2);
パラメータ
表E-11 SA_COMPONENTS.ALTER_LEVELのパラメータ
パラメータ | 説明 |
---|---|
|
存在するポリシーを指定します。既存のポリシーを検索するには、 |
|
変更するレベルの番号を指定します。既存のレベルを検索するには、 |
|
既存のレベルの短縮名を指定します。既存のレベルの短縮名を検索するには、 |
|
レベルを表す新規の短縮名(30文字以内)を指定します。 |
|
レベルを表す新規の詳細名(80文字以内)を指定します。 |
例
次の例では、hr_ols_pol
ポリシー・レベルの短縮名および詳細名を変更します。
BEGIN SA_COMPONENTS.ALTER_LEVEL ( policy_name => 'hr_ols_pol', level_num => 40, new_short_name => 'TS', new_long_name => 'TOP_SECRET'); END; /
E.2.6 SA_COMPONENTS.CREATE_COMPARTMENT
SA_COMPONENTS.CREATE_COMPARTMENT
プロシージャは、区分を作成し、その短縮名と詳細名を指定します。
comp_num
パラメータにより、区分がラベルの文字列表現にリスト表示される順序が決定されます。
構文
SA_COMPONENTS.CREATE_COMPARTMENT ( policy_name IN VARCHAR2, comp_num IN NUMBER(38), short_name IN VARCHAR2, long_name IN VARCHAR2);
パラメータ
表E-12 SA_COMPONENTS.CREATE_COMPARTMENTのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
区分番号(0から9999)を指定します。 |
|
区分を表す短縮名(30文字以内)を指定します。 |
|
区分を表す詳細名(80文字以内)を指定します。 |
例
次の例では、hr_ols_pol
ポリシーの区分を作成します。
BEGIN SA_COMPONENTS.CREATE_COMPARTMENT ( policy_name => 'hr_ols_pol', comp_num => '48', short_name => 'FIN', long_name => 'FINANCE'); END; /
E.2.7 SA_COMPONENTS.CREATE_GROUP
SA_COMPONENTS.CREATE_GROUP
プロシージャは、グループを作成し、その短縮名と詳細名、およびオプションで親グループを指定します。
構文
SA_COMPONENTS.CREATE_GROUP ( policy_name IN VARCHAR2, group_num IN NUMBER(38), short_name IN VARCHAR2, long_name IN VARCHAR2, parent_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-13 SA_COMPONENTS.CREATE_GROUPのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
グループ番号(0から9999)を指定します。 |
|
グループを表す短縮名(30文字以内)を指定します。 |
|
グループを表す詳細名(80文字以内)を指定します。 |
|
既存グループの短縮名を親グループとして指定します。 |
グループ番号は、ラベルの選択時にグループが表示される順序に影響することに注意してください。
例
次の例では、最初に親グループER
を作成し、次にその親グループに含まれる2番目のグループを作成します。
BEGIN SA_COMPONENTS.CREATE_GROUP ( policy_name => 'hr_ols_pol', group_num => 2000, short_name => 'ER', long_name => 'EAST_REGION'); END; / BEGIN SA_COMPONENTS.CREATE_GROUP ( policy_name => 'hr_ols_pol', group_num => 2100, short_name => 'ER_FIN', long_name => 'ER_FINANCES', parent_name => 'ER'); END; /
E.2.8 SA_COMPONENTS.CREATE_LEVEL
SA_COMPONENTS.CREATE_LEVEL
プロシージャは、レベルを作成し、その短縮名と詳細名を指定します。
level_num
パラメータに割り当てる数値により、機密性のランキングが決定されます(つまり、番号が小さいほど機密性の低いデータを示します)。
構文
SA_COMPONENTS.CREATE_LEVEL ( policy_name IN VARCHAR2, level_num IN NUMBER(38), short_name IN VARCHAR2, long_name IN VARCHAR2);
パラメータ
表E-14 SA_COMPONENTS.CREATE_LEVELのパラメータ
パラメータ | 説明 |
---|---|
|
存在するポリシーを指定します。既存のポリシーを検索するには、 |
|
レベル番号(0から9999)を指定します。 |
|
レベルを表す短縮名(30文字以内)を指定します。 |
|
レベルを表す詳細名(80文字以内)を指定します。 |
例
次の例では、hr_ols_pol
ポリシーのレベルを作成します。
BEGIN SA_COMPONENTS.CREATE_LEVEL ( policy_name => 'hr_ols_pol', level_num => 40, short_name => 'HS', long_name => 'HIGHLY_SENSITIVE'); END; /
E.2.9 SA_COMPONENTS.DROP_COMPARTMENT
SA_COMPONENTS.DROP_COMPARTMENT
プロシージャは、区分を削除します。
既存のラベルで区分が使用されている場合、それは削除できません。ALL_SA_DATA_LABELS
データ・ディクショナリ・ビューのLABEL
列を問い合せることで、既存のすべてのラベルを検索できます。
構文
SA_COMPONENTS.DROP_COMPARTMENT ( policy_name IN VARCHAR2, comp_num IN INTEGER); SA_COMPONENTS.DROP_COMPARTMENT ( policy_name IN VARCHAR2, short_name IN VARCHAR2);
パラメータ
表E-15 SA_COMPONENTS.DROP_COMPARTMENTのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ポリシーの既存の区分の番号を指定します。既存の区分番号を検索するには、 |
|
ポリシーの既存の区分の短縮名を指定します。既存の区分の短縮名を検索するには、 |
例
次の例では、hr_ols_pol
ポリシーからFIN
区分を削除します。
BEGIN SA_COMPONENTS.DROP_COMPARTMENT ( policy_name => 'hr_ols_pol', short_name => 'FIN'); END; /
E.2.10 SA_COMPONENTS.DROP_GROUP
SA_COMPONENTS.DROP_GROUP
プロシージャは、グループを削除します。
既存のラベルでグループが使用されている場合、そのグループは削除できません。
構文
SA_COMPONENTS.DROP_GROUP ( policy_name IN VARCHAR2, group_num IN NUMBER(38)); SA_COMPONENTS.DROP_GROUP ( policy_name IN VARCHAR2, short_name IN VARCHAR2);
パラメータ
表E-16 SA_COMPONENTS.DROP_GROUPのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ポリシーの既存のグループの番号を指定します。既存のグループ番号を検索するには、 |
|
既存のグループの短縮名を指定します。既存のグループの短縮名を検索するには、 |
例
次の例では、hr_ols_pol
ポリシーのグループ番号に基づいて、グループを削除します。
BEGIN SA_COMPONENTS.DROP_GROUP ( policy_name => 'hr_ols_pol', group_num => 2000); END; /
E.2.11 SA_COMPONENTS.DROP_LEVEL
SA_COMPONENTS.DROP_LEVEL
プロシージャは、レベルを削除します。
既存のラベルに使用されているレベルは削除できません。
構文
SA_COMPONENTS.DROP_LEVEL ( policy_name IN VARCHAR2, level_num IN NUMBER(38)); SA_COMPONENTS.DROP_LEVEL ( policy_name IN VARCHAR2, short_name IN VARCHAR2);
パラメータ
表E-17 SA_COMPONENTS.DROP_LEVELのパラメータ
パラメータ | 説明 |
---|---|
|
存在するポリシーを指定します。既存のポリシーを検索するには、 |
|
ポリシーの既存のレベルの番号を指定します。既存のレベル番号を検索するには、 |
|
レベルを表す短縮名(30文字以内)を指定します。既存のレベルの短縮名を検索するには、 |
例
次の例では、hr_ols_pol
ポリシーからレベル40
を削除します。
BEGIN SA_COMPONENTS.DROP_LEVEL ( policy_name => 'hr_ols_pol', level_num => 40); END; /
E.3 SA_LABEL_ADMINラベル管理PL/SQLパッケージ
SA_LABEL_ADMIN
PL/SQLパッケージは、ポリシーで使用されるラベルを管理する管理インタフェースを提供します。
- SA_LABEL_ADMIN PL/SQLパッケージについて
SA_LABEL_ADMIN
PL/SQLパッケージは、ラベルを作成、変更および削除します。 - SA_LABEL_ADMIN.ALTER_LABEL
SA_LABEL_ADMIN.ALTER_LABEL
プロシージャは、ラベル・タグに関連付けられている文字列ラベルの定義を変更します。 - SA_LABEL_ADMIN.CREATE_LABEL
SA_LABEL_ADMIN.CREATE_LABEL
プロシージャは、データ・ラベルを作成します。 - SA_LABEL_ADMIN.DROP_LABEL
SA_LABEL_ADMIN.DROP_LABEL
プロシージャは、指定したポリシー・ラベルを削除します。
E.3.2 SA_LABEL_ADMIN.ALTER_LABEL
SA_LABEL_ADMIN.ALTER_LABEL
プロシージャは、ラベル・タグに関連付けられている文字列ラベルの定義を変更します。
ラベル・タグ自体は変更できません。
ラベル・タグに関連付けられている文字列を変更すると、行のデータの機密性もそれに応じて変更されます。たとえば、ラベル・タグ値4001
に関連付けられているラベル文字列TS:A
をラベルTS:B
に変更すると、そのデータへのアクセス権もそれに応じて変更されます。これは、ラベル・タグ値(4001
)に変更がない場合も同じです。この方法で、すべての行を更新せずにデータの機密性を変更できます。
変更するラベルを指定するときには、ラベル・タグまたは文字列値で参照できることを確認してください。
構文
SA_LABEL_ADMIN.ALTER_LABEL ( policy_name IN VARCHAR2, label_tag IN BINARY_INTEGER, new_label_value IN VARCHAR2 DEFAULT NULL, new_data_label IN BOOLEAN DEFAULT NULL); SA_LABEL_ADMIN.ALTER_LABEL ( policy_name IN VARCHAR2, label_value IN VARCHAR2, new_label_value IN VARCHAR2 DEFAULT NULL, new_data_label IN BOOLEAN DEFAULT NULL);
パラメータ
表E-18 SA_LABEL_ADMIN.ALTER_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
既存のポリシーの名前を指定します。既存のポリシーを検索するには、 |
|
変更するラベルに割り当てられている整数タグを識別します。既存のラベル・タグを検索するには、 |
|
変更するラベルの既存の文字列表現を識別します。既存のラベル値を検索するには、 |
|
ラベル値の新規の文字列表現を指定します。 |
|
ラベルを行データのラベル付けに使用できる場合は |
例
次の例では、hr_ols_pol
ポリシーのlabel_tag
およびlabel_value
設定を変更します。
BEGIN SA_LABEL_ADMIN.ALTER_LABEL ( policy_name => 'hr_ols_pol', label_tag => 1111, new_label_value => 'HS', new_data_label => TRUE); END; /
E.3.3 SA_LABEL_ADMIN.CREATE_LABEL
SA_LABEL_ADMIN.CREATE_LABEL
プロシージャは、データ・ラベルを作成します。
構文
SA_LABEL_ADMIN.CREATE_LABEL ( policy_name IN VARCHAR2, label_tag IN BINARY_INTEGER, label_value IN VARCHAR2, data_label IN BOOLEAN DEFAULT TRUE);
パラメータ
表E-19 SA_LABEL_ADMIN.CREATE_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
既存のポリシーの名前を指定します。既存のポリシーを検索するには、 |
|
ラベルのソート順を他のポリシー・ラベルとの相対で表す一意の整数値(0から99999999)を指定します。この値の長さは1桁から8桁である必要があります。 |
|
作成するラベルの文字列表現を指定します。レベル、区分およびグループの短縮名を使用します。 |
|
ラベルを行データのラベル付けに使用できる場合は |
有効なラベルを識別するときには、表中のデータのラベル付けに使用できるレベル、区分およびグループに可能なすべての組合せを指定します。
例
次の例では、hr_ols_pol
ポリシーのラベルを作成します。
BEGIN SA_LABEL_ADMIN.CREATE_LABEL ( policy_name => 'hr_ols_pol', label_tag => 1111, label_value => 'HS:FIN', data_label => TRUE); END; /
ノート:
TO_DATA_LABEL
プロシージャを使用して新規ラベルを作成すると、10桁のシステム生成ラベル・タグが自動的に生成されます。
ただし、Oracle Label SecurityがOracle Internet Directoryで動作するようにインストールされている場合、ラベルはOracle Internet Directoryでolsadmintool
コマンドを使用して集中管理されるため、動的ラベル生成は許可されません。
したがって、Oracle Label SecurityがOracle Internet Directory対応の場合、TO_DATA_LABEL
ファンクションは使用できず、使用するとエラー・メッセージが生成されます。
E.3.4 SA_LABEL_ADMIN.DROP_LABEL
SA_LABEL_ADMIN.DROP_LABEL
プロシージャは、指定したポリシー・ラベルを削除します。
それ以後のラベルへの参照(データ行内、ユーザー・ラベル内またはプログラム・ユニット・ラベル内)では、無効なラベルによるエラーが発生します。
このプロシージャを使用するのは、データを移入する前のラベルの設定中のみです。使用するラベルを意図せずに削除した場合は、ポリシーを無効化し、問題を解決し、ポリシーを再び有効化すればリカバリできます。
構文
SA_LABEL_ADMIN.DROP_LABEL ( policy_name IN VARCHAR2, label_tag IN BINARY_INTEGER); SA_LABEL_ADMIN.DROP_LABEL ( policy_name IN VARCHAR2, label_value IN VARCHAR2);
パラメータ
表E-20 SA_LABEL_ADMIN.DROP_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
既存のポリシーの名前を指定します。既存のポリシーを検索するには、 |
|
削除するラベルに割り当てられている整数タグを指定します。既存のラベル・タグを検索するには、 |
|
削除するラベルの文字列値を指定します。既存のラベル値を検索するには、 |
警告:
データベース内で使用中のラベルは削除しないでください。ラベルは、ALL_SA_LABELS
データ・ディクショナリ・ビューを問い合せることで確認できます。
例
次の例では、label_tag
設定に基づいて、hr_ols_pol
ポリシー・ラベルを削除します。
BEGIN SA_LABEL_ADMIN.DROP_LABEL ( policy_name => 'hr_ols_pol', label_tag => 1111); END; /
E.4 SA_POLICY_ADMINポリシー管理PL/SQLパッケージ
SA_POLICY_ADMIN
PL/SQLパッケージは、Oracle Label Securityポリシー全体を管理します。
- SA_POLICY_ADMIN PL/SQLパッケージについて
SA_POLICY_ADMIN
PL/SQLパッケージは、スキーマおよび表のポリシーを構成し、アクションのサブスクライブとサブスクライブ解除を実行します。 - SA_POLICY_ADMIN.ALTER_SCHEMA_POLICY
SA_POLICY_ADMIN.ALTER_SCHEMA_POLICY
プロシージャは、ポリシーのデフォルト強制オプションを変更します。 - SA_POLICY_ADMIN.APPLY_SCHEMA_POLICY
SA_POLICY_ADMIN.APPLY_SCHEMA_POLICY
プロシージャは、スキーマ内のすべての表にポリシーを適用し、これらの表に対してポリシーを有効にします。 - SA_POLICY_ADMIN.APPLY_TABLE_POLICY
SA_POLICY_ADMIN.APPLY_TABLE_POLICY
プロシージャは、指定したポリシーを表に追加します。 - SA_POLICY_ADMIN.DISABLE_SCHEMA_POLICY
SA_POLICY_ADMIN.DISABLE_SCHEMA_POLICY
プロシージャは、スキーマ内のすべての表に対するポリシーの強制を無効にします。 - SA_POLICY_ADMIN.DISABLE_TABLE_POLICY
SA_POLICY_ADMIN.DISABLE_TABLE_POLICY
プロシージャは、強制オプション、ラベル付けファンクションまたは述語の値を変更せずに、表のポリシーの強制を無効にします。 - SA_POLICY_ADMIN.ENABLE_SCHEMA_POLICY
SA_POLICY_ADMIN.ENABLE_SCHEMA_POLICY
プロシージャは、指定したスキーマ内の表に対する現行の強制オプション、ラベル付けファンクションおよび述語を再有効化します。 - SA_POLICY_ADMIN.ENABLE_TABLE_POLICY
SA_POLICY_ADMIN.ENABLE_TABLE_POLICY
プロシージャは、指定した表に対する現行の強制オプション、ラベル付けファンクションおよび述語を再有効化します。 - SA_POLICY_ADMIN.POLICY_SUBSCRIBE
Oracle Internet Directory対応Oracle Label Security構成では、SA_POLICY_ADMIN.POLICY_SUBSCRIBE
プロシージャは、SA_POLICY_ADMIN.APPLY_TABLE_POLICY
およびSA_POLICY_ADMIN.APPLY_SCHEMA_POLICY
で使用できるようにポリシーにサブスクライブします。 - SA_POLICY_ADMIN.POLICY_UNSUBSCRIBE
Oracle Internet Directory対応Oracle Label Security構成では、SA_POLICY_ADMIN.POLICY_UNSUBSCRIBE
プロシージャはポリシーのサブスクライブを解除します。 - SA_POLICY_ADMIN.REMOVE_SCHEMA_POLICY
SA_POLICY_ADMIN.REMOVE_SCHEMA_POLICY
プロシージャは、指定したポリシーをスキーマから削除します。 - SA_POLICY_ADMIN.REMOVE_TABLE_POLICY
SA_POLICY_ADMIN.REMOVE_TABLE_POLICY
プロシージャは、指定したポリシーを表から削除します。
E.4.1 SA_POLICY_ADMIN PL/SQLパッケージについて
SA_POLICY_ADMIN
PL/SQLパッケージは、スキーマおよび表のポリシーを構成し、アクションのサブスクライブとサブスクライブ解除を実行します。
このパッケージを使用するには、SA_POLICY_ADMIN
パッケージに対するpolicy
_DBA
ロール(たとえば、hr_ols_pol
ポリシーに対するロールとしてHR_OLS_POL_DBA
)、およびEXECUTE
権限が付与されている必要があります。
E.4.2 SA_POLICY_ADMIN.ALTER_SCHEMA_POLICY
SA_POLICY_ADMIN.ALTER_SCHEMA_POLICY
プロシージャは、ポリシーのデフォルト強制オプションを変更します。
スキーマ内で新規に作成した表には、新規の施行オプションが自動的に適用されます。スキーマ内の既存の表は影響を受けません。
スキーマではなく表に対する施行オプションを変更するには、最初に表からポリシーを削除し、必要な変更を行ってから、ポリシーを再適用する必要があります。
スキーマに対する施行オプションを変更すると、変更結果は次回にそのスキーマに表を作成するときに有効になります。したがって、スキーマ内の表ごとに異なるポリシー施行オプションが有効になる場合があります。
構文
SA_POLICY_ADMIN.ALTER_SCHEMA_POLICY ( policy_name IN VARCHAR2, schema_name IN VARCHAR2, default_options IN VARCHAR2);
パラメータ
表E-21 SA_POLICY_ADMIN.ALTER_SCHEMAのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
表を含むスキーマです。このポリシーに関連付けられている既存のスキーマを検索するには、 |
|
スキーマ内の新規の表に使用するデフォルト・オプションです。各オプションはカンマで区切ります。 デフォルトの強制オプションのリストは、表11-2を参照してください。 |
例
次の例では、UPDATE_CONTROL
デフォルト・オプションをHR
スキーマに追加します。
BEGIN SA_POLICY_ADMIN.ALTER_SCHEMA_POLICY( policy_name => 'hr_ols_pol', schema_name => 'HR', default_options => 'read_control, write_control, update_control'); END; /
E.4.3 SA_POLICY_ADMIN.APPLY_SCHEMA_POLICY
SA_POLICY_ADMIN.APPLY_SCHEMA_POLICY
プロシージャは、スキーマ内のすべての表にポリシーを適用し、これらの表に対してポリシーを有効にします。
つまり、まだポリシーが適用されていない表に適用されます。その後は、スキーマに新規の表が作成されるたびに、スキーマのデフォルト・オプションを使用して、その表に自動的にポリシーが適用されます。スキーマ内の既存の表で、すでにポリシーが適用されているものは変更されません。
構文
SA_POLICY_ADMIN.APPLY_SCHEMA_POLICY ( policy_name IN VARCHAR2, schema_name IN VARCHAR2, default_options IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-22 SA_POLICY_ADMIN.APPLY_SCHEMA_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
保護する表を含むスキーマです。 |
|
スキーマ内の表に使用するデフォルト・オプションです。各オプションはカンマで区切ります。 デフォルトの強制オプションのリストは、表11-2を参照してください。 |
例
次の例では、HR
スキーマにREAD_CONTROL
およびWRITE_CONTROL
オプションを適用します。
BEGIN SA_POLICY_ADMIN.APPLY_SCHEMA_POLICY( policy_name => 'hr_ols_pol', schema_name => 'HR', default_options => 'read_control, write_control'); END; /
E.4.4 SA_POLICY_ADMIN.APPLY_TABLE_POLICY
SA_POLICY_ADMIN.APPLY_TABLE_POLICY
プロシージャは、指定したポリシーを表に追加します。
ポリシーのラベル列が存在しない場合は表に追加され、NULL
に設定されます。ポリシーは、適用すると自動的に有効化されます。表のオプション、ラベル付けファンクションまたは述語を変更するには、最初にポリシーを削除してから再適用する必要があります。
構文
SA_POLICY_ADMIN.APPLY_TABLE_POLICY ( policy_name IN VARCHAR2, schema_name IN VARCHAR2, table_name IN VARCHAR2, table_options IN VARCHAR2 DEFAULT NULL, label_function IN VARCHAR2 DEFAULT NULL, predicate IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-23 SA_POLICY_ADMIN.APPLY_TABLE_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ポリシーが保護する表を含むスキーマです。 |
|
ポリシーで保護される表です。 |
|
表に使用するポリシー施行オプションのカンマ区切りのリストです。 デフォルトの強制オプションのリストは、表11-2を参照してください。 |
|
デフォルトとして使用するラベル値を戻すファンクションをコールする文字列です。たとえば、 |
|
|
例
次の文では、HR
スキーマのEMPLOYEES
表にhr_ols_pol
ポリシーを適用します。
BEGIN SA_POLICY_ADMIN.APPLY_TABLE_POLICY( policy_name => 'hr_ols_pol', schema_name => 'HR', table_name => 'EMPLOYEES', table_options => NULL, label_function => 'hs(:new.dept,:new.status)', predicate => 'no_control'); END; /
E.4.5 SA_POLICY_ADMIN.DISABLE_SCHEMA_POLICY
SA_POLICY_ADMIN.DISABLE_SCHEMA_POLICY
プロシージャは、スキーマ内のすべての表に対するポリシーの強制を無効にします。
ただし、強制オプション、ラベル付けファンクションまたは述語の値は変更されません。
このプロシージャは、行レベルのセキュリティ述語とDMLトリガーをスキーマ内のすべての表から削除します。
構文
SA_POLICY_ADMIN.DISABLE_SCHEMA_POLICY ( policy_name IN VARCHAR2, schema_name IN VARCHAR2);
パラメータ
表E-24 SA_POLICY_ADMIN.DISABLE_SCHEMA_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
このポリシーの表を含むスキーマです。このスキーマを検索するには、 |
例
次の例では、HR
スキーマのhr_ols_pol
ポリシーを無効化します。
BEGIN SA_POLICY_ADMIN.DISABLE_SCHEMA_POLICY( policy_name => 'hr_ols_pol', schema_name => 'HR'); END; /
E.4.6 SA_POLICY_ADMIN.DISABLE_TABLE_POLICY
SA_POLICY_ADMIN.DISABLE_TABLE_POLICY
プロシージャは、強制オプション、ラベル付けファンクションまたは述語の値を変更せずに、表のポリシーの強制を無効にします。
このプロシージャは、行レベルのセキュリティ述語とDMLトリガーを表から削除します。
構文
SA_POLICY_ADMIN.DISABLE_TABLE_POLICY ( policy_name IN VARCHAR2, schema_name IN VARCHAR2, table_name IN VARCHAR2);
パラメータ
表E-25 SA_POLICY_ADMIN.DISABLE_TABLE_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
表を含むスキーマです。このスキーマを検索するには、 |
|
|
例
次の文では、HR
スキーマのEMPLOYEES
表でのhr_ols_pos
ポリシーを無効化します。
BEGIN SA_POLICY_ADMIN.DISABLE_TABLE_POLICY( policy_name => 'hr_ols_pol', schema_name => 'HR', table_name => 'EMPLOYEES'); END; /
E.4.7 SA_POLICY_ADMIN.ENABLE_SCHEMA_POLICY
SA_POLICY_ADMIN.ENABLE_SCHEMA_POLICY
プロシージャは、指定したスキーマ内の表に対する現行の強制オプション、ラベル付けファンクションおよび述語を再有効化します。
このために、行レベルのセキュリティ述語およびDMLトリガーを再適用します。結果は1つの表に対するポリシーを有効化しているように見えますが、スキーマ内のすべての表が対象となります。
構文
SA_POLICY_ADMIN.ENABLE_SCHEMA_POLICY ( policy_name IN VARCHAR2, schema_name IN VARCHAR2);
パラメータ
表E-26 SA_POLICY_ADMIN.ENABLE_SCHEMA_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーおよびそのステータスを検索するには、 |
|
表を含むスキーマです。このスキーマを検索するには、 |
例
次の例では、HR
スキーマのhr_ols_pol
ポリシーを有効化します。
BEGIN SA_POLICY_ADMIN.ENABLE_SCHEMA_POLICY( policy_name => 'hr_ols_pol', schema_name => 'HR'); END; /
E.4.8 SA_POLICY_ADMIN.ENABLE_TABLE_POLICY
SA_POLICY_ADMIN.ENABLE_TABLE_POLICY
プロシージャは、指定した表に対する現行の強制オプション、ラベル付けファンクションおよび述語を再有効化します。
このために、行レベルのセキュリティ述語およびDMLトリガーを再適用します。
構文
SA_POLICY_ADMIN.ENABLE_TABLE_POLICY ( policy_name IN VARCHAR2, schema_name IN VARCHAR2, table_name IN VARCHAR2);
パラメータ
表E-27 SA_POLICY_ADMIN.ENABLE_TABLE_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。 |
|
表を含むスキーマです。このスキーマを検索するには、 |
|
|
例
次の文では、HR
スキーマのEMPLOYEES
表でのhr_ols_pol
ポリシーを再有効化します。
BEGIN SA_POLICY_ADMIN.ENABLE_TABLE_POLICY( policy_name => 'hr_ols_pol', schema_name => 'HR', table_name => 'EMPLOYEES'); END; /
E.4.9 SA_POLICY_ADMIN.POLICY_SUBSCRIBE
Oracle Internet Directory対応Oracle Label Security構成では、SA_POLICY_ADMIN.POLICY_SUBSCRIBE
プロシージャは、SA_POLICY_ADMIN.APPLY_TABLE_POLICY
およびSA_POLICY_ADMIN.APPLY_SCHEMA_POLICY
で使用できるようにポリシーにサブスクライブします。
ポリシーに対してこのプロシージャをコールしてから、そのポリシーを表またはスキーマに適用する必要があります。サブスクライブは1回のみで、表またはスキーマ内でポリシーを使用するたびにサブスクライブする必要はありません。
サブスクライブされたポリシーは、適用先の表またはスキーマからそのポリシーを削除してからサブスクライブ解除しないかぎり、削除することはできません。
構文
SA_POLICY.POLICY_SUBSCRIBE( policy_name IN VARCHAR2);
パラメータ
表E-28 SA_POLICY_ADMIN.POLICY_SUBSCRIBEのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
ノート:
このプロシージャをポリシーの使用前に使用する必要があるのは、Oracle Internet Directory対応Oracle Label Security構成の場合のみです。スタンドアロンOracle Label Securityの場合は、APPLY_TABLE_POLICY
およびAPPLY_SCHEMA_POLICY
でポリシーを直接使用でき、サブスクライブは不要です。
例
次の文では、表およびスキーマに適用して使用できるように、データベースをhr_ols_pol
ポリシーにサブスクライブします。
BEGIN SA_POLICY_ADMIN.POLICY_SUBSCRIBE( policy_name => 'hr_ols_pol'); END; /
E.4.10 SA_POLICY_ADMIN.POLICY_UNSUBSCRIBE
Oracle Internet Directory対応Oracle Label Security構成では、SA_POLICY_ADMIN.POLICY_UNSUBSCRIBE
プロシージャはポリシーにサブスクライブ解除します。
このプロシージャを使用できるのは、ポリシーが使用されていない場合、つまり、表またはスキーマに適用されていない場合のみです。(表またはスキーマに適用されている場合は、すべての表またはスキーマから削除してから、サブスクライブ解除する必要があります。)Oracle Internet Directoryでポリシーを削除できるのは、そのOracle Internet Directoryに登録したデータベースでサブスクライブされていない場合のみです。ポリシーのサブスクライブを解除するには、olsadmintool dropprofile
コマンドを使用します。
サブスクライブされたポリシーは、適用先の表またはスキーマからそのポリシーを削除してからサブスクライブ解除しないかぎり、削除することはできません。
構文
SA_POLICY_ADMIN.POLICY_UNSUBSCRIBE( policy_name IN VARCHAR2);
パラメータ
表E-29 SA_POLICY_ADMIN.POLICY_UNSUBSCRIBEのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の文では、hr_ols_pol
ポリシーにデータベースをサブスクライブ解除します。
BEGIN SA_POLICY_ADMIN.POLICY_UNSUBSCRIBE( policy_name => 'hr_ols_pol'); END; /
E.4.11 SA_POLICY_ADMIN.REMOVE_SCHEMA_POLICY
SA_POLICY_ADMIN.REMOVE_SCHEMA_POLICY
プロシージャは、指定したポリシーをスキーマから削除します。
ポリシーはスキーマ内のすべての表から削除され、オプションでポリシーのラベル列がすべての表から削除されます。
構文
SA_POLICY_ADMIN.REMOVE_SCHEMA_POLICY ( policy_name IN VARCHAR2, schema_name IN VARCHAR2, drop_column IN BOOLEAN DEFAULT FALSE);
パラメータ
表E-30 SA_POLICY_ADMIN.REMOVE_SCHEMA_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
このポリシーに関連付けられている表を含むスキーマです。このスキーマを検索するには、 |
|
|
例
次の例では、HR
スキーマからhuman_resource
ポリシーの列を削除します。
BEGIN SA_POLICY_ADMIN.REMOVE_SCHEMA_POLICY( policy_name => 'hr_ols_pol', schema_name => 'HR', drop_column => TRUE); END; /
E.4.12 SA_POLICY_ADMIN.REMOVE_TABLE_POLICY
SA_POLICY_ADMIN.REMOVE_TABLE_POLICY
プロシージャは、指定したポリシーを表から削除します。
ポリシーの述語とDMLトリガーが表から削除され、ポリシーのラベル列をオプションで削除できます。ポリシーは、それにより保護されているスキーマに属する表から削除できます。
構文
SA_POLICY_ADMIN.REMOVE_TABLE_POLICY ( policy_name IN VARCHAR2, schema_name IN VARCHAR2, table_name IN VARCHAR2, drop_column IN BOOLEAN DEFAULT FALSE);
パラメータ
表E-31 SA_POLICY_ADMIN.REMOVE_TABLE_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
このポリシーに関連付けられている表を含むスキーマです。このスキーマを検索するには、 |
|
|
|
列を削除するかどうかを指定します。 |
例
次の文では、HR
スキーマのEMPLOYEES
表からhr_ols_pol
ポリシーを削除します。
BEGIN SA_POLICY_ADMIN.REMOVE_TABLE_POLICY( policy_name => 'hr_ols_pol', schema_name => 'HR', table_name => 'EMPLOYEES', drop_column => TRUE); END; /
E.5 SA_SESSIONセッション管理PL/SQLパッケージ
SA_SESSION
PL/SQLパッケージは、ユーザー認可に関するセッション動作を管理します。
- SA_SESSION PL/SQLパッケージについて
SA_SESSION
PL/SQLパッケージは、ユーザー・セッションのユーザー名、レベル、ラベル、読取り権限および書込み権限を管理します。 - SA_SESSION.COMP_READ
SA_SESSION.COMP_READ
ファンクションは、ユーザーが読取りを認可されている区分のカンマ区切りのリストを戻します。 - SA_SESSION.COMP_WRITE
SA_SESSION.COMP_WRITE
ファンクションは、ユーザーが書込みを認可されている区分のカンマ区切りのリストを戻します。 - SA_SESSION.GROUP_READ
SA_SESSION.GROUP_READ
ファンクションは、ユーザーが読取りを認可されているグループのカンマ区切りのリストを戻します。 - SA_SESSION.GROUP_WRITE
SA_SESSION.GROUP_WRITE
ファンクションは、ユーザーが書込みを認可されているグループのカンマ区切りのリストを戻します。 - SA_SESSION.LABEL
SA_SESSION.LABEL
ファンクションは、現行セッションの指定したポリシーに関連付けられているラベルを戻します。 - SA_SESSION.MAX_LEVEL
SA_SESSION.MAX_LEVEL
ファンクションは、セッションが認可されているOracle Label Securityの最大レベルを戻します。 - SA_SESSION.MAX_READ_LABEL
SA_SESSION.MAX_READ_LABEL
ファンクションは、ユーザーが認可される最大読取りラベルの初期化に使用されたラベル文字列を戻します。 - SA_SESSION.MAX_WRITE_LABEL
SA_SESSION.MAX_WRITE_LABEL
ファンクションは、ユーザーが認可される最大書込みラベルの初期化に使用されたラベル文字列を戻します。 - SA_SESSION.MIN_LEVEL
SA_SESSION.MIN_LEVEL
ファンクションは、セッションが認可されているOracle Label Securityの最小レベルを戻します。 - SA_SESSION.MIN_WRITE_LABEL
SA_SESSION.MIN_WRITE_LABEL
ファンクションは、ユーザーが認可される最小書込みラベルの初期化に使用されたラベル文字列を取得します。 - SA_SESSION.PRIVS
SA_SESSION.PRIVS
ファンクションは、現行セッションの権限セットをカンマ区切りのリスト形式で戻します。 - SA_SESSION.RESTORE_DEFAULT_LABELS
SA_SESSION.RESTORE_DEFAULT_LABELS
プロシージャは、セッション・ラベルと行ラベルを、データ・ディクショナリに格納されているそれらのラベルでリストアします。 - SA_SESSION.ROW_LABEL
SA_SESSION.ROW_LABEL
ファンクションは、現行セッションのポリシーに関連付けられている行ラベルの名前を戻します。 - SA_SESSION.SET_LABEL
SA_SESSION.SET_LABEL
プロシージャは、現行データベース・セッションのラベルを設定します。 - SA_SESSION.SA_USER_NAME
SA_SESSION.SA_USER_NAME
ファンクションは、SA_SESSION.SET_ACCESS_PROFILE
プロシージャで設定された(またはログイン時に設定された)現行のOracle Label Securityユーザーの名前を戻します。 - SA_SESSION.SAVE_DEFAULT_LABELS
SA_SESSION.SAVE_DEFAULT_LABELS
プロシージャは、現行のセッション・ラベルと行ラベルを、初期セッション・ラベルおよびデフォルトの行ラベルとして格納します。 - SA_SESSION.SET_ACCESS_PROFILE
SA_SESSION.SET_ACCESS_PROFILE
プロシージャは、データベース・セッションのOracle Label Securityでの認可と権限を、指定したユーザーの認可と権限に設定します。 - SA_SESSION.SET_ROW_LABEL
SA_SESSION.SET_ROW_LABEL
プロシージャは、現行データベース・セッションのデフォルトの行ラベル値を設定します。
E.5.1 SA_SESSION PL/SQLパッケージについて
SA_SESSION
PL/SQLパッケージは、ユーザー・セッションのユーザー名、レベル、ラベル、読取り権限および書込み権限を管理します。
ユーザーは、管理者により設定された認可の範囲内で、セッション中にラベルを変更できます。
このパッケージを使用するために特別な権限は必要ありません。
関連項目:
数値ラベル・タグおよびブール
値を戻す追加のファンクションは、「SA_UTL PL/SQLユーティリティのファンクションおよびプロシージャ」を参照してください
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.2 SA_SESSION.COMP_READ
SA_SESSION.COMP_READ
ファンクションは、ユーザーが読取りを認可されている区分のカンマ区切りのリストを戻します。
構文
SA_SESSION.COMP_READ ( policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表E-32 SA_SESSION.COMP_READのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、ユーザーがhr_ols_pol
ポリシーに対して読取りが可能な区分を戻します。
SELECT SA_SESSION.COMP_READ ('hr_ols_pol') FROM DUAL;
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.3 SA_SESSION.COMP_WRITE
SA_SESSION.COMP_WRITE
ファンクションは、ユーザーが書込みを認可されている区分のカンマ区切りのリストを戻します。
このファンクションは、SA_SESSION.COMP_READ
のサブセットです。
構文
SA_SESSION.COMP_WRITE ( policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表E-33 SA_SESSION.COMP_WRITEのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、ユーザーがhr_ols_pol
ポリシーに対して変更が可能な区分を戻します。
SELECT SA_SESSION.COMP_WRITE ('hr_ols_pol') FROM DUAL;
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.4 SA_SESSION.GROUP_READ
SA_SESSION.GROUP_READ
ファンクションは、ユーザーが読取りを認可されているグループのカンマ区切りのリストを戻します。
構文
SA_SESSION.GROUP_READ ( policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表E-34 SA_SESSION.GROUP_READのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、ユーザーがhr_ols_pol
ポリシーに対して読取りが可能なグループのリストを戻します。
SELECT SA_SESSION.GROUP_READ ('hr_ols_pol') FROM DUAL;
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.5 SA_SESSION.GROUP_WRITE
SA_SESSION.GROUP_WRITE
ファンクションは、ユーザーが書込みを認可されているグループのカンマ区切りのリストを戻します。
このファンクションは、SA_SESSION.GROUP_READ
のサブセットです。
構文
SA_SESSION.GROUP_WRITE ( policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表E-35 SA_SESSION.GROUP_WRITEのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、ユーザーがhr_ols_pol
ポリシーに対する変更を認可されているグループを戻します。
SELECT SA_SESSION.GROUP_WRITE ('hr_ols_pol') FROM DUAL;
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.6 SA_SESSION.LABEL
SA_SESSION.LABEL
ファンクションは、現行セッションの指定したポリシーに関連付けられているラベルを戻します。
構文
SA_SESSION.LABEL ( policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表E-36 SA_SESSION.LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーに関連付けられているラベルを戻します。
SELECT SA_SESSION.LABEL ('hr_ols_pol') FROM DUAL;
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.7 SA_SESSION.MAX_LEVEL
SA_SESSION.MAX_LEVEL
ファンクションは、セッションが認可されているOracle Label Securityの最大レベルを戻します。
構文
SA_SESSION.MAX_LEVEL ( policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表E-37 SA_SESSION.MAX_LEVELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーが認可されているOracle Label Securityの最大レベルを戻します。
SELECT SA_SESSION.MAX_LEVEL ('hr_ols_pol') FROM DUAL;
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.8 SA_SESSION.MAX_READ_LABEL
SA_SESSION.MAX_READ_LABEL
ファンクションは、ユーザーが認可される最大読取りラベルの初期化に使用されたラベル文字列を戻します。
戻される文字列は、ユーザーの最大レベル、読取りアクセスが認可される区分、および読取りアクセスが認可されるグループで構成されます。
構文
SA_SESSION.MAX_READ_LABEL ( policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表E-38 SA_SESSION.MAX_READ_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーに対する最大読取りラベル権限を戻します。
SELECT SA_SESSION.MAX_READ_LABEL ('hr_ols_pol') FROM DUAL;
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.9 SA_SESSION.MAX_WRITE_LABEL
SA_SESSION.MAX_WRITE_LABEL
ファンクションは、ユーザーが認可される最大書込みラベルの初期化に使用されたラベル文字列を戻します。
戻される文字列は、ユーザーの最大レベル、書込みアクセスが認可される区分、および書込みアクセスが認可されるグループで構成されます。
構文
SA_SESSION.MAX_WRITE_LABEL ( policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表E-39 SA_SESSION.MAX_WRITE_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーに対する最大書込みラベル権限を戻します。
SELECT SA_SESSION.MAX_WRITE_LABEL ('hr_ols_pol') FROM DUAL;
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.10 SA_SESSION.MIN_LEVEL
SA_SESSION.MIN_LEVEL
ファンクションは、セッションが認可されているOracle Label Securityの最小レベルを戻します。
構文
SA_SESSION.MIN_LEVEL ( policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表E-40 SA_SESSION.MIN_LEVELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーの現行の最小レベルを戻します。
SELECT SA_SESSION.MIN_LEVEL ('hr_ols_pol') FROM DUAL;
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.11 SA_SESSION.MIN_WRITE_LABEL
SA_SESSION.MIN_WRITE_LABEL
ファンクションは、ユーザーが認可される最小書込みラベルの初期化に使用されたラベル文字列を取得します。
戻される文字列にはレベルのみが含まれ、区分やグループは含まれません。
構文
SA_SESSION.MIN_WRITE_LABEL ( policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表E-41 SA_SESSION.MIN_WRITE_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーに対する最大書込みラベル権限を戻します。
SELECT SA_SESSION.MIN_WRITE_LABEL ('hr_ols_pol') FROM DUAL;
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.12 SA_SESSION.PRIVS
SA_SESSION.PRIVS
ファンクションは、現行セッションの権限セットをカンマ区切りのリスト形式で戻します。
構文
SA_SESSION.PRIVS ( policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表E-42 SA_SESSION.Privsのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーに対する現行セッションの権限を戻します。
SELECT SA_SESSION.PRIVS ('hr_ols_pol') FROM DUAL;
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.13 SA_SESSION.RESTORE_DEFAULT_LABELS
SA_SESSION.RESTORE_DEFAULT_LABELS
プロシージャは、セッション・ラベルと行ラベルを、データ・ディクショナリに格納されているそれらのラベルでリストアします。
このコマンドが役立つのは、SA_SESSION.SET_LABEL
コマンドが処理された後に値をリセットする場合です。
構文
SA_SESSION.RESTORE_DEFAULT_LABELS ( policy_name in VARCHAR2);
パラメータ
表E-43 SA_SESSION.RESTORE_DEFAULT_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーのデフォルト・ラベルをリストアします。
BEGIN SA_SESSION.RESTORE_DEFAULT_LABELS ( policy_name => 'hr_ols_pol'); END; /
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.14 SA_SESSION.ROW_LABEL
SA_SESSION.ROW_LABEL
ファンクションは、現行セッションのポリシーに関連付けられている行ラベルの名前を戻します。
構文
SA_SESSION.ROW_LABEL ( policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表E-44 SA_SESSION.ROW_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーに関連付けられている行ラベルを戻します。
SELECT SA_SESSION.ROW_LABEL ('hr_ols_pol') FROM DUAL;
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.15 SA_SESSION.SET_LABEL
SA_SESSION.SET_LABEL
プロシージャは、現行データベース・セッションのラベルを設定します。
セッション・ラベルは次のように設定できます。
-
最大レベル以下で、かつ最小レベル以上のレベルに設定する。
-
認可された区分リストにある区分を含むように設定する。
-
認可されたグループ・リストにあるグループを含むように設定する。(認可グループのサブグループは、認可リストに暗黙的に含まれます。)
セッション・ラベルを変更すると、そのセッションの行ラベルの値に影響する場合があることに注意してください。セッションの行ラベルには、ユーザーが書込みアクセス権を持っている区分とグループのサブセットが含まれています。これは、セッション・ラベルと等価の場合と、等価でない場合があります。たとえば、SA_SESSION.SET_LABEL
プロシージャを使用して現行セッション・ラベルをC:A,B:US
に設定した場合に、A
区分に対する書込みアクセス権しか持っていなければ、行ラベルはC:A
に設定されます。
構文
SA_SESSION.SET_LABEL ( policy_name IN VARCHAR2, label IN VARCHAR2);
パラメータ
表E-45 SA_SESSION.SET_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ラベルとして設定する値 |
例
次の例では、hr_ols_pol
ポリシーのラベルを設定します。
BEGIN
SA_SESSION.SET_LABEL (
policy_name => 'hr_ols_pol',
label => 'C:A,B:US
');
END;
/
E.5.16 SA_SESSION.SA_USER_NAME
SA_SESSION.SA_USER_NAME
ファンクションは、SA_SESSION.SET_ACCESS_PROFILE
プロシージャで設定された(またはログイン時に設定された)現行のOracle Label Securityユーザーの名前を戻します。
これにより、現行ユーザーの識別情報をOracleログイン名ではなくOracle Label Securityに関連付けて判断できます。
構文
SA_SESSION.SA_USER_NAME ( policy_name IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表E-46 SA_SESSION.SA_USER_NAMEのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーのOracle Label Securityユーザーの名前を検索します。
SELECT SA_SESSION.SA_USER_NAME ('hr_ols_pol') FROM DUAL;
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.17 SA_SESSION.SAVE_DEFAULT_LABELS
SA_SESSION.SAVE_DEFAULT_LABELS
プロシージャは、現行のセッション・ラベルと行ラベルを、初期セッション・ラベルおよびデフォルトの行ラベルとして格納します。
このプロシージャを使用すると、現行のセッション・ラベルと行ラベルを反映するようにデフォルトを変更できます。保存されたラベルは、将来のセッションの初期デフォルト設定として使用されます。
データベースへのログイン時には、デフォルトのセッション・ラベルと行ラベルを使用して、セッション・ラベルと行ラベルが初期化されます。管理者は最初にユーザーのOracle Label Securityのラベルを認可するときに、ユーザーのデフォルト・レベル、デフォルト区分およびデフォルト・グループも定義しています。セッション・ラベルと行ラベルを変更し、その値をデフォルト・ラベルとして保存する場合は、SA_SESSION.SAVE_DEFAULT_LABELS
プロシージャを使用できます。
このプロシージャが役立つのは、複数のセッションがあり、すべての追加セッションに同じラベルが使用されるようにする必要がある場合です。現行ラベルをデフォルトとして保存し、将来のすべてのセッションに初期ラベルとして使用できます。
Oracle Formsを通じてデータベースに接続し、レポートを実行する必要がある場合を考えます。Oracle Reportsをコールする前に現行セッション・ラベルをデフォルトとして保存すると、Oracle ReportsではOracle Formsで使用中のものと確実に同じラベルで初期化されます。
構文
SA_SESSION.SAVE_DEFAULT_LABELS ( policy_name IN VARCHAR2);
パラメータ
表E-47 SA_SESSION.SAVE_DEFAULT_LABELSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーのラベルのデフォルトを保存します。
BEGIN SA_SESSION.SAVE_DEFAULT_LABELS ( policy_name => 'hr_ols_pol'); END; /
ノート:
SA_SESSION.SAVE_DEFAULT_LABELS
プロシージャは、管理者が確立した設定をオーバーライドします。
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.18 SA_SESSION.SET_ACCESS_PROFILE
SA_SESSION.SET_ACCESS_PROFILE
プロシージャは、データベース・セッションのOracle Label Securityでの認可と権限を、指定したユーザーの認証と権限に設定します。
元のユーザーは引き続きPROFILE_ACCESS
権限を持つことに注意してください。
SA_SESSION.SET_ACCESS_PROFILE
プロシージャを実行するユーザーは、PROFILE_ACCESS
権限を持つ必要があります。ログインしたデータベース・ユーザー(OracleユーザーID)は変わりません。そのユーザーには、指定のユーザーの認証と権限のみが想定されます。これに対して、Oracle Label Securityのユーザー名は変更されます。
この管理プロシージャは、次のように様々なタスクに役立ちます。
-
SA_SESSION.SET_ACCESS_PROFILE
を使用すると、特定ユーザーの認証と権限の設定結果を確認できます。 -
アプリケーションがラベル付きデータにアクセスするには、プロキシ・アカウントをアプリケーション・ユーザーとして接続(その識別情報を想定)させる必要があります。プロキシ・アカウントは、
SA_SESSION.SET_ACCESS_PROFILE
権限を使用して、アプリケーション・ユーザーのかわりに操作できます。
構文
SA_SESSION.SET_ACCESS_PROFILE ( policy_name IN VARCHAR2 user_name IN VARCHAR2);
パラメータ
表E-48 SA_SESSION.SET_ACCESS_PROFILEのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
認可および権限を想定する必要があるユーザーの名前(通常、このポリシーに関連付けられてたユーザー)。このユーザーを検索するには、 |
例
次の例では、ユーザーpsmith
は、データベース・セッションに対するOracle Label Securityの認可と権限を持つことができるようになります。
BEGIN SA_SESSION.SET_ACCESS_PROFILE ( policy_name => 'hr_ols_pol', user_name => 'jjones'); END; /
親トピック: SA_SESSIONセッション管理PL/SQLパッケージ
E.5.19 SA_SESSION.SET_ROW_LABEL
SA_SESSION.SET_ROW_LABEL
プロシージャは、現行データベース・セッションのデフォルトの行ラベル値を設定します。
ラベルの区分とグループは、ユーザーが書込みアクセス権を持つセッション・ラベルの区分およびグループのサブセットであることが必要です。LABEL_DEFAULT
オプションが設定されている場合は、ユーザーがラベルを明示的に指定しなければ、この行ラベル値が挿入時に使用されます。
SA_SESSION.SET_ROW_LABEL
プロシージャを使用してデフォルトの行ラベル値を設定しない場合、この値はセッション・ラベルから自動的に導出されます。これには、セッション・ラベルのレベルと、ユーザーが書込みアクセス認可を持つセッション・ラベルの区分とグループのサブセットが含まれています。
セッション・ラベルに変更があると、行ラベルは自動的にリセットされます。たとえば、セッション・レベルをHIGHLY_SENSITIVE
からSENSITIVE
に変更すると、行ラベルのレベル・コンポーネントは自動的にSENSITIVE
に変更されます。
ユーザーは、独自に行ラベルを設定できますが、含めることができるのは次の要素のみです。
-
セッション・ラベルのレベル以下で、かつ、ユーザーの最小レベル以上のレベル。
-
ユーザーが書込みアクセス権を持つように認可されているセッション・ラベルからの、区分とグループのサブセット。
ユーザーが行ラベルに無効な値の設定を試みると、操作は許可されず、その行ラベル値は変更されません。
構文
SA_SESSION.SET_ROW_LABEL ( policy_name IN VARCHAR2, row_label IN VARCHAR2);
パラメータ
表E-49 SA_SESSION.SET_ROW_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
デフォルトの行ラベルとして設定する値 |
例
次の例では、hr_ols_pol
ポリシーの行ラベルを設定します。
BEGIN SA_SESSION.SET_ROW_LABEL ( policy_name => 'hr_ols_pol', label => 'HR'); END; /
E.6 SA_SYSDBAポリシー管理PL/SQLパッケージ
SA_SYSDBA
PL/SQLパッケージは、Oracle Label Securityポリシーを管理します。
- SA_SYSDBA PL/SQLパッケージについて
SA_SYSDBA
PL/SQLパッケージは、Oracle Label Securityポリシーを作成、変更、有効化、無効化および削除します。 - SA_SYSDBA.ALTER_POLICY
SA_SYSDBA.ALTER_POLICY
プロシージャは、ポリシーに関連付けられている列名を設定および変更します。 - SA_SYSDBA.CREATE_POLICY
SA_SYSDBA.CREATE_POLICY
プロシージャは、新規のOracle Label Securityポリシーを作成し、ポリシー固有の列名を定義して、デフォルト・ポリシー・オプションを指定します。 - SA_SYSDBA.DISABLE_POLICY
SA_SYSDBA.DISABLE_POLICY
プロシージャは、ポリシーをデータベースから削除せずにポリシーの強制をオフにします。 - SA_SYSDBA.DROP_POLICY
SA_SYSDBA.DROP_POLICY
プロシージャは、ポリシーとそれに関連付けられているユーザー・ラベルおよびデータ・ラベルをデータベースから削除します。 - SA_SYSDBA.ENABLE_POLICY
SA_SYSDBA.ENABLE_POLICY
プロシージャは、ポリシーで保護されている表およびスキーマに対するアクセス制御を強制します。
E.6.1 SA_SYSDBA PL/SQLパッケージについて
SA_SYSDBA
PL/SQLパッケージは、Oracle Label Securityポリシーを作成、変更、有効化、無効化および削除します。
このパッケージを使用するには、SA_SYSDBA
パッケージでのLBAC_DBA
ロールおよびEXECUTE
権限が付与されている必要があります。SA_SYSDBA
パッケージは実行者の権限パッケージなので、このパッケージを使用するには、事前に次のINHERIT PRIVILEGES
権限をユーザーSYS
に付与しておく必要があります。
GRANT INHERIT PRIVILEGES ON USER SYS TO LBACSYS;
この権限を付与する必要があるのはユーザーSYS
のみです。他のユーザーに付与する必要はありません。
親トピック: SA_SYSDBAポリシー管理PL/SQLパッケージ
E.6.2 SA_SYSDBA.ALTER_POLICY
SA_SYSDBA.ALTER_POLICY
プロシージャは、ポリシーに関連付けられている列名を設定および変更します。
SA_SYSDBA.ALTER_POLICY
は、どのユーザー表またはスキーマにも適用されていないポリシーの列名を変更するためにのみ使用できます。それ以外の場合は、このエラーが表示されます。
12474, 00000, "cannot change column name for a policy in use"
構文
SA_SYSDBA.ALTER_POLICY ( policy_name IN VARCHAR2, default_options IN VARCHAR2 DEFAULT NULL, column_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-50 SA_SYSDBA.ALTER_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ポリシーを適用し、表またはスキーマ固有のオプションを指定しない場合に使用するデフォルトの強制オプションを指定します。これには、施行オプションとラベル列を非表示にするオプションが含まれます。各オプションはカンマで区切ります。 デフォルトの強制オプションのリストは、「ポリシー強制オプションのカテゴリ」を参照してください。 |
|
ポリシーに関連付けられている列名を指定します。この列名を検索するには、 |
例
次の例では、異なるデフォルト・オプションのセットを使用するようにhr_ols_pol
ポリシーを更新します。列の名前は変更する必要がないため、column_name
パラメータは省略されます。
BEGIN SA_SYSDBA.ALTER_POLICY ( policy_name => 'hr_ols_pol', default_options => 'read_control, delete_control'); END; /
親トピック: SA_SYSDBAポリシー管理PL/SQLパッケージ
E.6.3 SA_SYSDBA.CREATE_POLICY
SA_SYSDBA.CREATE_POLICY
プロシージャは、新規のOracle Label Securityポリシーを作成し、ポリシー固有の列名を定義して、デフォルト・ポリシー・オプションを指定します。
ポリシーを作成すると、そのロールが作成され、ユーザーに付与されます。ロール名の形式は、policy_
DBA
です(たとえば、my_ols_pol_DBA
)。
構文
SA_SYSDBA.CREATE_POLICY ( policy_name IN VARCHAR2, column_name IN VARCHAR2 DEFAULT NULL, default_options IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-51 SA_SYSDBA.CREATE_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
データベース内で一意のポリシー名を指定します。 既存のポリシーのリストを検索するには、 |
|
ポリシーで保護されている表に追加する列の名前を指定します。 |
|
ポリシーを適用し、表またはスキーマ固有のオプションを指定しない場合に使用するデフォルト・オプションを指定します。これには、施行オプションとラベル列を非表示にするオプションが含まれます。各オプションはカンマで区切ります。 デフォルトの強制オプションのリストは、「ポリシー強制オプションのカテゴリ」を参照してください。 |
例
次の例では、デフォルト・オプションがREAD_CONTROL
およびWRITE_CONTROL
のポリシー・コンテナを作成します。WRITE_CONTROL
オプションは、INSERT_CONTROL
、UPDATE_CONTROL
およびDELETE_CONTROL
オプションを囲みます。
BEGIN SA_SYSDBA.CREATE_POLICY ( policy_name => 'hr_ols_pol', column_name => 'ols_col', default_options => 'read_control, write_control'); END; /
親トピック: SA_SYSDBAポリシー管理PL/SQLパッケージ
E.6.4 SA_SYSDBA.DISABLE_POLICY
SA_SYSDBA.DISABLE_POLICY
プロシージャは、ポリシーをデータベースから削除せずにポリシーの強制をオフにします。
それ以降のデータベースへのすべてのアクセスには、ポリシーは施行されません。
ポリシーを無効化すると、そのポリシーで保護されている表およびスキーマにはアクセス制御が施行されなくなります。管理者は、ポリシーが無効化されている間も、引き続き管理操作を実行できます。
ノート:
この機能はきわめて強力であり、慎重に使用する必要があります。ポリシーを無効化すると、データベースのすべての接続ユーザーが、通常はポリシーで保護されている全データにアクセスできるようになります。したがって、サイトではこの機能の使用に関するガイドラインを設定する必要があります。
通常は、データを管理するためにポリシーを無効化しないでください。ただし、管理者は、アプリケーションのデバッグ・タスクを実行するために、ポリシーを無効化することが必要となる場合があります。この場合は、データベースをシングル・ユーザー・モードで実行してください。たとえば、開発環境では、ポリシーをオンにせずにデータ処理操作を監視することが必要な場合があります。ポリシーを再び有効化すると、選択したすべての施行オプションも再び有効になります。
構文
SA_SYSDBA.DISABLE_POLICY ( policy_name IN VARCHAR2);
パラメータ
表E-52 SA_SYSDBA.DISABLE_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーおよびそのステータスを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーを無効化します。
EXEC SA_SYSDBA.DISABLE_POLICY ('hr_ols_pol');
親トピック: SA_SYSDBAポリシー管理PL/SQLパッケージ
E.6.5 SA_SYSDBA.DROP_POLICY
SA_SYSDBA.DROP_POLICY
プロシージャは、ポリシーとそれに関連付けられているユーザー・ラベルおよびデータ・ラベルをデータベースから削除します。
このプロシージャは、ポリシーおよびこれらの関連付けをシステム全体からパージします。オプションで、そのポリシーにより制御されているすべての表からラベル列を削除することもできます。ポリシーは、削除する前に無効化する必要はありません。
構文
SA_SYSDBA.DROP_POLICY ( policy_name IN VARCHAR2, drop_column BOOLEAN DEFAULT FALSE);
パラメータ
表E-53 SA_SYSDBA.DROP_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
削除するポリシーを指定します。既存のポリシーを検索するには、 |
|
保護されている表からポリシー列を削除する必要があることを示します( |
例
次の例では、hr_ols_pol
ポリシーを削除します。
EXEC SA_SYSDBA.DROP_POLICY ('hr_ols_pol');
親トピック: SA_SYSDBAポリシー管理PL/SQLパッケージ
E.6.6 SA_SYSDBA.ENABLE_POLICY
SA_SYSDBA.ENABLE_POLICY
プロシージャは、ポリシーで保護されている表およびスキーマに対するアクセス制御を強制します。
ポリシーは、作成時に自動的に有効化されます。作成または有効化した後は、ポリシーで保護されている表に対する以降のすべてのアクセスに対して、そのポリシーが強制されます。
構文
SA_SYSDBA.ENABLE_POLICY (policy_name IN VARCHAR2);
パラメータ
表E-54 SA_SYSDBA.ENABLE_POLICYのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーおよびそのステータスを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーを有効化します。
EXEC SA_SYSDBA.ENABLE_POLICY('hr_ols_pol');
親トピック: SA_SYSDBAポリシー管理PL/SQLパッケージ
E.7 SA_USER_ADMIN PL/SQLパッケージ
SA_USER_ADMIN
PL/SQLパッケージは、ユーザー・ラベルをラベル・コンポーネント別に管理します。
- SA_USER_ADMIN PL/SQLパッケージについて
SA_USER_ADMIN
PL/SQLパッケージは、区分、グループ、ユーザー・アクセス、ラベル、レベルおよび権限を構成します。 - SA_USER_ADMIN.ADD_COMPARTMENTS
SA_USER_ADMIN.ADD_COMPARTMENTS
プロシージャは、区分をユーザーの認可に追加し(割り当て)て、その区分について書込み権限と読取り権限を認可するかどうかを示します。 - SA_USER_ADMIN.ADD_GROUPS
SA_USER_ADMIN.ADD_GROUPS
プロシージャは、ユーザーにグループを追加し(割り当てて)、そのグループについて書込み権限と読取り権限を認可するかどうかを示します。 - SA_USER_ADMIN.ALTER_COMPARTMENTS
SA_USER_ADMIN.ALTER_COMPARTMENTS
プロシージャは、指定した各区分について、書込みアクセス、デフォルトのラベル・インジケータおよび行ラベル・インジケータを変更します。 - SA_USER_ADMIN.ALTER_GROUPS
SA_USER_ADMIN.ALTER_GROUPS
プロシージャは、指定したグループについて、書込みアクセス、デフォルトのラベル・インジケータおよび行ラベル・インジケータを変更します。 - SA_USER_ADMIN.DROP_ALL_COMPARTMENTS
SA_USER_ADMIN.DROP_ALL_COMPARTMENTS
プロシージャは、すべての区分をユーザーの認可から削除します。 - SA_USER_ADMIN.DROP_ALL_GROUPS
SA_USER_ADMIN.DROP_ALL_GROUPS
プロシージャは、すべてのグループをユーザーの認可から削除します。 - SA_USER_ADMIN.DROP_COMPARTMENTS
SA_USER_ADMIN.DROP_COMPARTMENTS
プロシージャは、指定した区分をユーザーの認可から削除します。 - SA_USER_ADMIN.DROP_GROUPS
SA_USER_ADMIN.DROP_GROUPS
プロシージャは、指定したグループをユーザーの認可から削除します。 - SA_USER_ADMIN.DROP_USER_ACCESS
SA_USER_ADMIN.DROP_USER_ACCESS
プロシージャは、指定したユーザーからOracle Label Securityのすべての認可と権限を削除します。 - SA_USER_ADMIN.SET_COMPARTMENTS
SA_USER_ADMIN.SET_COMPARTMENTS
プロシージャは、ユーザーに区分を割り当てて、そのユーザーのセッション・ラベルと行ラベルのデフォルト値を識別します。 - SA_USER_ADMIN.SET_DEFAULT_LABEL
SA_USER_ADMIN.SET_DEFAULT_LABEL
プロシージャは、ユーザーの初期セッション・ラベルを指定のラベルに設定します。 - SA_USER_ADMIN.SET_GROUPS
SA_USER_ADMIN.SET_GROUPS
プロシージャは、ユーザーにグループを割り当てて、そのユーザーのセッション・ラベルと行ラベルのデフォルト値を識別します。 - SA_USER_ADMIN.SET_LEVELS
SA_USER_ADMIN.SET_LEVELS
プロシージャは、ユーザーに最小レベルと最大レベルを割り当てて、そのユーザーのセッション・ラベルと行ラベルのデフォルト値を識別します。 - SA_USER_ADMIN.SET_PROG_PRIVS
SA_USER_ADMIN.SET_PROG_PRIVS
プロシージャは、プログラム・ユニットに対してポリシー固有の権限を設定します。 - SA_USER_ADMIN.SET_ROW_LABEL
SA_USER_ADMIN.SET_ROW_LABEL
プロシージャは、ユーザーの初期の行ラベルを指定のラベルに設定します。 - SA_USER_ADMIN.SET_USER_LABELS
SA_USER_ADMIN.SET_USER_LABELS
プロシージャは、個々のコンポーネントではなくラベル・セットを使用して、ユーザーのレベル、区分およびグループを設定します。 - SA_USER_ADMIN.SET_USER_PRIVS
SA_USER_ADMIN.SET_USER_PRIVS
プロシージャは、ユーザーに対してポリシー固有の権限を設定します。
E.7.1 SA_USER_ADMIN PL/SQLパッケージについて
SA_USER_ADMIN
PL/SQLパッケージは、区分、グループ、ユーザー・アクセス、ラベル、レベルおよび権限を構成します。
このパッケージを使用するには、SA_USER_ADMIN
パッケージでのpolicy_
DBA
ロール(たとえば、hr_ols_pol
ポリシーに対するロールとしてHR_OLS_POL_DBA
)、およびEXECUTE
権限が付与されている必要があります。
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.2 SA_USER_ADMIN.ADD_COMPARTMENTS
SA_USER_ADMIN.ADD_COMPARTMENTS
プロシージャは、区分をユーザーの認可に追加し(割り当て)て、その区分について書込み権限と読取り権限を認可するかどうかを示します。
このプロシージャが役立つのは、SA_USER_ADMIN.SET_COMPARTMENTS
プロシージャをユーザーに対してすでに使用しているが、その後に、追加の区分に対してこのユーザー認証を付与するか、または現行の区分のセットを更新することを決定した場合です。これを、SA_USER_ADMIN.SET_COMPARTMENTS
のかわりに使用することもできます。
構文
SA_USER_ADMIN.ADD_COMPARTMENTS ( policy_name IN VARCHAR2, user_name IN VARCHAR2, comps IN VARCHAR2, access_mode IN VARCHAR2 DEFAULT NULL, in_def IN VARCHAR2 DEFAULT NULL, in_row IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-55 SA_USER_ADMIN.ADD_COMPARTMENTSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ユーザー名を指定します。このユーザーは、新規ユーザー、またはこのポリシーの区分がすでに認可されたユーザーのいずれかです。既存のユーザーを検索するには、 |
|
短縮名のみによる、追加する区分のカンマ区切りのリストです。既存の区分を検索するには、 |
|
認可するアクセスのタイプを指定できる文字列値を含む、2つのパブリック変数の一方です。変数名、値および意味は次のとおりです。
|
|
指定した区分がデフォルト区分内にあることが必要かどうか(
|
|
指定した区分が行ラベル内にあることが必要かどうか(
|
例
次の例では、hr_ols_pol
ポリシーに区分を追加します。
BEGIN SA_USER_ADMIN.ADD_COMPARTMENTS ( policy_name => 'hr_ols_pol', user_name => 'jjones', comps => 'FIN', access_mode => SA_UTL.READ_ONLY, in_def => 'y', in_row => 'y'); END; /
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.3 SA_USER_ADMIN.ADD_GROUPS
SA_USER_ADMIN.ADD_GROUPS
プロシージャは、ユーザーにグループを追加し(割り当てて)、そのグループについて書込み権限と読取り権限を認可するかどうかを示します。
このプロシージャが役立つのは、SA_USER_ADMIN.SET_GROUPS
プロシージャをユーザーに対してすでに使用しているが、その後に、追加のグループに対してこのユーザー認証を付与するか、または現行のグループのセットを更新することを決定した場合です。これを、SA_USER_ADMIN.SET_GROUPS
のかわりに使用することもできます。
構文
SA_USER_ADMIN.ADD_GROUPS ( policy_name IN VARCHAR2, user_name IN VARCHAR2, groups IN VARCHAR2, access_mode IN VARCHAR2 DEFAULT NULL, in_def IN VARCHAR2 DEFAULT NULL, in_row IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-56 SA_USER_ADMIN.ADD_GROUPSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ユーザーを指定します。このユーザーは、新規ユーザー、またはこのポリシーのグループがすでに認可されたユーザーのいずれかです。既存のユーザーを検索するには、 |
|
短縮名のみによる、追加するグループのカンマ区切りのリストです。既存のグループのリストを検索するには、 |
|
認可するアクセスのタイプを指定できる文字列値を含む、2つのパブリック変数の一方です。変数名、値および意味は次のとおりです。
|
|
指定したグループがデフォルト・グループ内にあることが必要かどうか(
|
|
指定したグループが行ラベル内にあることが必要かどうか(
|
例
次の例では、hr_ols_pol
ポリシーに複数のグループを追加します。
BEGIN SA_USER_ADMIN.ADD_GROUPS ( policy_name => 'hr_ols_pol', user_name => 'jjones', groups => 'ER_FIN, SR_FIN, NR_FIN, WR_FIN', access_mode => SA_UTL.READ_WRITE, in_def => 'y', in_row => 'y'); END; /
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.4 SA_USER_ADMIN.ALTER_COMPARTMENTS
SA_USER_ADMIN.ALTER_COMPARTMENTS
プロシージャは、指定した各区分について、書込みアクセス、デフォルトのラベル・インジケータおよび行ラベル・インジケータを変更します。
構文
SA_USER_ADMIN.ALTER_COMPARTMENTS (
policy_name IN VARCHAR2,user_name IN VARCHAR2,
comps IN VARCHAR2,
access_mode IN VARCHAR2 DEFAULT NULL,
in_def IN VARCHAR2 DEFAULT NULL,
in_row I
N VARCHAR2 DEFAULT NULL);
パラメータ
表E-57 SA_USER_ADMIN.ALTER_COMPARTMENTSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
区分について認可されているユーザーを指定します。認可されたユーザーを検索するには、 |
|
短縮名のみを使用した、変更する区分のカンマ区切りのリストです。既存の区分を検索するには、 |
|
認可するアクセスのタイプを指定できる文字列値を含む、2つのパブリック変数の一方です。変数名、値および意味は次のとおりです。
|
|
指定した区分がデフォルト区分内にあることが必要かどうか(
|
|
指定した区分が行ラベル内にあることが必要かどうか(
|
例
次の例では、hr_ols_pol
ポリシーの区分を変更します。
BEGIN SA_USER_ADMIN.ALTER_COMPARTMENTS ( policy_name => 'hr_ols_pol', user_name => 'jjones', comps => 'FIN', access_mode => SA_UTL.READ_ONLY, in_def => 'y', in_row => 'y'); END; /
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.5 SA_USER_ADMIN.ALTER_GROUPS
SA_USER_ADMIN.ALTER_GROUPS
プロシージャは、指定したグループについて、書込みアクセス、デフォルトのラベル・インジケータおよび行ラベル・インジケータを変更します。
構文
SA_USER_ADMIN.ALTER_GROUPS ( policy_name IN VARCHAR2, user_name IN VARCHAR2, groups IN VARCHAR2, access_mode IN VARCHAR2 DEFAULT NULL, in_def IN VARCHAR2 DEFAULT NULL, in_row IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-58 SA_USER_ADMIN.ALTER_GROUPSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
グループについて認可されているユーザーを指定します。既存のユーザーを検索するには、 |
|
短縮名のみによる、変更するグループのカンマ区切りのリストです。既存のグループを検索するには、 |
|
認可するアクセスのタイプを指定できる文字列値を含む、2つのパブリック変数です。変数名、値および意味は次のとおりです。
|
|
指定したグループがデフォルト・グループ内にあることが必要かどうか(
|
|
指定したグループが行ラベル内にあることが必要かどうか((
|
例
次の例では、既存のグループのアクセス・モードを読取り専用に設定します。
BEGIN SA_USER_ADMIN.ALTER_GROUPS ( policy_name => 'hr_ols_pol', user_name => 'jjones', groups => 'ER', access_mode => SA_UTL.READ_ONLY); END; /
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.6 SA_USER_ADMIN.DROP_ALL_COMPARTMENTS
SA_USER_ADMIN.DROP_ALL_COMPARTMENTS
プロシージャは、すべての区分をユーザーの認証から削除します。
構文
SA_USER_ADMIN.DROP_ALL_COMPARTMENTS ( policy_name IN VARCHAR2, user_name IN VARCHAR2);
パラメータ
表E-59 SA_USER_ADMIN.DROP_ALL_COMPARTMENTSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
区分について認可されているユーザーを指定します。既存のユーザーを検索するには、 |
例
次の例では、ユーザーjjones
のhr_ols_pol
ポリシーのすべての区分を削除します。
BEGIN SA_USER_ADMIN.DROP_ALL_COMPARTMENTS ( policy_name => 'hr_ols_pol', user_name => 'jjones'); END; /
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.7 SA_USER_ADMIN.DROP_ALL_GROUPS
SA_USER_ADMIN.DROP_ALL_GROUPS
プロシージャは、すべてのグループをユーザーの認証から削除します。
構文
SA_USER_ADMIN.DROP_ALL_GROUPS ( policy_name IN VARCHAR2, user_name IN VARCHAR2);
パラメータ
表E-60 SA_USER_ADMIN.DROP_ALL_GROUPSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
グループについて認可されているユーザーを指定します。既存のユーザーを検索するには、 |
例
次の例では、ユーザーjjones
のhr_ols_pol
ポリシーからすべてのグループを削除します。
BEGIN SA_USER_ADMIN.DROP_ALL_GROUPS ( policy_name => 'hr_ols_pol', user_name => 'jjones'); END; /
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.8 SA_USER_ADMIN.DROP_COMPARTMENTS
SA_USER_ADMIN.DROP_COMPARTMENTS
プロシージャは、指定した区分をユーザーの認可から削除します。
構文
SA_USER_ADMIN.DROP_COMPARTMENTS ( policy_name IN VARCHAR2, user_name IN VARCHAR2, comps IN VARCHAR2);
パラメータ
表E-61 SA_USER_ADMIN.DROP_COMPARTMENTSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
区分について認可されているユーザーを指定します。既存のユーザーを検索するには、 |
|
削除する区分のカンマ区切りのリストです。このポリシーのすべての区分を検索するには、 |
例
次の例では、hr_ols_pol
ポリシーからFINANCIAL
区分を削除します。
BEGIN SA_USER_ADMIN.DROP_COMPARTMENTS ( policy_name => 'hr_ols_pol', user_name => 'jjones', comps => 'HR'); END; /
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.9 SA_USER_ADMIN.DROP_GROUPS
SA_USER_ADMIN.DROP_GROUPS
プロシージャは、指定したグループをユーザーの認証から削除します。
構文
SA_USER_ADMIN.DROP_GROUPS ( policy_name IN VARCHAR2, user_name IN VARCHAR2, groups IN VARCHAR2);
パラメータ
表E-62 SA_USER_ADMIN.DROP_GROUPSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
グループについて認可されているユーザーを指定します。既存のユーザーを検索するには、 |
|
短縮名のみによる、削除するグループのカンマ区切りのリストです。グループのリストを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーからNR_FIN
グループを削除します。
BEGIN SA_USER_ADMIN.DROP_GROUPS ( policy_name => 'hr_ols_pol', user_name => 'jjones', groups => 'ER'); END; /
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.10 SA_USER_ADMIN.DROP_USER_ACCESS
SA_USER_ADMIN.DROP_USER_ACCESS
プロシージャは、指定したユーザーからOracle Label Securityのすべての認可と権限を削除します。
構文
SA_USER_ADMIN.DROP_USER_ACCESS ( policy_name IN VARCHAR2, user_name IN VARCHAR2);
パラメータ
表E-63 SA_USER_ADMIN.DROP_USER_ACCESSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ユーザー名を指定します。このポリシーに関連付けられているすべてのユーザーを検索するには、 |
例
次の例では、hr_ols_pol
ポリシーに対するユーザーjjones
の認可を削除します。
BEGIN SA_USER_ADMIN.DROP_USER_ACCESS ( policy_name => 'hr_ols_pol', user_name => 'jjones'); END; /
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.11 SA_USER_ADMIN.SET_COMPARTMENTS
SA_USER_ADMIN.SET_COMPARTMENTS
プロシージャは、ユーザーに区分を割り当てて、そのユーザーのセッション・ラベルと行ラベルのデフォルト値を識別します。
区分を設定した後で、SA_USER_ADMIN.ADD_COMPARTMENTS
プロシージャを使用して追加の区分を構成できます。(「SA_USER_ADMIN.ADD_COMPARTMENTS」を参照。)
レベルが設定されているユーザーのみが、認可された区分を確立できます。
書込み区分を指定する場合は、読取り区分のサブセットにする必要があります。(書込み区分は、ユーザーが書込みアクセス権を必要とする区分です。)
構文
SA_USER_ADMIN.SET_COMPARTMENTS ( policy_name IN VARCHAR2, user_name IN VARCHAR2, read_comps IN VARCHAR2, write_comps IN VARCHAR2 DEFAULT NULL, def_comps IN VARCHAR2 DEFAULT NULL, row_comps IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-64 SA_USER_ADMIN.SET_COMPARTMENTSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
区分を割り当てるユーザー名を指定します。 |
|
短縮名のみによる、読取りアクセスが認可されている区分のカンマ区切りのリストです。 すべての区分を検索するには、 |
|
短縮名のみによる、書込みアクセスが認可されている区分のカンマ区切りのリストです( |
|
短縮名のみで、デフォルトの区分を指定します。この区分は |
|
短縮名のみで、行の区分を指定します。この区分は、 |
例
次の例では、hr_ols_pol
ポリシーの区分を設定します。
BEGIN SA_USER_ADMIN.SET_COMPARTMENTS ( policy_name => 'hr_ols_pol', user_name => 'jjones', read_comps => 'FIN', write_comps => 'FIN', def_comps => 'FIN', row_comps => 'FIN'); END; /
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.12 SA_USER_ADMIN.SET_DEFAULT_LABEL
SA_USER_ADMIN.SET_DEFAULT_LABEL
プロシージャは、ユーザーの初期セッション・ラベルを指定のラベルに設定します。
行ラベルが新規の書込みラベルで支配されていれば、セッション・ラベルを次のように設定できます。
-
各自の最大ラベル以下で、かつ各自の最小ラベル以上のレベルに設定する。
-
認可された区分リストにある区分を含むように設定する。
-
認可されたグループ・リストにあるグループを含むように設定する。(認可グループのサブグループは、認可リストに暗黙的に含まれます。)
行ラベルは、セッション・ラベルのリセットによって得られる新規の書込みラベルで支配される必要があります。この条件に該当しない場合は、SET_DEFAULT_LABEL
プロシージャが失敗します。
たとえば、現行の行ラベルがS:A,B
で、両方の区分への書込みアクセス権を持っているとします。新規のデフォルト・ラベルをC:A,B
に設定する操作を試みると、SET_LABEL
プロシージャは失敗します。これは、新規の書込みラベルはC:A,B
となり、現行の行ラベルを支配しないためです。
この場合にセッション・ラベルを正常にリセットするには、最初に行ラベルをリセット後のセッション・ラベルで支配されるように下位の値にする必要があります。
構文
SA_USER_ADMIN.SET_DEFAULT_LABELS ( policy_name IN VARCHAR2, user_name IN VARCHAR2, def_label IN VARCHAR2);
パラメータ
表E-65 SA_USER_ADMIN.SET_DEFAULT_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ラベル・コンポーネントで認可されているユーザーを指定します。このユーザーを検索するには、 |
|
ユーザーのデフォルト・ラベルの初期化に使用するラベル文字列を指定します。このラベルには、読取りアクセスが認可されている区分とグループであれば、どれでも含めることができます。既存のラベルを検索するには、 |
例
次の例では、ユーザーjjones
のhr_ols_pol
のデフォルト・ラベルを設定します。
BEGIN SA_USER_ADMIN.SET_DEFAULT_LABEL ( policy_name => 'hr_ols_pol', user_name => 'jjones', def_label => 'HS'); END; /
E.7.13 SA_USER_ADMIN.SET_GROUPS
SA_USER_ADMIN.SET_GROUPS
プロシージャは、ユーザーにグループを割り当てて、そのユーザーのセッション・ラベルと行ラベルのデフォルト値を識別します。
レベルが設定されているユーザーのみが、認可されたグループを確立できます。DBA_SA_USER_LEVELS
データ・ディクショナリ・ビューを問い合せることで、ユーザーのレベル認可に関する情報を検索できます。
構文
SA_USER_ADMIN.SET_GROUPS (policy_name IN VARCHAR2, user_name IN VARCHAR2, read_groups IN VARCHAR2, write_groups IN VARCHAR2 DEFAULT NULL, def_group IN VARCHAR2 DEFAULT NULL, row_groups IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-66 SA_USER_ADMIN.SET_GROUPSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ユーザー名を指定します。このユーザーはグループ認可の初回ユーザーですが、そのユーザーはすでにレベルが認可されている必要があります。レベルについて認可されているユーザーを検索するには、 |
|
短縮名のみによる、読取りが認可されているグループのカンマ区切りのリストです。 既存のグループを検索するには、 |
|
短縮名のみによる、書込みが認可されているグループのカンマ区切りのリストです。これは、 |
|
短縮名のみで、デフォルトのグループを指定します。これは、 |
|
短縮名のみで、行のグループを指定します。これは、 |
例
次の例では、hr_ols_pol
ポリシーのグループを定義します。
BEGIN SA_USER_ADMIN.SET_GROUPS ( policy_name => 'hr_ols_pol', user_name => 'jjones', read_groups => 'ER_FIN', write_groups => 'ER_FIN', def_groups => 'ER_FIN', row_groups => 'ER_FIN'); END; /
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.14 SA_USER_ADMIN.SET_LEVELS
SA_USER_ADMIN.SET_LEVELS
プロシージャは、ユーザーに最小レベルと最大レベルを割り当てて、そのユーザーのセッション・ラベルと行ラベルのデフォルト値を識別します。
構文
SA_USER_ADMIN.SET_LEVELS (policy_name IN VARCHAR2, user_name IN VARCHAR2, max_level IN VARCHAR2, min_level IN VARCHAR2 DEFAULT NULL, def_level IN VARCHAR2 DEFAULT NULL, row_level IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-67 SA_USER_ADMIN.SET_LEVELSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ユーザー名を指定します。このプロシージャを実行する場合に、このユーザーはOracle Label Securityの認可を持っている必要はありません。 |
|
短縮名のみによる、読取りアクセスと書込みアクセスの最上位レベルです。 既存のレベルを検索するには、 |
|
短縮名のみによる、書込みアクセスの最下位レベルです。 |
|
デフォルト・レベル(最小レベル以上、かつ最大レベル以下)を指定します。短縮名のみを使用します。 |
|
行レベル(最小レベル以上、かつデフォルト・レベル以下)を指定します。短縮名のみを使用します。 |
例
次の例では、hr_ols_pol
ポリシーのレベルを設定します。
BEGIN SA_USER_ADMIN.SET_LEVELS ( policy_name => 'hr_ols_pol', user_name => 'jjones', max_level => 'PUB', min_level => 'HS'); END; /
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.15 SA_USER_ADMIN.SET_PROG_PRIVS
SA_USER_ADMIN.SET_PROG_PRIVS
プロシージャは、プログラム・ユニットに対してポリシー固有の権限を設定します。
privileges
パラメータがNULL
の場合は、ポリシーに対するプログラム・ユニットの権限が削除されます。
ストアド・プログラム・ユニットに権限を付与するには、policy
_DBA
ロールと、SA_USER_ADMIN.SA_USER_ADMIN
パッケージに対するEXECUTE
権限が必要です。SA_USER_ADMIN
パッケージまたはOracle Enterprise Managerのいずれかを使用して、Oracle Label Securityの権限を管理できます。
構文
SA_USER_ADMIN.SET_PROG_PRIVS ( policy_name IN VARCHAR2, schema_name IN VARCHAR2, program_unit_name IN VARCHAR2, privileges IN VARCHAR2);
パラメータ
表E-68 SA_USER_ADMIN.SET_PROG_PRIVSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
プログラム・ユニットを含むスキーマの名前です。 |
|
権限を付与するプログラム・ユニットを指定します。 |
|
カンマで区切ったポリシー固有の権限の文字列です。権限を 付与できる権限のリストは、「ポリシーのユーザーおよびトラステッド・プログラム・ユニットへの権限の付与について」を参照してください。 |
例
次の例では、SUM_PURCHASES
ファンクションにREAD
権限を付与します(「例: トラステッド・ストアド・プログラム・ユニット」を参照)。
BEGIN SA_USER_ADMIN.SET_PROG_PRIVS ( policy_name => 'hr_ols_pol', schema_name => 'HR', program_unit_name => 'sum_purchases', privileges => 'READ'); END; /
check_emp_hours
プロシージャがコールされると、現行ユーザーのOracle Label Securityの権限に加えてREAD
権限で実行されます。このテクニックを使用すると、ユーザーには、個々の従業員がかかった時間を知らせずに、従業員がかかった合計時間の値を検索するように許可できます。
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.16 SA_USER_ADMIN.SET_ROW_LABEL
SA_USER_ADMIN.SET_ROW_LABEL
プロシージャは、ユーザーの初期の行ラベルを指定のラベルに設定します。
ユーザーは、独自に行ラベルを設定できますが、含めることができるのは次の要素のみです。
-
セッション・ラベルのレベル以下で、かつ、ユーザーの最小レベル以上のレベル。
-
ユーザーが書込みアクセス権を持つように認可されているセッション・ラベルからの、区分とグループのサブセット。
ユーザーが行ラベルに無効な値の設定を試みると、操作は許可されず、その行ラベル値は変更されません。
構文
SA_USER_ADMIN.SET_ROW_LABEL ( policy_name IN VARCHAR2, user_name IN VARCHAR2, row_label IN VARCHAR2);
パラメータ
表E-69 SA_USER_ADMIN.SET_ROW_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ユーザー名を指定します。このユーザーは、十分な区分、グループおよびレベル認可を持っている必要があります。このユーザーを検索するには、 |
|
ユーザーの行ラベルの初期化に使用するラベル文字列を指定します。ラベルには、書込みアクセスが認可されるデフォルト・ラベルからの区分とグループのみを含める必要があります。既存の区分およびグループを検索するには、 |
例
次の例では、ユーザーjjones
のhr_ols_pol
ポリシーの行ラベルを設定します。
BEGIN SA_USER_ADMIN.SET_ROW_LABEL ( policy_name => 'hr_ols_pol', user_name => 'jjones', row_label => 'HS'); END; /
親トピック: SA_USER_ADMIN PL/SQLパッケージ
E.7.17 SA_USER_ADMIN.SET_USER_LABELS
SA_USER_ADMIN.SET_USER_LABELS
プロシージャは、個々のコンポーネントではなくラベル・セットを使用して、ユーザーのレベル、区分およびグループを設定します。
構文
SA_USER_ADMIN.SET_USER_LABELS ( policy_name IN VARCHAR2, user_name IN VARCHAR2, max_read_label IN VARCHAR2, max_write_label IN VARCHAR2 DEFAULT NULL, min_write_label IN VARCHAR2 DEFAULT NULL, def_label IN VARCHAR2 DEFAULT NULL, row_label IN VARCHAR2 DEFAULT NULL);
パラメータ
表E-70 SA_USER_ADMIN.SET_USER_LABELSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ユーザー名を指定します。ユーザーは、既存のデータベース・ユーザー、Real Application Securityユーザー、またはOracle Internet Directoryに存在する任意の名前付きユーザーです。このプロシージャを実行する場合、このユーザーにはOracle Label Securityの認可は必要ありません。 |
|
ユーザーが認可される最大読取りラベルの初期化に使用するラベル文字列を指定します。この文字列は、ユーザーの最大レベル、読取りアクセスが認可される区分およびグループで構成されます。 これらの設定に関する情報を検索するには、 |
|
ユーザーが認可される最大書込みラベルの初期化に使用するラベル文字列を指定します。この文字列は、ユーザーの最大レベル、書込みアクセスが認可される区分およびグループで構成されます。 |
|
ユーザーが認可される最小書込みラベルの初期化に使用するラベル文字列を指定します。この文字列にはレベルのみが含まれ、区分やグループは含まれません。 |
|
レベル、区分、グループなど、ユーザーのセッション・ラベルの初期化に使用するラベル文字列( |
|
プログラムの行ラベルの初期化に使用するラベル文字列を指定します。この文字列には、レベル、区分およびグループ、つまり |
例
次の例では、ユーザーjjones
のhr_ols_pol
ポリシーのユーザー・ラベルを設定します。
BEGIN SA_USER_ADMIN.SET_USER_LABELS ( policy_name => 'hr_ols_pol', user_name => 'jjones', max_read_label => 'HS:FIN', max_write_label => 'HS', def_label => 'HS', row_label => 'HS'); END; /
次の例では、Oracle Database Real Application SecurityユーザーXSUSER1
のXSOLSPOL1
ポリシーにユーザー・ラベルを設定します。次の例を実行するには、LBACSYS
という名前の管理ユーザーであるか、LBAC_DBA
データベース・ロールとEXECUTE
権限が付与されているか、またはXSOLSPOL1_DBA
ロールとSA_USER_ADMIN
パッケージに対するEXECUTE
権限が付与されている必要があります。
EXEC SA_USER_ADMIN.SET_USER_LABELS('XSOLSPOL1', 'XSUSER1',‘MID','MID');
ここでは次のように指定します。
-
XSOLSPOL1
は、既存のOLSポリシーの名前です。 -
XSUSER1
は、既存のOracle Database Real Application Securityユーザーの名前です。 -
MID
は、max_read_label
の値です。 -
MID
は、max_write_label
の値です。
E.7.18 SA_USER_ADMIN.SET_USER_PRIVS
SA_USER_ADMIN.SET_USER_PRIVS
プロシージャは、ユーザーに対してポリシー固有の権限を設定します。
これらの権限は、次回にユーザーがデータベースにログインするまで有効になりません。既存の権限は、すべて新しい権限セットで置き換えられます。権限パラメータの値がNULL
の場合は、そのユーザーのポリシーに対する権限が削除されます。
ユーザーにポリシー権限を割り当てるには、SA_USER_ADMIN
パッケージに対するEXECUTE
権限を持ち、policy_
DBA
ロールを付与されている必要があります。
構文
SA_USER_ADMIN.SET_USER_PRIVS ( policy_name IN VARCHAR2, user_name IN VARCHAR2, privileges IN VARCHAR2);
パラメータ
表E-71 SA_USER_ADMIN.SET_USER_PRIVSのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
権限を付与するユーザーの名前です。ユーザーは、既存のデータベース・ユーザー、Real Application Securityユーザー、またはOracle Internet Directoryに存在する任意の名前付きユーザーです。このユーザーは、ポリシー・レベル、区分およびグループについてすでに認可されている必要があります。このユーザーを検索するには、 |
|
カンマで区切ったポリシー固有の権限の文字列です。付与できる権限のリストは、「ポリシーのユーザーおよびトラステッド・プログラム・ユニットへの権限の付与について」を参照してください。 |
例
次の例では、ユーザーjgodfrey
に、hr_ols_pol
ポリシー設定に対する完全な権限を付与します。
BEGIN SA_USER_ADMIN.SET_USER_PRIVS ( policy_name => 'hr_ols_pol', user_name => 'jgodfrey', privileges => 'FULL'); END; /
次の例では、Oracle Database Real Application SecurityユーザーXSUSER1
に、Oracle Label SecurityポリシーXSOLSPOL1
に対するREAD
権限を付与します。次の例を実行するには、LBACSYS
という名前の管理ユーザーであるか、LBAC_DBA
データベース・ロールとEXECUTE
権限が付与されているか、またはXSOLSPOL1_DBA
ロールとSA_USER_ADMIN
パッケージに対するEXECUTE
権限が付与されている必要があります。
EXEC SA_USER_ADMIN.SET_USER_PRIVS('XSOLSPOL1', 'XSUSER1','READ');
ここでは次のように指定します。
-
XSOLSPOL1
は、既存のOLSポリシーの名前です。 -
XSUSER1
は、既存のOracle Database Real Application Securityユーザーの名前です。 -
READ
は、OLSポリシーXSOLSPOL1
内のXSUSER1
に付与される権限です。
E.8 SA_UTL PL/SQLユーティリティのファンクションおよびプロシージャ
SA_UTL
PL/SQLパッケージには、PL/SQLプログラムで使用されるユーティリティ・ファンクションおよびプロシージャが含まれています。
- SA_UTL PL/SQLパッケージについて
SA_UTL
PL/SQLパッケージ・ユーティリティ・ファンクションでは、ユーザー権限やラベル情報などの値が戻されます。 - SA_UTL.CHECK_LABEL_CHANGE
SA_UTL.CHECK_LABEL_CHANGE
ファンクションは、ユーザーがポリシーで保護されている表の行に対するデータ・ラベルを変更できるかどうかをチェックします。 - SA_UTL.CHECK_READ
SA_UTL.CHECK_READ
ファンクションは、ユーザーがポリシーで保護されている表の行を読み取ることができるかどうかをチェックします。 - SA_UTL.CHECK_WRITE
SA_UTL.CHECK_WRITE
ファンクションは、ユーザーがポリシーで保護されている表の行データの挿入、更新または削除を実行できるかどうかをチェックします。 - SA_UTL.DATA_LABEL
SA_UTL.DATA_LABEL
ファンクションは、ラベルがデータ・ラベルの場合はTRUE
を戻します。 - SA_UTL.GREATEST_LBOUND
SA_UTL.GREATEST_LBOUND
ファンクションは、2つのラベルの引数の最大の下限であるラベルを戻します。 - SA_UTL.LEAST_UBOUND
SA_UTL.LEAST_UBOUND
ファンクションは、ラベルの引数の最小の上限であるラベルを戻します。 - SA_UTL.NUMERIC_LABEL
SA_UTL.NUMERIC_LABEL
ファンクションは、現行のセッション・ラベルを戻します。 - SA_UTL.NUMERIC_ROW_LABEL
SA_UTL.NUMERIC_ROW_LABEL
ファンクションは、現行の行ラベルを戻します。 - SA_UTL.SET_LABEL
SA_UTL.SET_LABEL
プロシージャは、現行データベース・セッションのラベルを設定します。 - SA_UTL.SET_ROW_LABEL
SA_UTL.SET_ROW_LABEL
プロシージャは、現行データベース・セッションの行ラベルを設定します。
E.8.1 SA_UTL PL/SQLパッケージについて
SA_UTL
PL/SQLパッケージ・ユーティリティ・ファンクションでは、ユーザー権限やラベル情報などの値が戻されます。
これらのプログラムは、セッション・セキュリティ属性の現在の値に関する情報を数値のラベル値として戻します。これらは主に、トラステッド・ストアド・プログラム・ユニットで使用されます。このパッケージを使用するために特別な権限は必要ありません。
関連項目
E.8.2 SA_UTL.CHECK_LABEL_CHANGE
SA_UTL.CHECK_LABEL_CHANGE
ファンクションは、ユーザーがポリシーで保護されている表の行に対するデータ・ラベルを変更できるかどうかをチェックします。
ユーザーがデータ・ラベルを変更できる場合、このファンクションは1
を戻します。ユーザーがデータ・ラベルを変更できない場合、これは0
を戻します。入力値は、ポリシー名、現在のデータ・ラベルおよび新しいデータ・ラベルです。
構文
SA_UTL.CHECK_LABEL_CHANGE ( policy_name IN VARCHAR2, current_label IN NUMBER, new_label IN NUMBER) RETURN NUMBER;
ノート:
表にデータを書き込むには、その表に対する更新権限を持っている必要があります。
パラメータ
表E-72 SA_UTL.CHECK_LABEL_CHANGEのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
ラベルの現在の値です。既存のラベル値を検索するには、 |
|
ラベルの新しい値です。 |
例
次の例では、ユーザーがポリシーで保護されている行のデータ・ラベルを変更できるかどうかを示します。
SET SERVEROUTPUT ON BEGIN IF SA_UTL.CHECK_LABEL_CHANGE('hr_ols_pol',2000, 2200) = 1 THEN DBMS_OUTPUT.PUT_LINE('Users can chagne data labels in policy-protected rows.'); ELSE DBMS_OUTPUT.PUT_LINE('Users cannot change data labels in policy-protected rows.'); END IF; END; /
E.8.3 SA_UTL.CHECK_READ
SA_UTL.CHECK_READ
ファンクションは、ユーザーがポリシーで保護されている表の行を読み取ることができるかどうかをチェックします。
ユーザーが表の行を読み取ることができる場合、このファンクションは1
を戻します。ユーザーが表の行を読み取ることができない場合、これは0
を戻します。
ノート:
表のデータを読み取るには、ユーザーは、その表に対するSELECT
権限を持っている必要があります。
構文
SA_UTL.CHECK_READ ( policy_name IN VARCHAR2, label IN NUMBER) RETURN NUMBER;
パラメータ
表E-73 SA_UTL.CHECK_READのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
チェックするラベルです。既存のラベル値を検索するには、 |
例
次の例では、ユーザーがポリシーで保護されている行を読み取ることができるかどうかを示します。
SET SERVEROUTPUT ON BEGIN IF SA_UTL.CHECK_READ('hr_ols_pol',2000) = 1 THEN DBMS_OUTPUT.PUT_LINE('Users can read policy-protected rows.'); ELSE DBMS_OUTPUT.PUT_LINE('Users cannot read policy-protected rows.'); END IF; END; /
E.8.4 SA_UTL.CHECK_WRITE
SA_UTL.CHECK_WRITE
ファンクションは、ユーザーがポリシーで保護されている表の行データの挿入、更新または削除を実行できるかどうかをチェックします。
表にデータを書き込むには、ユーザーは、その表に対するUPDATE
権限を持っている必要があります。ユーザーが表の行に書き込むことができる場合、このファンクションは1
を戻します。ユーザーが表の行に書き込むことができない場合、これは0
を戻します。入力値はポリシー名と行のデータ・ラベルです。
構文
SA_UTL.CHECK_WRITE ( policy_name IN VARCHAR2, label IN NUMBER) RETURN NUMBER;
パラメータ
表E-74 SA_UTL.CHECK_WRITEのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
チェックするラベルです。既存のラベル値を検索するには、 |
例
次の例では、ユーザーがポリシーで保護されている行に書き込むことができるかどうかを示します。
SET SERVEROUTPUT ON BEGIN IF SA_UTL.CHECK_WRITE('hr_ols_pol',2000) = 1 THEN DBMS_OUTPUT.PUT_LINE('Users can write to policy-protected rows.'); ELSE DBMS_OUTPUT.PUT_LINE('Users cannot write to policy-protected rows.'); END IF; END; /
E.8.5 SA_UTL.DATA_LABEL
SA_UTL.DATA_LABEL
ファンクションは、ラベルがデータ・ラベルの場合はTRUE
を戻します。
構文
SA_UTL.DATA_LABEL( label IN NUMBER) RETURN BOOLEAN;
パラメータ
表E-75 SA_UTL.DATA_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
チェックするラベルです。既存のラベル値を検索するには、 |
例
次の例では、ラベル2000
がデータ・ラベルであるかどうかを示します。
SET SERVEROUTPUT ON BEGIN IF SA_UTL.DATA_LABEL(2000) THEN DBMS_OUTPUT.PUT_LINE('Label 2000 is a data label.'); ELSE DBMS_OUTPUT.PUT_LINE('Label 2000 is not a data label.'); END IF; END; /
E.8.6 SA_UTL.GREATEST_LBOUND
SA_UTL.GREATEST_LBOUND
ファンクションは、2つのラベルの引数の最大の下限であるラベルを戻します。
構文
SA_UTL.GREATEST_LBOUND ( label1 IN NUMBER, label2 IN NUMBER) RETURN NUMBER;
パラメータ
表E-76 SA_UTL.GREATEST_LBOUNDのパラメータ
パラメータ | 説明 |
---|---|
|
確認する最初のラベル。既存のラベル値を検索するには、 |
|
確認する2番目のラベル。 |
例
次の例では、既存のラベル・タグ3110
と3111
を比較しています。
SELECT SA_UTL.GREATEST_LBOUND(3110,3111) FROM DUAL; SA_UTL.GREATEST_LBOUND(3110,3111) --------------------------------- 3111
E.8.7 SA_UTL.LEAST_UBOUND
SA_UTL.LEAST_UBOUND
ファンクションは、ラベルの引数の最小の上限であるラベルを戻します。
構文
SA_UTL.LEAST_UBOUND ( label1 IN NUMBER, label2 IN NUMBER) RETURN NUMBER;
パラメータ
表E-77 SA_UTL.LEAST_UBOUNDのパラメータ
パラメータ | 説明 |
---|---|
|
確認する最初のラベル。既存のラベル値を検索するには、 |
|
確認する2番目のラベル。 |
例
次の例では、既存のラベル3110
と3111
を比較しています。
SELECT SA_UTL.LEAST_UBOUND(3110,3111) FROM DUAL; SA_UTL.LEAST_UOUND(3110,3111) ----------------------------- 3110
関連項目:
「ラベルの上限と下限の決定」。前述のファンクションはそのトピックで説明したファンクションと同じですが、文字列ではなく番号を戻します。
E.8.8 SA_UTL.NUMERIC_LABEL
SA_UTL.NUMERIC_LABEL
ファンクションは、現行のセッション・ラベルを戻します。
このファンクションは、入力パラメータとしてポリシー名を取り、NUMBER
値を戻します。
構文
SA_UTL.NUMERIC_LABEL ( policy_name) RETURN NUMBER;
パラメータ
表E-78 SA_UTL.NUMERIC_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、現在データベース・インスタンスに接続されているユーザーのセッション数値ラベルを戻します。
SET SERVEROUTPUT ON DECLARE num_label number; BEGIN num_label := SA_UTL.NUMERIC_LABEL('hr_ols_pol'); DBMS_OUTPUT.PUT_LINE('Numeric label: '||num_label); END; /
E.8.9 SA_UTL.NUMERIC_ROW_LABEL
SA_UTL.NUMERIC_ROW_LABEL
ファンクションは、現行の行ラベルを戻します。
このファンクションは、入力パラメータとしてポリシー名を取り、NUMBER
値を戻します
構文
SA_UTL.NUMERIC_ROW_LABEL ( policy_name) RETURN NUMBER;
パラメータ
表E-79 SA_UTL.NUMERIC_ROW_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
例
次の例では、現在データベース・インスタンスに接続されているユーザーのセッション数値行ラベルを戻します。
SET SERVEROUTPUT ON DECLARE num_row number; BEGIN num_row := SA_UTL.NUMERIC_ROW_LABEL('hr_ols_pol'); DBMS_OUTPUT.PUT_LINE('Numeric row label: '||num_row); END; /
E.8.10 SA_UTL.SET_LABEL
SA_UTL.SET_LABEL
プロシージャは、現行データベース・セッションのラベルを設定します。
セッションの書込みラベルと行ラベルは、書込みアクセスが認可されているラベルの区分とグループのサブセットに設定されます。
構文
SA_UTL.SET_LABEL ( policy_name IN VARCHAR2, label IN LBAC_LABEL);
パラメータ
表E-80 SA_UTL.SET_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
セッション・ラベルとして設定するラベル。既存のラベル値を検索するには、 ラベルの文字形式を |
例
次の例では、hr_ols_pol
ポリシーのラベルを設定します。
BEGIN SA_UTL.SET_LABEL ( policy_name => 'hr_ols_pol', label => to_lbac_data_label('hr_ols_pol','hs:pii')); END; /
E.8.11 SA_UTL.SET_ROW_LABEL
SA_UTL.SET_ROW_LABEL
プロシージャは、現行データベース・セッションの行ラベルを設定します。
ラベルの区分とグループは、書込みアクセスが認可されているセッション・ラベルの区分およびグループのサブセットであることが必要です。
構文
SA_UTL.SET_ROW_LABEL ( policy_name IN VARCHAR2, label IN BINARY_INTEGER);
パラメータ
表E-81 SA_UTL.SET_ROW_LABELのパラメータ
パラメータ | 説明 |
---|---|
|
ポリシーを指定します。既存のポリシーを検索するには、 |
|
セッションのデフォルト行ラベルとして設定するラベルです。既存のラベル値を検索するには、 |
例
次の例では、hr_ols_pol
ポリシーの行ラベルを1111
に設定します。
BEGIN SA_UTL.SET_ROW_LABEL ( policy_name => 'hr_ols_pol', label => 1111); END; /