4 Oracle Label Securityの登録とログイン

Oracle Label Securityを使用する前に、Oracle Label Securityをデータベースに登録(構成)する必要があります。そうすることで、Oracle Label Securityにログインできるようになります。

4.1 Oracle DatabaseでのOracle Label Securityの登録

Oracle Label Securityを、その使用場所のデータベースに登録する必要があります。

4.1.1 Oracle Label Securityの登録について

Oracle Databaseをインストールしたときに、そのインストールにOracle Label Securityが含まれますが、デフォルトではそれは有効になりません。

これが当てはまるのは、Database Configuration Assistant (DBCA)で標準インストール方法を使用してOracle Databaseをインストールする場合です。カスタム・インストールを使用してインストールする場合は、オプションで、Oracle Databaseインストール・プロセスの一部としてDBCAからOracle Label Securityを登録できます。

標準インストール方法を使用してインストールした場合は、Oracle Label Securityを使用する前にそれを手動で登録(有効化)する必要があります。この登録の実行には、SQL*PlusまたはDBCAを使用できます。

Oracle Label Securityが登録された後に、Oracle Label Security管理ユーザーを作成して、Oracle Label Security管理パッケージに対するLBAC_DBAロールおよびEXECUTE権限をその管理ユーザーに付与する必要があります。その後、必要に応じてOracle Label Securityを無効化および再有効化できます。

Oracle Label Securityポリシーの作成を計画しているプラガブル・データベース(PDB)でのみOracle Label Securityを登録します。Oracle Label Securityはデータ・ディクショナリ・オブジェクトを保護するように設計されていないため、ルートではポリシーを保護できません。

4.1.2 Oracle Label Securityが登録されて有効になっているかどうかの確認

DBA_OLS_STATUSデータ・ディクショナリ・ビューを問い合せて、Oracle Label Securityがすでに登録され有効になっているかどうかを確認できます。

  1. SYSDBA管理権限を持つユーザーSYSとして、該当するPDBにログインします。
    sqlplus sys@pdb_name as sysdba
    Enter password: password
    

    利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

  2. 次の問合せを実行します。
    SELECT * FROM DBA_OLS_STATUS;
    
    NAME                 STATUS  DESCRIPTION        
    -------------------- ------- -------------------------------------
    OLS_CONFIGURE_STATUS TRUE    Determines if OLS is configured
    OLS_ENABLE_STATUS    TRUE    Determines if OLS is enabled

4.1.3 SQL*PlusからのOracle Label Securityの登録および有効化

Oracle Label Securityの登録と有効化はどちらも、SQL*Plusから実行できます。

  1. SYSDBA管理権限を持つユーザーSYSとして、該当するPDBにログインします。
    sqlplus sys@pdb_name as sysdba
    Enter password: password
    

    利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

  2. 次のように、Oracle Label Securityを登録して有効にします。
    EXEC LBACSYS.CONFIGURE_OLS; -- This procedure registers Oracle Label Security.
    EXEC LBACSYS.OLS_ENFORCEMENT.ENABLE_OLS; -- This procedure enables it.
    

    LBACSYS.CONFIGURE_OLSを起動すると、保留中のトランザクションはすべてコミットされ、LBACSYS.CONFIGURE_OLSが失敗した場合にロールバックできません。LBACSYS.CONFIGURE_OLSは、既存のLBAC_TRIGGERスキーマなどの理由で失敗することがあります。

  3. PDBを閉じてから、再度開きます。

    たとえば:

    ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE;
    ALTER PLUGGABLE DATABASE pdb_name OPEN;

4.1.4 DBCAを使用したOracle Label Securityの登録および有効化

Database Configuration Assistantを使用してOracle Label Securityの登録と有効化の両方を行うことができます。

  1. Database Configuration Assistant(DBCA)を開始します。
    • UNIX: 次のコマンドを実行します。

      $ORACLE_HOME/bin/dbca
      
    • Windows: 「スタート」メニューから「すべてのプログラム」をクリックします。次に、「Oracle - ORACLE_HOME」「Configuration and Migration Tools」「Database Configuration Assistant」の順にクリックします。

    「ようこそ」画面が表示されます。

  2. 「次へ」をクリックします。

    「操作」画面が表示されます。

  3. 「データベース・オプションの構成」を選択します。「次へ」をクリックします。

    「データベース」画面が表示されます。

  4. リストから、OLSを構成および有効化する必要のあるデータベースを選択します。「次へ」をクリックします。

    「データベース・コンテンツ」画面が表示されます。

  5. 「Oracle Label Security」を選択します。「次へ」をクリックします。

    「接続モード」画面が表示されます。

  6. 「専用サーバー・モード」または「共有サーバー・モード」を選択します。「終了」をクリックします。

    操作にはデータベースの再起動が必要があることを知らせるダイアログ・ボックスが表示されます。

  7. 「OK」をクリックします。

    「確認」ダイアログ・ボックスが表示されます。

  8. 「OK」をクリックします。

    DBCAの進捗状況を示す画面が表示されます。

  9. 操作が完了すると、別の操作を実行するためのプロンプトが表示されます。「いいえ」をクリックしてDBCAを終了します。

4.1.5 Oracle Label Securityの再コンパイル

アップグレード後に、無効なオブジェクトがOracle Label Securityに存在する場合は、Oracle Label Securityを再コンパイルしてこれらの無効なオブジェクトを削除する必要があります。

