ALTER LOCKDOWN PROFILE

目的

ALTER LOCKDOWN PROFILE文を使用すると、PDBロックダウン・プロファイルを変更できます。マルチテナント環境でPDBロックダウン・プロファイルを使用して、プラガブル・データベース(PDB)のユーザー操作を制限できます。

CREATE LOCKDOWN PROFILE文を使用してロックダウン・プロファイルを作成した直後、そのプロファイルではすべてのユーザー操作が有効になっています。その後、ALTER LOCKDOWN PROFILE文を使用して、そのプロファイルで特定のユーザー操作を無効にできます。CDB、アプリケーション・コンテナまたはPDBにロックダウン・プロファイルが適用されている場合、ユーザーはそのプロファイルで無効になっている操作を実行できません。無効になっているユーザー操作のいずれかを再度有効にする場合は、ALTER LOCKDOWN PROFILE文を使用して有効にできます。

ALTER LOCKDOWN PROFILE文を使用すると、次の操作を無効または有効にできます。

  • 特定のデータベース機能に関連付けられているユーザー操作(lockdown_features句を使用して)

  • 特定のデータベース・オプションに関連付けられているユーザー操作(lockdown_options句を使用して)

  • 特定のSQL文の発行(lockdown_statements句を使用して)

関連項目:

前提条件

  • ALTER LOCKDOWN PROFILE文は、CDBルートまたはアプリケーション・ルートから発行する必要があります。

  • 文を発行するコンテナでALTER LOCKDOWN PROFILEシステム権限を持っている必要があります。

構文

alter_lockdown_profile::=

lockdown_features::=

lockdown_options::=

lockdown_statements::=

statement_clauses::=

clause_options::=

セマンティクス

profile_name

変更するPDBロックダウン・プロファイルの名前を指定します。

DBA_LOCKDOWN_PROFILESデータ・ディクショナリ・ビューを問い合せて、既存のPDBロックダウン・プロファイルの名前を検索できます。

lockdown_features

この句を使用すると、特定のデータベース機能に関連付けられているユーザー操作を有効または無効にできます。

  • 指定した機能に対する制限を追加するには、DISABLEを指定します。ユーザーはプロファイルが適用されるPDBで、これらの操作の実行を制限されます。

  • 指定した機能に対する制限を削除するには、ENABLEを指定します。ユーザーはプロファイルが適用されるPDBで、これらの操作を実行することを許可されます。

  • どの機能について、操作を,無効または有効にするかを指定するには、featureを使用します。表11-1に、指定できる機能と、各機能に関連付けられている操作の説明を示します。表には、各機能の機能バンドルも示します。featureには、機能バンドル名を指定して、そのバンドル内のすべての機能のユーザー操作を無効または有効にすることも、個別の機能名を指定することもできます。機能バンドル名および機能名は、大文字と小文字を任意に組み合せて指定できます。

  • ALLを使用して、表に示されているすべての機能名を指定します。

  • ALL EXCEPTを使用して、指定した機能を除いて、表に示されているすべての機能名を指定します。

この句を指定しない場合、ENABLE ALLがデフォルトになります。

ノート:

  • Oracle TextのFILE_DATASTORE型は非推奨です。Oracle Database 20c以上で使用可能なDIRECTORY_DATASTORE索引タイプでFILE_DATASTORE索引を置き換えることをお薦めします。DIRECTORY_DATASTOREではディレクトリ・オブジェクトに基づいたファイル・アクセスが有効になるため、セキュリティが強化されます。

  • Oracle TextのURL_DATASTORE型は非推奨です。URL_DATASTORENETWORK_DATASTOREで置き換えることをお薦めします。これは、ACLを使用して特定のサーバーへのアクセスを制御します。

表11-1 PDBロックダウン・プロファイルの機能

機能バンドル 機能 操作

AWR_ACCESS

AWR_ACCESS

PDBによって、自動ワークロード・リポジトリ(AWR)スナップショットが手動または自動で取得されること

COMMON_SCHEMA_ACCESS

COMMON_USER_LOCAL_SCHEMA_ACCESS

