4.8 データベース・ユーザー資格証明を使用したデータベースの監視
AHFでは、構成されたユーザー名とパスワードを使用したデータベースの監視がサポートされるようになり、SYSDBA権限が不要になりました。
ノート:
AHFによるSQLの実行には、デフォルトのデータベース接続(/ as sysdba)の方法を使用することをお薦めします。実行されるSQL文の多くでは内部データベース構造へのアクセスが必要となるため、AHFに一般ユーザーを使用すると、データベース診断収集を実行するときの診断機能が制限されます。
- AHFがデータベースに接続するためのデータベース・ユーザーを作成します。データベースがマルチテナントの場合、ユーザーはコンテナ・データベース(CDB)内に作成する必要があります。
マルチテナントの例:
SQL> create user C##AHFUSER identified by <password>;マルチテナント以外の例:SQL> create user AHFUSER identified by <password>; -
-
最も包括的な診断データの収集と分析のために、DBAロールをAHF共通ユーザーに付与することをお薦めします。
例:
grant dba to c##ahfuser container=all; -
その代案としては(DBAロールの割当てを実行できない場合)、AHF共通ユーザーに、次の最小限のロールおよび権限を付与する必要があります:
SELECT ANY DICTIONARYCREATE ANY DIRECTORYDROP ANY DIRECTORYADVISORALTER SESSIONALTER SESSION SET CONTAINER(マルチテナント・データベースにのみ必要)CREATE SESSIONSELECT_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;
-
- マルチテナント・データベースでは、問合せですべてのコンテナ・データが返されるように、
ahfuserを変更します:SQL> alter user C##ahfuser set container_data=all container = current; - 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>
親トピック: 診断データの収集