DBMS_DCAT 패키지
DBMS_DCAT 패키지는 자율운영 AI 데이터베이스 사용자가 OCI 데이터 카탈로그의 데이터 검색 및 중앙화된 메타데이터 관리 시스템을 활용할 수 있도록 지원하는 기능과 절차를 제공합니다.
참고: DBMS_DCAT 지원은 버전 19.30부터 Oracle AI Database 19c 및 버전 23.26.1부터 자율운영 AI 데이터베이스 26ai에서 제공됩니다.
데이터 카탈로그는 데이터 레이크의 객체 스토리지 자산에서 메타데이터를 수집합니다. 수집 프로세스는 논리적 엔티티를 생성합니다. 이 엔티티는 열 및 연관된 데이터 유형이 있는 테이블로 간주할 수 있습니다. DBMS_DCAT 절차 및 함수는 자율운영 AI 데이터베이스를 데이터 카탈로그에 연결한 다음, 자산을 데이터베이스와 동기화하여 보호된 스키마 및 외부 테이블을 생성합니다. 그런 다음 외부 테이블을 사용하여 객체 저장소를 쿼리하고, 외부 데이터를 자율운영 AI 데이터베이스에 저장된 데이터와 손쉽게 조인할 수 있습니다. 이를 통해 관리 프로세스가 크게 간소화됩니다. 여러 OCI 서비스(자율운영 AI 데이터베이스 포함)에서 공유되는 단일 중앙 관리 메타데이터 저장소가 있습니다. 또한 SQL을 사용하여 데이터 카탈로그의 콘텐츠를 검사하고 해당 데이터 카탈로그 엔티티가 자율운영 AI 데이터베이스 스키마 및 테이블에 매핑되는 방식을 보여 주는 자율운영 AI 데이터베이스 딕셔너리 뷰도 있습니다.
데이터 카탈로그 사용자 및 역할
DBMS_DCAT 패키지는 동기화된 사용자/스키마, dcat_admin 사용자 및 로컬 사용자를 지원합니다. 이 패키지를 사용하려면 사용자에게 dcat_sync 롤이 있어야 합니다.
데이터 카탈로그 사용자
-
동기화된 사용자/스키마
동기화된 외부 테이블은 데이터 자산/버킷 조합에 해당하는 데이터베이스 스키마 또는 사용자가 설정한 사용자정의 속성에 따라 구성됩니다. 동기화된 스키마는 데이터 카탈로그 동기화 중에 자동으로 생성/삭제됩니다.
CREATE SESSION권한이 없는 인증 사용자로 생성됩니다. 동기화된 스키마는 또한 보호된 절을 사용하여 생성되므로 로컬 사용자(PDB 관리자도 아님)가 변경할 수 없으며 동기화를 통해서만 수정할 수 있습니다. -
사용자
dcat_admin사용자
dcat_admin은 동기화를 실행하고 동기화된 테이블에 대한READ권한을 다른 사용자나 롤에 부여할 수 있는 로컬 데이터베이스 사용자입니다. 사용자가CREATE SESSION권한 없이 인증 없음 사용자로 생성됩니다. -
로컬 사용자
외부 테이블을 질의하는 데이터베이스 사용자는 사용자
dcat_admin또는 ADMIN이 동기화된 외부 테이블에 대해READ권한을 명시적으로 부여해야 합니다. 기본적으로 동기화가 완료된 후 사용자dcat_admin및ADMIN만 동기화된 외부 테이블에 액세스할 수 있습니다.
데이터 카탈로그 역할
-
dcat_syncdcat_sync롤에는DBMS_DCAT패키지 사용에 필요한 모든 권한이 있습니다. 데이터 카탈로그를 탐색하고 동기화를 실행하는 데 API를 사용할 수 있으려면 사용자에게 이 롤이 있어야 합니다.
필수 인증서 및 IAM 정책
이 항목에서는 자율운영 AI 데이터베이스 사용자에게 데이터 카탈로그를 관리하고 객체 스토리지에서 읽을 수 있는 권한을 부여하는 데 필요한 Oracle Cloud Infrastructure Identity and Access Management(IAM) 사용자 인증서 및 정책에 대해 설명합니다.
OCI 데이터 카탈로그 인증서 및 정책 요구사항:
-
데이터 카탈로그 인스턴스 관리 권한이 있는 인증서 객체가 필요합니다. OCI 고유 인증을 포함하는 인증서 객체가 지원됩니다. 인증 토큰 사용자 주체 및 리소스 주체 자격 증명을 기반으로 하는 자격 증명 객체는 지원되지 않습니다.
자격 증명 관리에 대한 자세한 내용은 DBMS_CLOUD for Access Management를 참조하십시오.
OCI 네이티브 인증 예는 예제: OCI 네이티브 인증 자격 증명 객체 생성 및 Autonomous AI Database Now Supports Accessing the Object Storage with OCI Native Authentication을 참조하십시오.
-
자율운영 AI 데이터베이스가 데이터 카탈로그 네임스페이스에 사용자정의 속성을 추가하려면 데이터 카탈로그 관리 권한이 필요합니다. 이러한 권한을 사용하면 스키마 이름, 테이블 이름, 열 이름 등을 재정의할 수 있습니다.
데이터 카탈로그 권한에 대한 자세한 내용은 각 API 작업에 필요한 권한을 참조하십시오.
-
자율운영 AI 데이터베이스가 데이터 파일을 질의할 수 있도록 버킷에 대한 객체 스토리지 읽기 권한이 필요합니다.
Oracle Object Storage 정책 예에 대한 자세한 내용은 정책 예를 참조하십시오.
AWS Glue 데이터 카탈로그 인증서 및 정책 요구사항
자율운영 AI 데이터베이스 사용자에게 AWS(Amazon Web Services) 접착제 데이터 카탈로그에 액세스하고 S3 객체 스토리지에서 읽을 수 있는 권한을 부여하려면 다음 사용자 인증서 및 정책이 필요합니다.
-
AWS Glue 데이터 카탈로그에 액세스할 수 있는 권한이 있는 인증서 객체가 필요합니다. 자격 증명 관리에 대한 자세한 내용은 DBMS_CLOUD for Access Management를 참조하십시오.
AWS Glue Data Catalog에 액세스하려면 glue:GetDatabases , glue:GetTables 및 glue:GetTable 권한이 필요합니다.
또한 기본 S3 객체를 가리키는 분석 가능한 https URL을 생성하기 위해 동기화하는 동안 s3:GetBucketLocation 권한이 필요합니다.
-
자율운영 AI 데이터베이스가 데이터 파일을 질의할 수 있도록 S3에 저장된 파일에 액세스할 수 있는 권한이 있는 인증서 객체가 필요합니다.
-
AWS 자격 증명이 지원됩니다. AWS ARN(Amazon Resource Names) 자격 증명은 지원되지 않습니다.
예: OCI 고유 인증 인증서 객체 생성
이 예에서는 데이터 카탈로그 또는 객체 저장소 인증서 객체를 생성할 때 사용할 수 있는 OCI 고유 인증 인증서를 생성합니다. For more details, see DBMS_DCAT. SET_DATA_CATALOG_CREDENTIAL Procedure and DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL Procedure respectively.
OCI 고유 인증의 경우 DBMS_CLOUD.CREATE_CREDENTIAL 프로시저에는 credential_name, user_ocid, tenancy_ocid, private_key 및 fingerprint 매개변수가 포함됩니다. 이 절차에 대한 전체 설명은 DBMS_CLOUD CREATE_CREDENTIAL Procedure를 참조하십시오.
credential_name은 인증서 객체의 이름입니다. user_ocid 및 tenancy_ocid 매개변수는 각각 사용자 및 테넌시의 OCID에 해당합니다.
private_key 매개변수는 생성된 개인 키를 PEM 형식으로 지정합니다. 문장암호로 생성된 개인 키는 지원되지 않습니다. 따라서 문장암호 없이 키를 생성했는지 확인해야 합니다. 문장암호 없이 개인 키를 만드는 방법에 대한 자세한 내용은 How to Generate an API Signing Key을 참조하십시오. 또한 이 매개변수에 대해 제공하는 개인 키에는 헤더 또는 바닥글이 없는 키 자체만 포함되어야 합니다(예: '—-BEGIN RSA PRIVATE KEY—–', '—–END RSA PRIVATE KEY—').
fingerprint 매개변수는 공개 키를 콘솔에 업로드한 후 또는 OpenSSL 명령을 사용하여 가져온 지문을 지정합니다. 지문 획득에 대한 자세한 내용은 How to Upload the Public Key 및 How to Get the Key's Fingerprint을 참조하십시오.
필요한 모든 정보가 수집되고 개인 키가 생성되면 다음 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