共通ユーザーが、実行者の権限コード・ユニットを起動するか、またはPDB内の任意のローカル・ユーザーが所有するBEQUEATH CURRENT_USERビューにアクセスすること

COMMON_SCHEMA_ACCESS

LOCAL_USER_COMMON_SCHEMA_ACCESS

  • ANYシステム権限(たとえば、CREATE ANY TABLE)を持つローカル・ユーザーが、共通ユーザーのスキーマ内で、その権限が適用されるオブジェクトを作成したり、オブジェクトにアクセスすること。ノート: LOCAL_USER_COMMON_SCHEMA_ACCESS機能を無効にしても、SYSDBA権限または特定のオブジェクト権限を持つローカル・ユーザーが共通ユーザーのスキーマ内でオブジェクトを作成したり、オブジェクトにアクセスすることは禁止されません。そのため、そのような権限をローカル・ユーザーに付与しないことをお薦めします。

  • BECOME USERシステム権限を持つローカル・ユーザーが共通ユーザーになること。

  • ローカル・ユーザーがALTER USER文を発行して共通ユーザーを変更すること。

  • ローカル・ユーザーがプロキシ接続に共通ユーザーを使用すること。

COMMON_SCHEMA_ACCESS

SECURITY_POLICIES

ローカル・ユーザーが、共通オブジェクトに対して、次のような特定のセキュリティ・ポリシーを作成すること。

  • データ・リダクション

  • ファイングレイン監査(FGA)

  • Real Application Security (RAS)

  • Virtual Private Database(VPD)

CONNECTIONS

COMMON_USER_CONNECT

共通ユーザーがPDBに直接接続すること。この機能が無効になっている場合、PDBに接続するには、共通ユーザーはまずCDBルートに接続してから、ALTER SESSION SET CONTAINER文を使用して目的のPDBに切り替える必要があります。

CONNECTIONS

LOCAL_SYSOPER_RESTRICTED_MODE_CONNECT

SYSOPER権限を持つローカル・ユーザーが、RESTRICTEDモードでオープンしているPDBに接続すること

CTX_LOGGING

CTX_LOGGING

CTX_OUTPUT.START_LOGCTX_OUTPUT.START_QUERY_LOGなどのOracle Text PL/SQLプロシージャでのロギングの使用

JAVA

JAVA

Java全体。この機能が無効になっている場合、Javaに依存するデータベースのすべてのオプションおよび機能が無効になります。

JAVA_RUNTIME

JAVA_RUNTIME

java.lang.RuntimePermissionを必要とする、Javaを介した操作

NETWORK_ACCESS

AQ_PROTOCOLS

HTTP、SMTP、OCIの通知を使用。

NETWORK_ACCESS

CTX_PROTOCOLS
  • Oracle Textデータストア型DIRECTORY_DATASTOREおよびNETWORK_DATASTOREにアクセスする操作。

    DIRECTORY_DATASTORE型にはDIRECTORYという属性があり、これは、索引付け対象のデータが属しているディレクトリ・オブジェクトです。この属性のデフォルト値はNULLです。

    DIRECTORY_DATASTORE型は、20cで非推奨になるFILE_DATASTORE型を置き換えます。

    NETWORK_DATASTORE型は、20cで非推奨になるURL_DATASTORE型を置き換えます。

    NETWORK_DATASTORE型は、アクセス制御リスト(ACL)に基づいてURLアクセスを提供する標準のデータベース・セキュリティ・モデルに準拠しており、HTTPおよびHTTPSプロトコルをサポートしています。

    URL_DATASTORE型はHTTPSをサポートしていませんでした。

  • イベントEVENT_INDEX_PRINT_TOKENおよびEVENT_OPT_PRINT_TOKENが、CTXロギングの一部としてトークンを出力すること

NETWORK_ACCESS

DBMS_DEBUG_JDWP

DBMS_DEBUG_JDWP PL/SQLパッケージの使用

NETWORK_ACCESS

UTL_HTTP

UTL_HTTP PL/SQLパッケージの使用

NETWORK_ACCESS

UTL_INADDR

UTL_INADDR PL/SQLパッケージの使用

NETWORK_ACCESS

UTL_SMTP