次のようなエラーは、無効なオブジェクトがあることを示しています: catuppst.sqlスクリプトの失敗、CATCLエラー、「ORA-06550: 識別子を宣言する必要があります」というエラーまたは「ORA-942 (OLSが無効です)」というエラー。
  1. Oracle Label Securityを無効にしてから有効にします。
  2. LBACSYS内のオブジェクトを再コンパイルします。
    EXEC DBMS_UTILITY.COMPILE_SCHEMA(SCHEMA => 'LBACSYS');
  3. 依存データベース・オブジェクトも再コンパイルする必要がある場合は、次のようにすべてのデータベース・オブジェクトを再コンパイルします:
    @$ORACLE_HOME/rdbms/admin/utlrp.sql
  4. 適切なPDBで、SQL*Plusを使用してOracle Label Securityを検証します。
    EXECUTE SYS.VALIDATE_OLS;
  5. utlrp.sqlスクリプトですべてのOLS (LDAPSYS)オブジェクトが正常にコンパイルされ、コンパイル中にエラーがなかった場合は、次のコマンドを実行して、コンポーネント・レジストリにロードされているOracle Label Securityコンポーネントについて情報をリストします:
    EXECUTE DBMS_REGISTRY.VALID('OLS');

4.2 Oracle Label Security管理ユーザーを管理するためのセキュリティ・ガイドライン

Oracle Label Securityの管理を担当する特別な管理ユーザーを作成する必要があります。

以前のリリースのOracle Label Securityでは、Oracle Label Securityの管理を担当するユーザーに対して特別なユーザーLBACSYSが提供されていました。Oracle Label Security管理者はLBACSYSを使用しないでください。リリース21c以降は、この用語がディクショナリで保護されたユーザーになったためです。そのため、Oracle Label Security管理者として指定された名前付きユーザーが必要になります。LBAC_DBAロール自体には、必要な権限すべては含まれていません。

Oracle Label Security管理ユーザーを作成するために、適切な権限を持つユーザーを作成してください。たとえば:

CREATE USER "SA_DEMO" IDENTIFIED BY "SA_DEMO";
GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE, SELECT_CATALOG_ROLE TO SA_DEMO;
GRANT EXECUTE ON SA_COMPONENTS TO SA_DEMO WITH GRANT OPTION;
GRANT EXECUTE ON SA_USER_ADMIN TO SA_DEMO WITH GRANT OPTION;
GRANT EXECUTE ON SA_USER_ADMIN TO SA_DEMO WITH GRANT OPTION;
GRANT EXECUTE ON SA_LABEL_ADMIN TO SA_DEMO WITH GRANT OPTION;
GRANT EXECUTE ON SA_POLICY_ADMIN TO SA_DEMO WITH GRANT OPTION;
GRANT EXECUTE ON SA_AUDIT_ADMIN TO SA_DEMO WITH GRANT OPTION;
GRANT EXECUTE ON SA_SYSDBA TO SA_DEMO;
GRANT EXECUTE ON TO_LBAC_DATA_LABEL TO SA_DEMO;
GRANT LBAC_DBA TO SA_DEMO;

ユーザーがOracle Label Securityのポリシーを作成すると、ポリシー_DBAの形式の名前が付いた、ポリシー用の特別なロールが、Oracle Label Securityによって作成されてユーザーに付与されます。このロールを持ち、SA_POLICY_ADMINパッケージに対するEXECUTE権限があるユーザーのみがポリシーを管理できます。LBAC_DBAロールでは、ポリシーを管理する権限は提供されません。

4.3 Enterprise Manager Cloud ControlからのOracle Label Securityの管理

Enterprise Manager Cloud Controlから、Oracle Label Securityページを使用してOracle Label Securityポリシーを作成および管理します。

  1. Oracle Label Securityで使用する予定のCloud Controlターゲット・データベースが構成されていることを確認します。

    ターゲット・データベースの構成の詳細は、Oracle Enterprise Managerのオンライン・ヘルプを参照してください。

  2. ブラウザでCloud Controlのログイン・ページを開きます。

    たとえば:

    https://myserver.example.com:7799/em
    
  3. SYSMANユーザーとしてCloud Controlにログインします。
  4. Cloud Controlのホーム・ページで、「ターゲット」メニューから「データベース」を選択します。
  5. 「データベース」ページで、接続先のデータベースのリンクを選択します。

    データベースのホームページが表示されます。

  6. 「セキュリティ」メニューで、「Label Security」を選択します。

    「データベース・ログイン」ページが表示されます。

  7. 次の情報を入力します。
    • ユーザー名: Oracle Label Security管理者のユーザー名を入力します。

    • パスワード: パスワードを入力します。

    • ロール: リストから「通常」を選択します。

    • 別名保存: 次回このページが表示されるときに、これらの資格証明が自動入力されているようにするには、このチェック・ボックスを選択します。資格証明は、Enterprise Managerに安全な方法で格納されます。これらの資格証明へのアクセスは、現在ログインしているユーザーによって異なります。

4.4 SQL*PlusからのOracle Label Securityの管理

LBAC_DBAデータベース・ロールを付与されている場合は、SQL*PlusからOracle Label Securityを管理できます。

  • SQL*PlusからOracle Label Securityを使用するには、Oracle Label Security管理者ユーザーとして接続します。

たとえば:

sqlplus name_ols_admin@pdb_name
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。