DBMS_CLOUD_ADMIN 패키지
이 섹션에서는 Autonomous AI Database와 함께 제공되는 DBMS_CLOUD_ADMIN 하위 프로그램에 대해 다룹니다.
| 하위 프로그램 | 설명 |
|---|---|
|
이 프로시저는 데이터베이스의 디렉토리에 파일 시스템을 연결합니다. |
|
|
이 프로시저는 Target Database에 대한 데이터베이스 링크를 생성합니다. 다른 자율운영 AI 데이터베이스 인스턴스, 자율운영 AI 데이터베이스가 아닌 Oracle Database 또는 Oracle이 관리하는 이기종 연결을 사용하는 비Oracle Database에 대한 데이터베이스 링크를 생성하는 옵션이 있습니다. |
|
|
이 프로시저는 데이터베이스의 디렉토리에서 파일 시스템을 분리합니다. |
|
|
이 절차에서는 자율운영 AI 데이터베이스 인스턴스에 대한 외부 인증을 사용 안함으로 설정합니다. |
|
|
이 프로시저는 데이터베이스 링크를 삭제합니다. |
|
|
이 절차를 통해 사용자는 지정된 외부 인증 체계를 사용하여 자율운영 AI 데이터베이스에 로그온할 수 있습니다. |
ATTACH_FILE_SYSTEM 프로시저
이 프로시저는 데이터베이스의 파일 시스템을 연결합니다.
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM 프로시저는 데이터베이스에 파일 시스템을 연결하고 파일 시스템에 대한 정보를 DBA_CLOUD_FILE_SYSTEMS 뷰에 저장합니다.
구문
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
file_system_name IN VARCHAR2,
file_system_location IN VARCHAR2,
directory_name IN VARCHAR2,
description IN VARCHAR2 DEFAULT NULL,
params IN CLOB DEFAULT NULL
);매개변수
| 매개변수 | 설명 |
|---|---|
|
|
파일 시스템의 이름을 지정합니다. 이 매개변수는 필수입니다. |
|
|
파일 시스템의 위치를 지정합니다.
예:
이 매개변수는 필수입니다. |
|
|
연결된 파일 시스템의 디렉토리 이름을 지정합니다. 디렉토리가 있어야 합니다. 이 매개변수는 필수입니다. |
|
|
(선택 사항) 작업에 대한 설명을 제공합니다. |
|
|
파일 시스템에 대한 추가 매개변수를 제공하는 JSON 문자열입니다.
|
예를 들면 다음과 같습니다.
NFSv3 파일 시스템에 연결합니다.
BEGIN
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
file_system_name => 'FSS',
file_system_location => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
directory_name => 'FSS_DIR',
description => 'Source NFS for sales data'
);
END;
/
NFSv4 파일 시스템에 연결:
BEGIN
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
file_system_name => 'FSS',
file_system_location => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
directory_name => 'FSS_DIR',
description => 'Source NFS for sales data',
params => JSON_OBJECT('nfs_version' value 4)
);
END;
/사용법 참고
-
이 프로시저를 실행하려면 ADMIN 사용자로 로그인하거나
DBMS_CLOUD_ADMIN에 대한EXECUTE권한이 있어야 합니다. -
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM를 사용하여 파일 시스템을 연결하려면 데이터베이스의 디렉토리 객체에 대한WRITE권한이 있어야 합니다. -
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM프로시저는 프라이빗 끝점이 사용으로 설정된 데이터베이스의 프라이빗 파일 스토리지 서비스만 연결할 수 있습니다.자세한 내용은 OCI File Storage Service 및 Configure a Development System to Access the Database을 참조하십시오.
-
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM프로시저는 고객의 VCN(가상 클라우드 네트워크)에서 네트워크 파일 시스템 호스트 이름을 조회합니다. 위치에 지정된 호스트 이름을 찾을 수 없는 경우"ORA-20000: Mounting NFS fails"오류가 반환됩니다. -
Oracle Cloud Infrastructure File Storage는 NFSv3를 사용하여 공유
-
비Oracle Cloud Infrastructure File Storage 시스템에 연결하는 경우 이 절차에서는 NFSv3 및 NFSv4를 지원합니다.
-
NFSv3를 사용하는 연결된 NFS 서버가 있고 NFS 버전이 NFS 서버에서 NFSv4로 업데이트된 경우
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM,DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM순으로 실행해야 합니다(nfs_version가 4로 설정된params매개변수 사용). 그러면 Autonomous AI Database가 NFSv4 서버에 액세스할 수 있도록 일치하는 프로토콜을 사용하여 NFS가 연결됩니다. 분리 후 다시 연결하지 않으면 NFS 서버에 액세스할 수 없으며"Protocol not supported"과 같은 오류가 표시될 수 있습니다.
CREATE_DATABASE_LINK 프로시저
오버로드된 폼은 다음을 지원합니다.
-
gateway_params매개변수를 사용하면 Oracle이 관리하는 이기종 접속을 사용하여 데이터베이스 링크를 생성할 수 있습니다. 이 링크는 지원되는 비Oracle 데이터베이스에 대한 링크입니다. -
rac_hostnames매개변수를 사용하면 프라이빗 끝점의 자율운영 AI 데이터베이스에서 대상 Oracle RAC 데이터베이스로의 데이터베이스 링크를 생성할 수 있습니다. 이 경우rac_hostnames매개변수를 사용하여 대상 Oracle RAC 데이터베이스의 개별 노드 하나 이상에 대한 호스트 이름을 지정합니다.
구문
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name IN VARCHAR2,
hostname IN VARCHAR2,
port IN NUMBER,
service_name IN VARCHAR2,
ssl_server_cert_dn IN VARCHAR2 DEFAULT,
credential_name IN VARCHAR2 DEFAULT,
directory_name IN VARCHAR2 DEFAULT,
gateway_link IN BOOLEAN DEFAULT,
public_link IN BOOLEAN DEFAULT,
private_target IN BOOLEAN DEFAULT
gateway_params IN CLOB DEFAULT);
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name IN VARCHAR2,
rac_hostnames IN CLOB,
port IN NUMBER,
service_name IN VARCHAR2,
ssl_server_cert_dn IN VARCHAR2 DEFAULT,
credential_name IN VARCHAR2 DEFAULT,
directory_name IN VARCHAR2 DEFAULT,
gateway_link IN BOOLEAN DEFAULT,
public_link IN BOOLEAN DEFAULT,
private_target IN BOOLEAN DEFAULT);
매개변수
| 매개변수 | 설명 |
|---|---|
|
|
생성할 데이터베이스 링크 이름입니다. |
|
|
대상 데이터베이스의 호스트 이름입니다.
이 매개변수 또는
|
|
|
대상 Oracle RAC 데이터베이스에 대한 호스트 이름을 지정합니다. 값은 대상 Oracle RAC 데이터베이스의 노드에 대해 하나 이상의 개별 호스트 이름을 지정하는 JSON 배열입니다. JSON에서 "
대상이 Oracle RAC 데이터베이스인 경우
이 매개변수 또는
|
port |
Target Database에 대한 연결의 포트를 지정합니다.
|
|
|
연결할 데이터베이스의
|
ssl_server_cert_dn |
서버 인증서에서 발견된 DN 값입니다. Oracle이 관리하는 이기종 연결은 대부분의 일반적인 신뢰할 수 있는 루트 및 중간 SSL 인증서가 포함된 전자 지갑으로 사전 구성됩니다. 전자 지갑이 없는 자율운영 AI 데이터베이스 대상에 대한 퍼블릭 끝점 링크: 전자 지갑(TLS) 없이 퍼블릭 끝점의 자율운영 AI 데이터베이스 대상에 접속하려면 다음과 같이 하십시오.
전자 지갑이 없는 프라이빗 끝점 링크: 전자 지갑 없이 프라이빗 끝점에서 Oracle Database에 접속하려면 다음과 같이 하십시오.
|
credential_name |
|
directory_name |
Oracle이 관리하는 이기종 연결은 대부분의 일반적인 신뢰할 수 있는 루트 및 중간 SSL 인증서가 포함된 전자 지갑으로 사전 구성됩니다. 전자 지갑이 없는 자율운영 AI 데이터베이스 대상에 대한 퍼블릭 끝점 링크: 전자 지갑(TLS)이 없는 퍼블릭 엔드포인트의 자율운영 AI 데이터베이스에 접속하려면 다음을 수행합니다.
또한 TCP를 사용하여 자율운영 AI 데이터베이스에 접속하려면 전자 지갑이 없는 프라이빗 끝점 링크: 전자 지갑 없이 프라이빗 끝점에서 대상 Oracle Database에 접속하려면 다음과 같이 하십시오.
|
gateway_link |
데이터베이스 링크가 다른 Oracle Database 또는 Oracle Database Gateway에 생성되는지 여부를 나타냅니다.
이 매개변수의 기본값은 |
public_link |
데이터베이스 링크가 공용 데이터베이스 링크로 생성되는지 여부를 나타냅니다. 이 매개변수를 이 매개변수의 기본값은 |
private_target |
데이터베이스 링크가 VCN DNS 서버에서 확인해야 하는 호스트 이름에 액세스하면
이 매개변수의 기본값은 |
|
|
예:
|
사용법 참고
-
gateway_params매개변수를 지정할 때 일부db_type값에 대해 추가gateway_params매개변수가 지원됩니다.db_type추가 gateway_params값google_analyticsdb_type가google_analytics인 경우 지정하는 인증서가 Google OAuth 인증서여야 합니다(gcp_oauth2)자세한 내용은 CREATE_CREDENTIAL 프로시저 참조).google_bigquerydb_type가google_bigquery인 경우 지정하는 인증서가 Google OAuth 인증서여야 합니다(gcp_oauth2)자세한 내용은 CREATE_CREDENTIAL 프로시저 참조).db_type가google_bigquery인 경우project매개변수가 적합합니다. 이 매개변수는google_bigquery에 대한 프로젝트 이름을 지정하며 필수입니다.SELECT를 Google BigQuery과 함께 사용할 때 지정하는 테이블 이름은 따옴표로 묶어야 합니다. 예:SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINKhivedb_type가hive인 경우http_path매개변수가 적합합니다. 이 매개변수는 필요한 경우 Hive 인스턴스에 접속하기 위한 HttpPath 값을 지정합니다.salesforcedb_type가salesforce인 경우security_token매개변수가 적합합니다. 보안 토큰은 대소문자를 구분하는 영숫자 코드입니다. Salesforce에 접근하려면security_token값을 제공해야 합니다. 예:gateway_params => JSON_OBJECT( 'db_type' value 'salesforce', 'security_token' value 'security_token_value' )자세한 내용은 Reset Your Security Token을 참조하십시오.
servicenowServiceNow에 접속하고 데이터를 가져오려면 게이트웨이 매개변수
directory_name및file_name를 제공해야 합니다. 이러한 매개변수는 JSON 응답을 관계형 모델에 매핑하는 모델 파일(REST 구성 파일)을 지정합니다. 모델 파일은 JSON 응답을 처리하기 위한 끝점, 테이블 매핑 및 HTTP 응답 코드를 지정합니다. 자세한 내용은 모델 파일 구문 및 예제 모델 파일을 참조하십시오.gateway_params매개변수를db_typeservicenow와 함께 사용할 경우 다음 두 가지 옵션이 지원됩니다.-
기본 인증:
gateway_params매개변수db_type에'servicenow'값을 제공하고directory_name및file_name매개변수를 사용자 이름/비밀번호 유형 인증서와 함께 제공해야 합니다. -
OAuth 2.0 인증: OAuth 유형 인증서와 함께
gateway_params매개변수db_type에'servicenow'값,directory_name,file_name및token_uri매개변수를 제공해야 합니다.
directory_name매개변수는 ServiceNow REST 구성 파일을 사용하여 디렉토리를 지정합니다. 다음과 같이 이 디렉토리를 생성할 수 있습니다.create or replace directory servicenow_dir as 'SERVICENOW_DIR';ServiceNow REST 구성 파일을 가져와서 지정된 디렉토리로 다운로드합니다. 예:
exec DBMS_CLOUD.get_object('servicenow_dir_cred', 'https://objectstorage.<...>/servicenow.rest','SERVICENOW_DIR');file_name값을 다운로드한 REST 구성 파일 이름인 "servicenow.rest"로 설정합니다.그런 다음 ServiceNow REST 구성 파일을 기본 인증 또는 OAuth2.0과 함께 사용할 수 있습니다.
snowflakedb_type가SNOWFLAKE인 경우 선택적 매개변수인role,schema및warehouse가 적합합니다. 이러한 값은 기본값이 아닌 다른 스키마, 롤 또는 웨어하우스 값을 지정합니다. 예:gateway_params => JSON_OBJECT( 'db_type' value 'snowflake', 'role' value 'ADMIN', 'schema' value 'PUBLIC', 'warehouse' value 'TEST' ) -
-
private_target매개변수를 사용하는 경우 자율운영 AI 데이터베이스에서 프라이빗 엔드포인트에 있는 데이터베이스 서비스로의 데이터베이스 링크는 상용 리전 및 미국 정부 리전에서만 지원됩니다.이 기능은 모든 상업 지역에서 기본적으로 사용으로 설정됩니다.
이 기능은 새로 프로비전된 데이터베이스에 대해 미국 정부 지역에서 기본적으로 사용으로 설정됩니다.
프라이빗 끝점에 있는 기존 US Government 데이터베이스의 경우 Autonomous AI Database에서 미국 정부 지역의 대상으로 데이터베이스 링크를 생성하려면 Oracle Cloud Support에서 서비스 요청을 제출하고 정부 지역의 데이터베이스 연결 기능에서 프라이빗 끝점을 사용으로 설정하도록 요청하십시오.
미국 정부 리전에는 다음이 포함됩니다.
- 비Oracle 데이터베이스에 접속할 때는 대상 데이터베이스에 퍼블릭 IP 또는 퍼블릭 호스트 이름을 통해 액세스할 수 있는 경우에만 데이터베이스 링크가 지원됩니다.
-
ADMIN 이외의 다른 사용자와 함께
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK를 실행하려면 해당 사용자에게EXECUTE및CREATE DATABASE LINK권한을 부여해야 합니다.예를 들어, ADMIN으로 다음 명령을 실행하여atpc_user에 권한을 부여합니다.GRANT EXECUTE ON DBMS_CLOUD_ADMIN TO atpc_user; GRANT CREATE DATABASE LINK TO atpc_user;또한 ADMIN 스키마가 아닌 스키마(예:
atpc_user라는 스키마)에서 데이터베이스 링크를 생성하는 경우atpc_user스키마가DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK와 함께 사용하는 인증서를 소유해야 합니다. -
directory_name매개변수로 지정된 디렉토리당 하나의 전자 지갑 파일만 적합합니다. 한 번에 하나의cwallet.sso만 전자 지갑 파일에 대해 선택한 디렉토리로 업로드할 수 있습니다. 즉, 디렉토리에cwallet.sso가 있으면 해당 디렉토리의 전자 지갑이 적합한 데이터베이스에 대한 데이터베이스 링크만 생성할 수 있습니다. 데이터베이스 링크와 함께 여러cwallet.sso파일을 사용하려면 추가 디렉토리를 만들고 각cwallet.sso를 다른 디렉토리에 배치해야 합니다.디렉토리 생성에 대한 자세한 내용은 자율운영 AI 데이터베이스에서 디렉토리 생성을 참조하십시오.
-
자율운영 AI 데이터베이스에 대한 데이터베이스 링크를 생성하려면 소스 데이터베이스에서
GLOBAL_NAMES을FALSE로 설정합니다(자율운영 AI 데이터베이스가 아님).SQL> ALTER SYSTEM SET GLOBAL_NAMES = FALSE; System altered. SQL> SHOW PARAMETER GLOBAL_NAMES NAME TYPE VALUE ---------------------- ----------- ----------- global_names boolean FALSE -
private_target매개변수가TRUE인 경우hostname매개변수는 VCN 내의 프라이빗 호스트를 지정합니다.
예
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'DB_LINK_CRED',
username => 'adb_user',
password => 'password');
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name => 'SALESLINK',
hostname => 'adb.eu-frankfurt-1.oraclecloud.com',
port => '1522',
service_name => 'example_medium.atpc.example.oraclecloud.com',
ssl_server_cert_dn => 'CN=atpc.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
credential_name => 'DB_LINK_CRED');
END;
/
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'AWS_REDSHIFT_LINK_CRED',
username => 'NICK',
password => 'password'
);
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name => 'AWSREDSHIFT_LINK',
hostname => 'example.com',
port => '5439',
service_name => 'example_service_name',
ssl_server_cert_dn => NULL,
credential_name => 'AWS_REDSHIFT_LINK_CRED',
gateway_params => JSON_OBJECT('db_type' value 'awsredshift'));
END;
/
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'PRIVATE_ENDPOINT_CRED',
username => 'db_user',
password => 'password'
);
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name => 'PRIVATE_ENDPOINT_DB_LINK',
hostname => 'exampleHostname',
port => '1521',
service_name => 'exampleServiceName',
credential_name => 'PRIVATE_ENDPOINT_CRED',
ssl_server_cert_dn => NULL,
directory_name => NULL,
private_target => TRUE);
END;
/
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'GOOGLE_BIGQUERY_CRED',
params => JSON_OBJECT( 'gcp_oauth2' value JSON_OBJECT(
'client_id' value 'client_id',
'client_secret' value 'client_secret',
'refresh_token' value 'refresh_token' )));
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name => 'GOOGLE_BIGQUERY_LINK',
hostname => 'example.com',
port => '443',
service_name => 'example_service_name',
credential_name => 'GOOGLE_BIGQUERY_CRED',
gateway_params => JSON_OBJECT(
'db_type' value 'google_bigquery',
'project' value 'project_name1' ));
END;
/
SELECT를 Google BigQuery 또는 Google Analytics와 함께 사용할 때 지정하는 테이블 이름은 따옴표로 묶어야 합니다. 예:
SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK
프라이빗 끝점에서 대상 Oracle RAC 데이터베이스와 함께 rac_hostnames 매개변수를 사용합니다.
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'DB_LINK_CRED1',
username => 'adb_user',
password => 'password');
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
db_link_name => 'SALESLINK',
rac_hostnames => '["sales1-svr1.example.adb.us-ashburn-1.oraclecloud.com",
"sales1-svr2.example.adb.us-ashburn-1.oraclecloud.com",
"sales1-svr3.example.adb.us-ashburn-1.oraclecloud.com"]',
port => '1522',
service_name => 'example_high.adb.oraclecloud.com',
ssl_server_cert_dn => 'CN=adb.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
credential_name => 'DB_LINK_CRED1',
directory_name => 'EXAMPLE_WALLET_DIR',
private_target => TRUE);
END;
/
DETACH_FILE_SYSTEM 프로시저
이 프로시저는 데이터베이스에서 파일 시스템을 분리합니다.
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM 프로시저는 파일 시스템을 데이터베이스에서 분리합니다. 이 외에도 DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM 프로시저는 DBA_CLOUD_FILE_SYSTEMS 뷰에서 파일 시스템에 대한 정보도 제거합니다.
구문
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM(
file_system_name IN VARCHAR2
);매개변수
| 매개변수 | 설명 |
|---|---|
|
|
파일 시스템의 이름을 지정합니다. 이 매개변수는 필수입니다. |
예:
BEGIN
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
file_system_name => 'FSS'
);
END;
/ 사용법 참고
-
이 프로시저를 실행하려면 ADMIN 사용자로 로그인하거나
DBMS_CLOUD_ADMIN에 대한EXECUTE권한이 있어야 합니다. -
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM프로시저를 사용하여 디렉토리에서 파일 시스템을 분리하려면 데이터베이스의 디렉토리 객체에 대한WRITE권한이 있어야 합니다. -
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM프로시저는 프라이빗 끝점이 사용으로 설정된 데이터베이스의 프라이빗 파일 스토리지 서비스만 분리할 수 있습니다.자세한 내용은 OCI File Storage Service 및 Configure a Development System to Access the Database을 참조하십시오.
-
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM프로시저는 고객의 VCN(가상 클라우드 네트워크)에서 네트워크 파일 시스템 호스트 이름을 조회합니다. 위치에 지정된 호스트 이름을 찾을 수 없는 경우"ORA-20000: Mounting NFS fails"오류가 반환됩니다.
DISABLE_EXTERNAL_AUTHENTICATION 프로시저
데이터베이스에 대한 외부 인증 체계를 통한 사용자 인증을 사용 안함으로 설정합니다.
구문
DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
예외사항
| 예외사항 | 오류 | 설명 |
|---|---|---|
invalid_ext_auth |
ORA-20004 |
자세한 설명은 함께 표시되는 메시지를 참조하십시오. |
예
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/
PL/SQL procedure successfully completed.
DROP_DATABASE_LINK 프로시저
이 프로시저는 데이터베이스 링크를 삭제합니다.
구문
DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK(
db_link_name IN VARCHAR2,
public_link IN BOOLEAN DEFAULT);
매개변수
| 매개변수 | 설명 |
|---|---|
|
|
삭제할 데이터베이스 링크 이름입니다. |
|
|
이 매개변수의 기본값은 |
예
BEGIN
DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK(
db_link_name => 'SALESLINK' );
END;
/사용법 참고
데이터베이스 링크 사용이 완료되면 DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK를 실행하여 Oracle 데이터베이스 보안을 유지하면 저장된 전자 지갑 파일이 제거됩니다. 예:
-
객체 저장소에서 전자 지갑 파일을 제거합니다.
-
DBMS_CLOUD.DELETE_FILE을 사용하여 전자 지갑 파일이 업로드된 사용자 정의 디렉토리 또는data_pump_dir디렉토리에서 전자 지갑 파일을 제거합니다.
ENABLE_EXTERNAL_AUTHENTICATION 프로시저
사용자가 외부 인증 체계를 사용하여 데이터베이스에 로그인할 수 있도록 합니다.
구문
DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type IN VARCHAR2,
force IN BOOLEAN DEFAULT FALSE,
params IN CLOB DEFAULT NULL
);
매개변수
| 매개변수 | 설명 |
|---|---|
|
|
외부 인증 유형을 지정합니다. 적합한 값은 또는 입니다.
|
|
|
(선택 사항) 현재 사용으로 설정된 외부 인증 체계를 무효화합니다. 적합한 값은 기본값은 |
params |
외부 인증에 대한 추가 매개변수를 제공하는 JSON 문자열입니다.
|
예외사항
| 예외사항 | 오류 | 설명 |
|---|---|---|
invalid_ext_auth |
ORA-20004 |
자세한 설명은 함께 표시되는 메시지를 참조하십시오. |
사용법 참고
-
typeOCI_IAM를 사용할 경우 리소스 주체가 자율운영 AI 데이터베이스 인스턴스에서 사용으로 설정되지 않은 경우 이 루틴은DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL를 사용하여 리소스 주체를 사용으로 설정합니다. -
이 절차에서는
IDENTITY_PROVIDER_TYPE및IDENTITY_PROVIDER_CONFIG시스템 매개변수를 Oracle Cloud Infrastructure Identity and Access Management 인증 및 권한 부여를 사용하여 인스턴스에 액세스하는 데 필요한 사용자로 설정합니다.
예
OCI_IAM 인증 사용
BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'OCI_IAM',
force=> TRUE );
END;
/
PL/SQL procedure successfully completed.
Microsoft Active Directory에 대해 CMU 인증 사용
params JSON 인수를 통해 CMU 구성 파일이 포함된 디렉토리 이름을 전달합니다.
BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'CMU',
force => TRUE,
params => JSON_OBJECT('directory_name' value 'CMU_DIR'); // CMU_DIR directory object already exists
END;
/
PL/SQL procedure successfully completed.
params JSON 인수를 통해 CMU 구성 파일이 포함된 오브젝트 스토리지 위치를 가리키는 위치 URI를 전달합니다.
BEGIN
DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'CMU',
params => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
'credential_name' value 'my_credential_name')
);
END;
/
PL/SQL procedure successfully completed.
Azure AD 인증 사용
BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'AZURE_AD',
force => TRUE,
params => JSON_OBJECT( 'tenant_id' VALUE '....',
'application_id' VALUE '...',
'application_id_uri' VALUE '.....' ));
END;
/
PL/SQL procedure successfully completed.
Kerberos 인증 사용
params JSON 인수를 통해 Kerberos 구성 파일이 포함된 디렉토리 이름을 전달합니다.
BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'KERBEROS',
force => TRUE,
params => JSON_OBJECT('directory_name' value 'KERBEROS_DIR'); // KERBEROS_DIR directory object already exists
END;
/
PL/SQL procedure successfully completed.
params JSON 인수를 통해 Kerberos 구성 파일이 포함된 오브젝트 스토리지 위치를 가리키는 위치 URI를 전달합니다.
BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'KERBEROS',
force => TRUE,
params => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
'credential_name' value 'my_credential_name');
END;
/
params JSON 인수에서 kerberos_service_name을 사용하여 서비스 이름을 전달합니다.
BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
type => 'KERBEROS',
force => TRUE,
params => JSON_OBJECT('directory_name' value 'KERBEROS_DIR', // KERBEROS_DIR directory object already exists
'kerberos_service_name' value 'oracle' ));
END;
/
자율운영 AI 데이터베이스 인스턴스에서 Kerberos가 사용으로 설정된 후 다음 질의를 사용하여 Kerberos 서비스 이름을 확인합니다.
SELECT SYS_CONTEXT('USERENV','KERBEROS_SERVICE_NAME') FROM DUAL;
DBMS_CLOUD_ADMIN 예외
다음 표에서는 DBMS_CLOUD_ADMIN에 대한 예외사항을 설명합니다.
| 예외사항 | 코드 | 설명 |
|---|---|---|
invalid_service |
20001 | 부적합한 서비스가 지정되었습니다. |
service_not_exist |
20002 | 지정된 서비스가 존재하지 않습니다. |
default_service |
20003 | 지정된 서비스를 수정할 수 없습니다. |
invalid_char_set |
20029 | 사전 조건이 누락되었거나 부적합한(국가) 문자 집합입니다. |
invalid_enc_key_attr |
20030 | 키 관리에 대한 인수가 누락되었거나 부적합합니다. |
Already Using Oracle Managed Key |
000000 |
데이터베이스가 이미 Oracle 관리 키를 사용하고 있습니다. 이미 Oracle 관리 키를 사용하는 동안 프로시저를 호출하려고 시도하는 중입니다. |
Argument Provided for the procedure |
ORA-0000 |
프로시저에 대한 인수가 제공됩니다. 예상 오류 메시지: 이 프로시저에 인수가 필요하지 않습니다. |