UTL_SMTP PL/SQLパッケージの使用

NETWORK_ACCESS

UTL_TCP

UTL_TCP PL/SQLパッケージの使用

NETWORK_ACCESS

XDB_PROTOCOLS

XDBを介したHTTP、FTPおよびその他のネットワーク・プロトコルの使用

OS_ACCESS

DROP_TABLESPACE_KEEP_DATAFILES

DROP TABLESPACE文内でINCLUDING CONTENTS AND DATAFILES句を指定しないで、PDB内の表領域を削除すること

OS_ACCESS

EXTERNAL_FILE_ACCESS

PDBに対してPATH_PREFIXが設定されていない場合に、PDBで外部ファイルまたはディレクトリ・オブジェクトを使用すること

OS_ACCESS

EXTERNAL_PROCEDURES

PDBで外部プロシージャ・エージェントextprocを使用すること

OS_ACCESS

FILE_TRANSFER

DBMS_FILE_TRANSFERパッケージの使用

OS_ACCESS

JAVA_OS_ACCESS

Javaからのjava.io.FilePermissionの使用

OS_ACCESS

LOB_FILE_ACCESS

BFILEおよびCFILEデータ型の使用

OS_ACCESS

TRACE_VIEW_ACCESS

次のトレース・ビューの使用:

  • [G]V$DIAG_OPT_TRACE_RECORDS

  • [G]V$DIAG_SQL_TRACE_RECORDS

  • [G]V$DIAG_TRACE_FILE_CONTENTS

  • V$DIAG_SESS_OPT_TRACE_RECORDS

  • V$DIAG_SESS_SQL_TRACE_RECORDS

OS_ACCESS

UTL_FILE

UTL_FILEの使用。この機能が無効になっている場合、データベースでUTL_FILE.FOPEN機能の使用がブロックされます。

lockdown_options

この句を使用すると、データベースの特定のオプションに関連付けられているユーザー操作を有効または無効にできます。

  • 指定したオプションに対するユーザー操作を無効にするには、DISABLEを指定します。ユーザーはプロファイルが適用されるPDBで、これらの操作の実行を制限されます。

  • 指定したオプションに対するユーザー操作を有効にするには、ENABLEを指定します。ユーザーはプロファイルが適用されるPDBで、これらの操作を実行することを許可されます。

  • optionには、次のデータベース・オプションを、大文字と小文字を任意に組み合せて指定できます。

    • DATABASE QUEUING – Oracle Database Advanced Queuingオプションに関連付けられているユーザー操作を表します。

    • PARTITIONING – Oracle Partitioningオプションに関連付けられているユーザー操作を表します。

  • ALLを使用して、前のリストに示されているすべてのオプションを指定します。

  • ALL EXCEPTを使用して、指定したオプションを除いて、前のリストに示されているすべてのオプションを指定します。

この句を指定しない場合、ENABLE OPTION ALLがデフォルトになります。

lockdown_statements

この句を使用すると、特定のSQL文の発行を無効または有効にできます。

  • 指定したSQL文の発行を無効にするには、DISABLEを指定します。ユーザーはプロファイルが適用されるPDBで、これらの文を発行することを制限されます。

  • 指定したSQL文の発行を有効にするには、ENABLEを指定します。ユーザーはプロファイルが適用されるPDBで、これらの文を発行することを許可されます。

  • SQL_statementには、次の文を、大文字と小文字を任意に組み合せて指定できます。

    • ALTER DATABASE

    • ALTER PLUGGABLE DATABASE

    • ALTER SESSION

    • ALTER SYSTEM

  • ALLを使用して、前のリストに示されているすべての文を指定します。

  • ALL EXCEPTを使用して、指定した文を除いて、前のリストに示されているすべての文を指定します。

この句を指定しない場合、ENABLE STATEMENT ALLがデフォルトになります。

statement_clauses

この句を使用すると、指定したSQL文の特定の句を無効または有効にできます。

  • 無効または有効にする句を形成するSQLキーワードを指定するには、clauseを使用します。句は、大文字と小文字を任意で組み合せて指定できます。

  • ALLを使用して、SQL文のすべての句を指定します。

  • ALL EXCEPTを使用して、指定した句を除く、SQL文のすべての句を指定します。

