4.8 データベース・ユーザー資格証明を使用したデータベースの監視

AHFでは、構成されたユーザー名とパスワードを使用したデータベースの監視がサポートされるようになり、SYSDBA権限が不要になりました。

ノート:

AHFによるSQLの実行には、デフォルトのデータベース接続(/ as sysdba)の方法を使用することをお薦めします。実行されるSQL文の多くでは内部データベース構造へのアクセスが必要となるため、AHFに一般ユーザーを使用すると、データベース診断収集を実行するときの診断機能が制限されます。

  1. AHFがデータベースに接続するためのデータベース・ユーザーを作成します。データベースがマルチテナントの場合、ユーザーはコンテナ・データベース(CDB)内に作成する必要があります。
    マルチテナントの例:
    SQL> create user C##AHFUSER identified by <password>;
    マルチテナント以外の例:
    SQL> create user AHFUSER identified by <password>;
    1. 最も包括的な診断データの収集と分析のために、DBAロールをAHF共通ユーザーに付与することをお薦めします。

      例:

      grant dba to c##ahfuser container=all;
    2. その代案としては(DBAロールの割当てを実行できない場合)、AHF共通ユーザーに、次の最小限のロールおよび権限を付与する必要があります:

      • SELECT ANY DICTIONARY
      • CREATE ANY DIRECTORY
      • DROP ANY DIRECTORY
      • ADVISOR
      • ALTER SESSION
      • ALTER SESSION SET CONTAINER (マルチテナント・データベースにのみ必要)
      • CREATE SESSION
      • SELECT_CATALOG_ROLE

      マルチテナントの例:

      SQL> GRANT SELECT ANY DICTIONARY to C##AHFUSER container=all;
      SQL> GRANT CREATE ANY DIRECTORY TO C##AHFUSER container=all;
      SQL> GRANT DROP ANY DIRECTORY TO C##AHFUSER container=all;
      SQL> GRANT ADVISOR to C##AHFUSER container=all;
      SQL> GRANT ALTER SESSION to C##AHFUSER container=all;
      SQL> GRANT SET CONTAINER to C##AHFUSER container=all;
      SQL> GRANT CREATE SESSION to C##AHFUSER container=all;
      SQL> GRANT SELECT_CATALOG_ROLE to C##AHFUSER container=all;

      マルチテナント以外の例:

      SQL> grant SELECT ANY DICTIONARY to AHFUSER;
      SQL> grant ALTER SESSION to AHFUSER;
      SQL> grant CREATE SESSION to AHFUSER;
      SQL> grant SELECT_CATALOG_ROLE to AHFUSER;
  2. マルチテナント・データベースでは、問合せですべてのコンテナ・データが返されるように、ahfuserを変更します:
    SQL> alter user C##ahfuser set container_data=all container = current;
  3. Oracle Databaseソフトウェア所有者として、データベース・ログイン資格証明をAHFウォレットに追加します。

    ノート:

    資格証明をウォレットに格納するときには、データベースの一意名(DB_UNIQUE_NAME)使用する必要があります。これにより、指定されたシステムでのデータベースの一意性が保証されます。

    ahf security add-credentials --type password --database <db_unique_name> --user-name c##ahfuser --oracle-home <oracle_home> --oracle-sid <oracle sid>