DBMS_DCATパッケージ
DBMS_DCATパッケージには、Autonomous AI DatabaseユーザーがOCIデータ・カタログのデータ検出および一元化されたメタデータ管理システムを活用するのに役立つファンクションおよびプロシージャが用意されています。
ノート: DBMS_DCATのサポートは、バージョン19.30以降のOracle AI Database 19cおよびバージョン23.26.1以降のAutonomous AI Database 26aiで使用できます。
データ・カタログは、データ・レイクのオブジェクト・ストレージ・アセットからメタデータを収集します。収集プロセスによって論理エンティティが作成されます。論理エンティティは、列および関連付けられたデータ型を持つ表と考えることができます。DBMS_DCATプロシージャおよびファンクションは、Autonomous AI Databaseをデータ・カタログに接続し、アセットをデータベースと同期して、保護されたスキーマおよび外部表を作成します。その後、これらの外部表を使用してオブジェクト・ストアに問い合せ、外部データをAutonomous AI Databaseに格納されたデータと簡単に結合できます。これにより、管理プロセスが大幅に簡素化され、複数のOCIサービス(Autonomous AIデータベースを含む)で共有される、一元管理されたメタデータ・ストアが1つあります。また、Autonomous AI Databaseディクショナリ・ビューもあり、SQLを使用してデータ・カタログの内容を検査し、これらのデータ・カタログ・エンティティがAutonomous AI Databaseスキーマおよび表にどのようにマップされるかを示します。
データ・カタログのユーザーおよびロール
DBMS_DCATパッケージは、同期されたユーザー/スキーマ、dcat_adminユーザーおよびローカル・ユーザーをサポートします。このパッケージを使用できるようにするには、ユーザーにdcat_syncロールが必要です。
データカタログユーザー
-
同期されたユーザー/スキーマ
同期された外部表は、データ・アセットとバケットの組合せに対応するデータベース・スキーマ、またはユーザーが設定したカスタム・プロパティに従って編成されます。同期されたスキーマは、データ・カタログの同期中に自動的に作成/削除されます。これらは、
CREATE SESSION権限のない認証ユーザーとして作成されます。同期されたスキーマは、protected句を使用しても作成されるため、ローカル・ユーザー(PDB管理者でもなく)は変更できず、同期によってのみ変更できます。 -
ユーザー
dcat_adminユーザー
dcat_adminは、同期を実行し、同期表に対するREAD権限を他のユーザーまたはロールに付与できるローカル・データベース・ユーザーです。ユーザーは、CREATE SESSION権限なしで認証なしユーザーとして作成されます。 -
ローカル・ユーザー
外部表を問い合せるデータベース・ユーザーには、同期された外部表に対する
READ権限がユーザーdcat_adminまたはADMINによって明示的に付与されている必要があります。デフォルトでは、同期が完了すると、ユーザーdcat_adminおよびADMINのみが同期された外部表にアクセスできます。
データカタログ役割
-
dcat_syncdcat_syncロールには、DBMS_DCATパッケージを使用するために必要なすべての権限があります。APIを使用してデータ・カタログをナビゲートし、同期を実行できるようにするには、このロールが必要です。
必要な資格証明およびIAMポリシー
このトピックでは、Autonomous AI Databaseユーザーにデータ・カタログの管理およびオブジェクト・ストレージからの読取り権限を付与するために必要なOracle Cloud Infrastructure Identity and Access Management (IAM)ユーザー資格証明およびポリシーについて説明します。
OCIデータ・カタログの資格証明およびポリシーの要件:
-
データ・カタログ・インスタンスを管理する権限を持つ資格証明オブジェクトが必要です。OCIネイティブ認証を含む資格証明オブジェクトがサポートされています。認証トークン・ユーザー・プリンシパルおよびリソース・プリンシパル資格証明に基づく資格証明オブジェクトはサポートされません。
資格証明の管理の詳細は、「アクセス管理用のDBMS_CLOUD」を参照してください。
OCIネイティブ認証の例については、例: OCIネイティブ認証資格証明オブジェクトの作成およびAutonomous AI DatabaseでOCIネイティブ認証を使用したオブジェクト・ストレージへのアクセスがサポートされるようになりましたを参照してください。
-
Autonomous AI Databaseがカスタム・プロパティをデータ・カタログ・ネームスペースに追加するには、データ・カタログの管理権限が必要です。これらの権限により、スキーマ名、表名、列名などをオーバーライドできます。
データ・カタログの権限の詳細は、各API操作に必要な権限を参照してください。
-
Autonomous AI Databaseがデータファイルを問い合せるには、バケットに対する読取りオブジェクト・ストレージ権限が必要です。
Oracle Object Storageポリシーの例の詳細は、ポリシーの例を参照してください。
AWS Glueデータカタログの資格とポリシー要件
Autonomous AI DatabaseユーザーにAmazon Web Services (AWS) Glue Data CatalogsへのアクセスおよびS3オブジェクト・ストレージからの読取り権限を付与するには、次のユーザー資格証明およびポリシーが必要です:
-
AWS Glueデータ・カタログにアクセスする権限を持つ資格証明オブジェクトが必要です。資格証明の管理の詳細は、「アクセス管理用のDBMS_CLOUD」を参照してください。
AWS Glue Data Catalogにアクセスするには、glue:GetDatabases、glue:GetTables、glue:GetTableなどの権限が必要です。
また、同期中に、基礎となるS3オブジェクトを指す解決可能なhttps URLを生成するには、権限s3:GetBucketLocationが必要です。
-
Autonomous AI Databaseがデータ・ファイルを問い合せることができるように、S3に格納されているファイルへのアクセス権限を持つ資格証明オブジェクトが必要です。
-
AWS資格証明がサポートされています。AWS Amazon Resource Name (ARN)資格証明はサポートされていません。
例: OCIネイティブ認証資格証明オブジェクトの作成
この例では、データ・カタログまたはオブジェクト・ストア資格証明オブジェクトの作成時に使用できるOCIネイティブ認証資格証明を作成します。詳細は、「DBMS_DCAT」を参照してください。SET_DATA_CATALOG_CREDENTIALプロシージャおよびDBMS_DCAT.SET_OBJECT_STORE_CREDENTIALプロシージャ。
OCIネイティブ認証では、DBMS_CLOUD.CREATE_CREDENTIALプロシージャにパラメータcredential_name、user_ocid、tenancy_ocid、private_keyおよびfingerprintが含まれています。このプロシージャの詳細は、「DBMS_CLOUD CREATE_CREDENTIALプロシージャ」を参照してください。
credential_nameは、資格証明オブジェクトの名前です。The user_ocid and tenancy_ocid parameters correspond to the user’s and tenancy’s OCIDs respectively.
private_keyパラメータは、生成された秘密キーをPEM形式で指定します。パスフレーズ付きで生成された秘密キーはサポートされていません。したがって、パスフレーズなしで鍵を生成する必要があります。パスフレーズなしで秘密キーを作成する方法の詳細は、「API署名キーの生成方法」を参照してください。また、このパラメータに指定する秘密キーには、ヘッダーまたはフッターなしのキー自体のみが含まれている必要があります(例: '—BEGIN RSA PRIVATE KEY—'、'—END RSA PRIVATE KEY— —')。
fingerprintパラメータは、公開キーをコンソールにアップロードした後、またはOpenSSLコマンドを使用して取得するフィンガープリントを指定します。フィンガープリントの取得の詳細は、公開キーのアップロード方法およびキーのフィンガープリントの取得方法を参照してください。
必要な情報がすべて収集され、秘密キーが生成されると、次のCREATE_CREDENTIALプロシージャを実行する準備が整います。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => 'OCI_NATIVE_CRED',
user_ocid => 'ocid1.user.oc1..aaaaaaaatfn77fe3fxux3o5lego7glqjejrzjsqsrs64f4jsjrhbsk5qzndq',
tenancy_ocid => 'ocid1.tenancy.oc1..aaaaaaaapwkfqz3upqklvmelbm3j77nn3y7uqmlsod75rea5zmtmbl574ve6a',
private_key => 'MIIEogIBAAKCAQEA...t9SH7Zx7a5iV7QZJS5WeFLMUEv+YbYAjnXK+dOnPQtkhOblQwCEY3Hsblj7Xz7o=',
fingerprint => '4f:0c:d6:b7:f2:43:3c:08:df:62:e3:b2:27:2e:3c:7a');
END;
/
資格証明オブジェクトを作成すると、dba_credentials表に表示されます。
SELECT owner, credential_name
FROM dba_credentials
WHERE credential_name LIKE '%NATIVE%';
OWNER CREDENTIAL_NAME
----- ---------------
ADMIN OCI_NATIVE_CRED
例: ユーザープリンシパルの使用
この例では、user1はグループadb-adminsのメンバーです。このグループのすべてのメンバーには、mycompartment内のすべてのデータ・カタログを管理し、mycompartmentのオブジェクト・ストアから読み取る権限が付与されます。
-
adb-adminsのメンバーであるユーザーが、mycompartment内のすべてのデータ・カタログを管理できるようにします。allow group adb-admins to manage data-catalog-family in compartment mycompartment -
adb-adminsのメンバーであるユーザーが、mycompartment内の任意のバケット内の任意のオブジェクトを読み取ることができます。allow group adb-admins to read objects in compartment mycompartment