clauseには、SQL文の単一の句を明確に識別できるだけの十分なキーワードを指定する必要があります。次に、ALTER SYSTEM文のclauseを指定する方法の例を示します。

  • archive_log_clause::=を指定するには、ARCHIVEを指定します。キーワードARCHIVEで始まるALTER SYSTEM句は他にないため、これで十分です。意味を明確にするためにARCHIVE LOGを指定することもできますが、LOGキーワードは不要です。

  • いずれかのrolling_migration_clauses::=を指定する場合は、これらの句を同じような名前のrolling_patch_clauses::= START ROLLING PATCHおよびSTOP ROLLING PATCHと区別するために、START ROLLING MIGRATIONまたはSTOP ROLLING MIGRATIONを指定する必要があります。

  • 単一のキーワードFLUSHを指定することはできません。複数のALTER SYSTEM句がこのキーワードで始まるためです。かわりに、FLUSH SHARED_POOLまたはFLUSH GLOBAL CONTEXTなど、各句を別々に指定する必要があります。

何の効果もないため、句の中でオプションのキーワードを指定する必要はありません。次に例を示します。

  • archive_log_clause::=には、オプションのINSTANCEキーワードがあります。しかし、INSTANCEキーワードを含むARCHIVE LOG句のみを有効または無効にすることはできません。ARCHIVE LOG INSTANCEを指定することは、ARCHIVEまたはARCHIVE LOGを指定することと同じです。

何の効果もないため、句の中でパラメータ値を指定する必要はありません。次に例を示します。

  • shutdown_dispatcher_clause::=ではdispatcher_nameを指定する必要があります。しかし、特定のディスパッチャ名を含むSHUTDOWN句を有効または無効にすることはできません。SHUTDOWN dispatcher1を指定することは、SHUTDOWNを指定することと同じです。

関連項目:

これらの文の句の詳細は、「ALTER DATABASE」「ALTER PLUGGABLE DATABASE」「ALTER SESSION」および「ALTER SYSTEM」を参照してください。

clause_options

この句は、lockdown_statementsおよびstatement_clausesに対して、次のいずれかを指定している場合にのみ有効です。

{ DISABLE | ENABLE } STATEMENT = ('ALTER SESSION') CLAUSE = ('SET')
{ DISABLE | ENABLE } STATEMENT = ('ALTER SYSTEM') CLAUSE = ('SET')

この句を使用すると、ALTER SESSION SETまたはALTER SYSTEM SET文の特定のオプションの設定または変更を無効または有効にできます。

  • 無効または有効にするオプションを指定するには、clause_optionを使用します。

  • 複数のオプションに一致するパターンを指定するには、clause_option_patternを使用します。パターン内でパーセント記号(%)を指定すると、オプション名に含まれるゼロ個以上の文字に一致させることができます。たとえば、'QUERY_REWRITE_%'を指定することは、QUERY_REWRITE_ENABLEDおよびQUERY_REWRITE_INTEGRITYの両方のオプションを指定することと同等です。

  • clause_optionおよびclause_option_patternは、大文字と小文字を任意に組み合せて指定できます。

  • ALLを使用して、すべてのオプションを指定します。

  • ALL EXCEPTを使用して、指定したオプションを除くすべてのオプションを指定します。

関連項目:

これらの文で指定できるオプションの詳細は、「ALTER SESSION」の「alter_session_set_clause」句および「ALTER SYSTEM」の「alter_system_set_clause」句を参照してください。

option_values

この句は、lockdown_statementsstatement_clausesおよびclause_optionsに対して、次のいずれかを指定している場合にのみ有効です。

DISABLE STATEMENT = ('ALTER SESSION') CLAUSE = ('SET') OPTION = clause_option
DISABLE STATEMENT = ('ALTER SYSTEM') CLAUSE = ('SET') OPTION = clause_option

