DBMS_CLOUD_ADMIN 패키지
이 절에서는 Autonomous Database와 함께 제공되는 DBMS_CLOUD_ADMIN
서브프로그램을 다룹니다.
하위 프로그램 | 설명 |
---|---|
이 프로시저는 데이터베이스의 디렉토리에 파일 시스템을 연결합니다. |
|
이 프로시저는 Target Database에 대한 데이터베이스 링크를 생성합니다. 다른 Autonomous Database 인스턴스, Autonomous Database가 아닌 Oracle Database 또는 Oracle이 관리하는 이기종 연결을 사용하는 비Oracle Database에 대한 데이터베이스 링크를 생성하는 옵션이 있습니다. |
|
이 프로시저는 데이터베이스의 디렉토리에서 파일 시스템을 분리합니다. |
|
이 절차에서는 Autonomous Database 인스턴스에 대한 외부 인증을 사용 안함으로 설정합니다. |
|
이 프로시저는 데이터베이스 링크를 삭제합니다. |
|
이 절차에서는 사용자가 지정된 외부 인증 체계를 사용하여 Autonomous Database에 로그온할 수 있습니다. |
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 Database가 NFSv4 서버에 액세스할 수 있도록 일치하는 프로토콜을 사용하여 NFS가 연결됩니다. 분리한 후 다시 연결하지 않으면 NFS 서버에 액세스할 수 없으며"Protocol not supported"
과 같은 오류가 표시될 수 있습니다.
CREATE_DATABASE_LINK 프로시저
오버로드된 폼은 다음을 지원합니다.
-
gateway_params
매개변수를 사용하면 Oracle이 관리하는 이기종 접속을 사용하여 데이터베이스 링크를 생성할 수 있습니다. 이 링크는 지원되는 비Oracle 데이터베이스에 대한 링크입니다. -
rac_hostnames
매개변수를 사용하면 프라이빗 끝점의 Autonomous Database에서 대상 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 인증서가 포함된 전자 지갑으로 사전 구성됩니다. 전자 지갑 없이 Autonomous Database 대상에 퍼블릭 끝점 링크: TLS(전자 지갑) 없이 퍼블릭 끝점에서 Autonomous Database 대상에 접속하려면 다음과 같이 하십시오.
전자 지갑이 없는 프라이빗 끝점 링크: 전자 지갑 없이 프라이빗 끝점에서 Oracle Database에 접속하려면 다음과 같이 하십시오.
|
credential_name |
|
directory_name |
Oracle이 관리하는 이기종 연결은 대부분의 일반적인 신뢰할 수 있는 루트 및 중간 SSL 인증서가 포함된 전자 지갑으로 사전 구성됩니다. 전자 지갑 없이 Autonomous Database 대상에 퍼블릭 끝점 링크: TLS(전자 지갑) 없이 퍼블릭 끝점에서 Autonomous Database에 접속하려면 다음과 같이 하십시오.
또한 TCP를 사용하여 Autonomous Database에 접속하려면 전자 지갑이 없는 프라이빗 끝점 링크: 전자 지갑 없이 프라이빗 끝점에서 대상 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_analytics
db_type
가google_analytics
인 경우 지정하는 인증서가 Google OAuth 인증서여야 합니다(gcp_oauth2)
자세한 내용은 CREATE_CREDENTIAL 프로시저 참조).google_bigquery
db_type
가google_bigquery
인 경우 지정하는 인증서가 Google OAuth 인증서여야 합니다(gcp_oauth2)
자세한 내용은 CREATE_CREDENTIAL 프로시저 참조).db_type
가google_bigquery
인 경우project
매개변수가 적합합니다. 이 매개변수는google_bigquery
에 대한 프로젝트 이름을 지정하며 필수입니다.SELECT
를 Google BigQuery과 함께 사용할 때 지정하는 테이블 이름은 따옴표로 묶어야 합니다. 예:SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK
hive
db_type
가hive
인 경우http_path
매개변수가 적합합니다. 이 매개변수는 필요한 경우 Hive 인스턴스에 접속하기 위한 HttpPath 값을 지정합니다.salesforce
db_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을 참조하십시오.
servicenow
ServiceNow에 접속하고 데이터를 가져오려면 게이트웨이 매개변수
directory_name
및file_name
를 제공해야 합니다. 이러한 매개변수는 JSON 응답을 관계형 모델에 매핑하는 모델 파일(REST 구성 파일)을 지정합니다. 모델 파일은 JSON 응답을 처리하기 위한 끝점, 테이블 매핑 및 HTTP 응답 코드를 지정합니다. 자세한 내용은 모델 파일 구문 및 예제 모델 파일을 참조하십시오.gateway_params
매개변수를db_type
servicenow
와 함께 사용할 경우 다음 두 가지 옵션이 지원됩니다.-
기본 인증:
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과 함께 사용할 수 있습니다.
snowflake
db_type
가SNOWFLAKE
인 경우 선택적 매개변수인role
,schema
및warehouse
가 적합합니다. 이러한 값은 기본값이 아닌 다른 스키마, 롤 또는 웨어하우스 값을 지정합니다. 예:gateway_params => JSON_OBJECT( 'db_type' value 'snowflake', 'role' value 'ADMIN', 'schema' value 'PUBLIC', 'warehouse' value 'TEST' )
-
-
private_target
매개변수를 사용하는 경우 Autonomous Database에서 프라이빗 끝점에 있는 데이터베이스 서비스로의 데이터베이스 링크는 상용 지역 및 미국 정부 지역에서만 지원됩니다.이 기능은 모든 상업 지역에서 기본적으로 사용으로 설정됩니다.
이 기능은 새로 프로비전된 데이터베이스에 대해 미국 정부 지역에서 기본적으로 사용으로 설정됩니다.
프라이빗 끝점에 있는 기존 미국 정부 데이터베이스의 경우 Autonomous 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
를 다른 디렉토리에 배치해야 합니다.디렉토리 생성에 대한 자세한 내용은 Autonomous Database에서 디렉토리 생성을 참조하십시오.
-
Autonomous Database에 대한 데이터베이스 링크를 생성하려면 소스 데이터베이스(비Autonomous Database)에서
GLOBAL_NAMES
를FALSE
로 설정합니다.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 |
자세한 설명은 함께 표시되는 메시지를 참조하십시오. |
사용법 참고
-
type
OCI_IAM
를 사용할 경우 Autonomous Database 인스턴스에서 리소스 주체가 사용으로 설정되지 않은 경우 이 루틴은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;
/
Autonomous Database 인스턴스에서 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 |
프로시저에 대한 인수가 제공됩니다. 예상 오류 메시지: 이 프로시저에 인수가 필요하지 않습니다. |