この句を使用すると、オプションの設定を無効にした場合の、そのオプションのデフォルト値を指定できます。数値を取得するオプションの場合は、この句を使用して、ユーザーがオプションに特定の値を設定しないように制限することもできます。

  • VALUE句を使用すると、clause_optionのデフォルトのoption_valueを指定でき、これは、PDBをクローズして再オープンした後、プロファイルが適用されるPDBで有効になります。clause_optionが複数のデフォルト値を受け入れる場合は、複数のoption_valueをカンマ区切りリストで指定できます。この句を使用する目的は、オプションのデフォルト値を設定すると同時に、ユーザーによる値の設定または変更を制限することです。

  • MINVALUE句を使用すると、ユーザーがclause_optionの値をoption_value未満の値に設定しないように制限できます。この句は、数値を取得するオプションに対してのみ指定できます。

  • MAXVALUE句を使用すると、ユーザーがclause_optionの値をoption_valueよりも大きい値に設定しないように制限できます。この句は、数値を取得するオプションに対してのみ指定できます。

  • MINVALUE句とMAXVALUE句の両方を同時に指定すると、ユーザーがclause_optionsの値をMINVALUE未満の値にも、MAXVALUEよりも大きい値にも設定しないように制限できます。

  • MINVALUEおよびMAXVALUE設定は、ロックダウン・プロファイルがPDBに割り当てられるとすぐに有効になります。PDBをクローズして再オープンする必要はありません。

関連項目:

様々なオプションで許可される値の詳細は、『Oracle Databaseリファレンス』を参照してください。

次の文は、PDBロックダウン・プロファイルhr_profを作成します。

CREATE LOCKDOWN PROFILE hr_prof;

この項の残りの例では、hr_profを変更します。

PDBロックダウン・プロファイルの機能の無効化: 例

次の文は、機能バンドルNETWORK_ACCESSのすべての機能を無効にします。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE FEATURE = ('NETWORK_ACCESS');

次の文は、LOB_FILE_ACCESSおよびTRACE_VIEW ACCESS機能を無効にします。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE FEATURE = ('LOB_FILE_ACCESS', 'TRACE_VIEW_ACCESS');

次の文は、COMMON_USER_LOCAL_SCHEMA_ACCESSおよびLOCAL_USER_COMMON_SCHEMA_ACCESS機能を除くすべての機能を無効にします。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE FEATURE ALL EXCEPT = ('COMMON_USER_LOCAL_SCHEMA_ACCESS', 'LOCAL_USER_COMMON_SCHEMA_ACCESS');

次の文は、すべての機能を無効にします。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE FEATURE ALL;

PDBロックダウン・プロファイルの機能の有効化: 例

次の文は、UTL_HTTPおよびUTL_SMTP機能、および機能バンドルOS_ACCESSのすべての機能を有効にします。

ALTER LOCKDOWN PROFILE hr_prof
  ENABLE FEATURE = ('UTL_HTTP', 'UTL_SMTP', 'OS_ACCESS');

次の文は、AQ_PROTOCOLSおよびCTX_PROTOCOLS機能を除くすべての機能を有効にします。

ALTER LOCKDOWN PROFILE hr_prof
  ENABLE FEATURE ALL EXCEPT = ('AQ_PROTOCOLS', 'CTX_PROTOCOLS');

次の文は、すべての機能を有効にします。

ALTER LOCKDOWN PROFILE hr_prof
  ENABLE FEATURE ALL;

PDBロックダウン・プロファイルのオプションの無効化: 例

次の文は、Oracle Database Advanced Queuingオプションに関連付けられているユーザー操作を無効にします。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE OPTION = ('DATABASE QUEUING');

次の文は、Oracle Partitioningオプションに関連付けられているユーザー操作を無効にします。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE OPTION = ('PARTITIONING');

PDBロックダウン・プロファイルのオプションの有効化: 例

次の文は、Oracle Database Advanced Queuingオプションに関連付けられているユーザー操作を有効にします。

ALTER LOCKDOWN PROFILE hr_prof
  ENABLE OPTION = ('DATABASE QUEUING');

次の文は、Oracle Database Advanced QueuingオプションおよびOracle Partitioningオプションの両方に関連付けられているユーザー操作を有効にします。

ALTER LOCKDOWN PROFILE hr_prof
  ENABLE OPTION ALL;

PDBロックダウン・プロファイルのSQL文の無効化: 例

次の文は、ALTER DATABASE文を無効にします。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE STATEMENT = ('ALTER DATABASE');

次の文は、ALTER SYSTEM SUSPENDおよびALTER SYSTEM RESUME文を無効にします。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE STATEMENT = ('ALTER SYSTEM')
          CLAUSE = ('SUSPEND', 'RESUME');

次の文は、DEFAULT TABLESPACEおよびDEFAULT TEMPORARY TABLESPACEを除く、ALTER PLUGGABLE DATABASE文のすべての句を無効にします。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE STATEMENT = ('ALTER PLUGGABLE DATABASE')
          CLAUSE ALL EXCEPT = ('DEFAULT TABLESPACE', 'DEFAULT TEMPORARY TABLESPACE');

次の文は、ALTER SESSION文を使用した、COMMIT_WAITまたはCURSOR_SHARINGの設定または変更を無効にします。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE STATEMENT = ('ALTER SESSION')
          CLAUSE = ('SET')
          OPTION = ('COMMIT_WAIT', 'CURSOR_SHARING');

次の文は、ALTER SYSTEM文を使用した、PDB_FILE_NAME_CONVERTの値の設定または変更を無効にします。また、PDB_FILE_NAME_CONVERTのデフォルト値を'cdb1_pdb0', 'cdb1_pdb1'に設定します。このデフォルト値は、次回PDBをクローズして再オープンしたときに有効になります。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE STATEMENT = ('ALTER SYSTEM')
          CLAUSE = ('SET')
          OPTION = ('PDB_FILE_NAME_CONVERT')
          VALUE = ('cdb1_pdb0', 'cdb1_pdb1');

次の文は、ALTER SYSTEM文を使用した、CPU_COUNTの値の8未満の値への設定または変更を無効にします。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE STATEMENT = ('ALTER SYSTEM')
          CLAUSE = ('SET')
          OPTION = ('CPU_COUNT')
          MINVALUE = '8';

次の文は、ALTER SYSTEM文を使用した、CPU_COUNTの値の2より大きい値への設定または変更を無効にします。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE STATEMENT = ('ALTER SYSTEM')
          CLAUSE = ('SET')
          OPTION = ('CPU_COUNT')
          MAXVALUE = '2';

次の文は、ALTER SYSTEM文を使用した、CPU_COUNTの値の2未満の値または6より大きい値への設定または変更を無効にします。

ALTER LOCKDOWN PROFILE hr_prof
  DISABLE STATEMENT = ('ALTER SYSTEM')
          CLAUSE = ('SET')
          OPTION = ('CPU_COUNT')
          MINVALUE = '2'
          MAXVALUE = '6';

PDBロックダウン・プロファイルのSQL文の有効化: 例

次の文は、ALTER DATABASEを除くすべての文を有効にします。

ALTER LOCKDOWN PROFILE hr_prof
  ENABLE STATEMENT ALL EXCEPT = ('ALTER DATABASE');

次の文は、ALTER DATABASE MOUNTおよびALTER DATABASE OPEN文を有効にします。

ALTER LOCKDOWN PROFILE hr_prof
  ENABLE STATEMENT = ('ALTER DATABASE')
          CLAUSE = ('MOUNT', 'OPEN');

次の文は、DEFAULT TABLESPACEおよびDEFAULT TEMPORARY TABLESPACEを除く、ALTER PLUGGABLE DATABASE文のすべての句を有効にします。

ALTER LOCKDOWN PROFILE hr_prof
  ENABLE STATEMENT = ('ALTER PLUGGABLE DATABASE')
         CLAUSE ALL EXCEPT = ('DEFAULT TABLESPACE', 'DEFAULT TEMPORARY TABLESPACE');

次の文は、ALTER SESSION文を使用した、COMMIT_WAITまたはCURSOR_SHARINGの設定または変更を有効にします。

ALTER LOCKDOWN PROFILE hr_prof
  ENABLE STATEMENT = ('ALTER SESSION')
         CLAUSE = ('SET')
         OPTION = ('COMMIT_WAIT', 'CURSOR_SHARING');