Base Database Service에서 ID 및 액세스 관리 인증 사용
Oracle Cloud Infrastructure Identity and Access Management(OCI IAM) 인증 및 권한 부여를 사용하여 IAM 사용자가 IAM 인증서로 데이터베이스에 액세스할 수 있도록 기본 데이터베이스 서비스의 Oracle Database를 구성할 수 있습니다.
주:
Oracle Database는 ID 도메인이 포함되지 않은 레거시 IAM 및 ID 도메인이 포함된 OCI IAM용 Base Database Service 통합을 지원합니다. ID 도메인에서 IAM을 사용할 경우 기본 및 비기본 도메인 사용자와 그룹이 모두 지원됩니다.기본이 아닌 사용자정의 도메인에 대한 지원은 Oracle Database 릴리스 19c, 버전 19.21 이상에서만 사용할 수 있습니다(Oracle Database 릴리스 21c은 사용할 수 없음).
관련 항목
IAM 인증 정보
OCI IAM과 Base Database Service의 통합은 데이터베이스 비밀번호 검증자 인증 및 토큰 기반 인증을 모두 지원합니다. 기준 데이터베이스 서비스에서 IAM 사용자를 사용하기 위한 아키텍처에 대한 자세한 내용은 Authenticating and Authorizing IAM Users for Oracle DBaaS Databases를 참조하십시오.
IAM 데이터베이스 비밀번호 인증
Oracle Database 인스턴스를 사용으로 설정하여 OCI IAM 데이터베이스 비밀번호를 통한 사용자 액세스를 허용할 수 있습니다(비밀번호 검증기 사용).
암호 검증자 데이터베이스 액세스의 경우 IAM 유저 및 OCI 응용 프로그램에 대한 매핑을 Oracle Database instance에 생성합니다. IAM 사용자 계정 자체는 IAM에서 관리됩니다. 사용자 계정 및 사용자 그룹은 기본 도메인 또는 사용자 정의 비기본 도메인에 있을 수 있습니다.
주:
지원되는 모든 12c 이상의 데이터베이스 클라이언트를 Oracle Database에 대한 IAM 데이터베이스 비밀번호 액세스에 사용할 수 있습니다.OCI IAM 데이터베이스 비밀번호를 사용하면 Oracle Database 사용자가 일반적으로 사용자 이름과 비밀번호를 사용하여 로그인하므로 IAM 사용자가 데이터베이스 인스턴스에 로그인할 수 있습니다. 사용자가 IAM 사용자 이름 및 IAM 데이터베이스 비밀번호를 입력합니다. IAM 데이터베이스 비밀번호는 OCI 콘솔 비밀번호와 다른 비밀번호입니다. 암호 검증기가 있는 IAM 유저를 사용하면 데이터베이스 클라이언트가 Oracle Database 12c 암호 검증기를 지원하는 한 지원되는 데이터베이스 클라이언트로 데이터베이스에 로그인할 수 있습니다.
IAM SSO 토큰 기반 인증
OCI IAM SSO 토큰을 사용하도록 Oracle Database 인스턴스를 사용으로 설정할 수 있습니다.
토큰 데이터베이스 액세스를 위해 IAM 유저 및 OCI 응용 프로그램에 대한 매핑을 Oracle Database instance에 생성합니다. IAM 사용자 계정 자체는 IAM에서 관리됩니다. 사용자 계정 및 사용자 그룹은 기본 도메인 또는 사용자 정의 비기본 도메인에 있을 수 있습니다.
데이터베이스 클라이언트는 여러 가지 방법으로 IAM 데이터베이스 토큰을 얻을 수 있습니다.
- 클라이언트 응용 프로그램 또는 도구는 사용자에 대해 IAM에서 데이터베이스 토큰을 요청할 수 있으며 클라이언트 API를 통해 데이터베이스 토큰을 전달할 수 있습니다. API를 사용하여 토큰을 전송하면 데이터베이스 클라이언트의 다른 설정이 무효화됩니다. IAM 데이터베이스 토큰을 사용하려면 Oracle Database 클라이언트 19.16 이상(21c 아님)이 필요합니다. 일부 Oracle Database 클라이언트 21.5 이상에서는 제한된(전체 아님) IAM 데이터베이스 토큰 기능을 사용할 수 있습니다.
- 애플리케이션 또는 툴이 클라이언트 API를 통해 IAM 데이터베이스 토큰 요청 및 데이터베이스 전송을 지원하지 않는 경우, IAM 사용자는 먼저 OCI CLI(명령행 인터페이스)를 사용하여 IAM 데이터베이스 토큰을 검색하여 파일 위치에 저장할 수 있습니다. 예를 들어, 이 연결 방식을 사용하여 SQL*Plus 및 기타 응용 프로그램과 툴을 사용하려면 먼저 OCI CLI를 사용하여 데이터베이스 토큰을 얻습니다. 데이터베이스 클라이언트가 IAM 데이터베이스 토큰에 대해 구성된 경우 사용자가 슬래시 로그인 양식으로 로그인하면 데이터베이스 드라이버는 기본 또는 지정된 파일 위치에 저장된 IAM 데이터베이스 토큰을 사용합니다.
- 클라이언트 애플리케이션 또는 툴은 OCI IAM 인스턴스 주체 또는 리소스 주체를 사용하여 IAM 데이터베이스 토큰을 가져오고, IAM 데이터베이스 토큰을 사용하여 데이터베이스 인스턴스에 대해 자신을 인증할 수 있습니다.
- IAM 유저와 OCI 애플리케이션은 API 키 사용을 비롯한 여러 가지 방법으로 IAM에서 데이터베이스 토큰을 요청할 수 있습니다.
클라이언트 접속 구성에 대한 자세한 내용은 IAM 토큰을 사용하는 SQL*Plus에 대한 클라이언트 접속 구성을 참조하십시오. OCI 클라우드 셸 내에서 위임 토큰을 사용하는 것과 같은 다른 방법에 대한 자세한 내용은 Authenticating and Authorizing IAM Users for Oracle DBaaS Databases를 참조하십시오.
유저가 로그인할 때 유저 이름과 암호를 입력하면 데이터베이스 드라이버는 암호 확인자 메소드를 사용하여 데이터베이스에 기본 방식으로 액세스합니다.
필요 조건
기준 데이터베이스 서비스의 IAM 인증에는 다음 필요 조건이 필요합니다.
네트워크 설정
데이터베이스에서 IAM 인증을 사용하려면 먼저 네트워킹 서비스를 사용하여 서비스 게이트웨이, 경로 규칙 및 송신 보안 규칙을 VCN(가상 클라우드 네트워크) 및 데이터베이스 리소스가 상주하는 서브넷에 추가해야 합니다.
- 서비스 게이트웨이 생성의 지침에 따라 데이터베이스 리소스가 상주하는 VCN에서 서비스 게이트웨이를 생성합니다.
- 서비스 게이트웨이를 생성한 후 데이터베이스 리소스가 상주하는 각 서브넷(VCN)에 경로 규칙 및 송신 보안 규칙을 추가하여 해당 리소스가 게이트웨이를 사용하여 IAM 인증을 사용할 수 있도록 합니다.
- 서브넷의 서브넷 세부 정보 페이지로 이동합니다.
- 서브넷 정보 탭에서 서브넷의 경로 테이블 이름을 눌러 경로 테이블 세부정보 페이지를 표시합니다.
- 기존 경로 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.
- 대상: Oracle Services Network의 모든 IAD 서비스
- 대상 유형: 서비스 게이트웨이
- 대상: VCN에서 방금 생성한 서비스 게이트웨이의 이름입니다.
해당 규칙이 없는 경우 경로 규칙 추가를 누르고 해당 특성을 가진 경로 규칙을 추가합니다.
- 서브넷에 대한 서브넷 세부정보 페이지로 돌아갑니다.
- 서브넷의 보안 목록 테이블에서 서브넷의 보안 목록 이름을 눌러 해당 보안 목록 세부정보 페이지를 표시합니다.
- 사이드 메뉴의 리소스에서 송신 규칙을 누릅니다.
- 기존 송신 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.
- Stateless: 아니요
- 대상: Oracle Services Network의 모든 IAD 서비스
- IP 프로토콜: TCP
- 소스 포트 범위: 모두
- 대상 포트 범위: 443
- 해당 규칙이 없으면 Add Egress Rules를 누르고 이러한 특성을 가진 송신 규칙을 추가합니다.
환경 설정
WALLET_ROOT가 구성되었는지 여부를 확인합니다.
show parameters wallet_root;
NAME TYPE VALUE
------------------ ----------- --------
wallet_root string
WALLET_ROOT에 대한 디렉토리 위치가 표시되지 않으면 이 데이터베이스를 IAM으로 구성할 수 없습니다. WALLET_ROOT는 다음에 데이터베이스에 패치를 적용할 때 설정해야 합니다. 새 데이터베이스에는 WALLET_ROOT가 설정됩니다.
TLS 구성
데이터베이스 클라이언트에서 데이터베이스 서버로 IAM 토큰을 전송할 때는 TLS 연결을 설정해야 합니다. 기본 DB 서비스 인스턴스에 대한 데이터베이스 인증서가 있는 TLS 전자 지갑은 WALLET_ROOT 위치 아래에 저장되어야 합니다. 다음과 같이 tls 디렉토리를 생성합니다. WALLET_ROOT/<PDB GUID>/tls
데이터베이스 클라이언트와 서버 간에 TLS를 구성할 때는 몇 가지 옵션을 고려해야 합니다.
- 자체 서명된 데이터베이스 서버 인증서와 일반적으로 알려진 인증 기관에서 서명한 데이터베이스 서버 인증서를 사용합니다.
- 단방향 TLS(TLS)와 상호 또는 양방향 TLS(mTLS) 비교
- 전자 지갑이 있거나 없는 클라이언트입니다.
자체 서명 인증서: 자체 서명된 인증서를 사용하는 것은 내부적으로 IT 리소스에 대한 일반적인 관행입니다. 사용자가 직접 생성할 수 있고 무료이기 때문입니다. 이 리소스(이 경우 데이터베이스 서버)에는 데이터베이스 클라이언트에 대해 자체 인증을 수행할 수 있는 자체 서명 인증서가 있습니다. 자체 서명된 인증서와 루트 인증서는 데이터베이스 서버 전자 지갑에 저장됩니다. 데이터베이스 클라이언트가 데이터베이스 서버 인증서를 인식할 수 있으려면 클라이언트에서도 루트 인증서의 복사본이 필요합니다. 이 자체 생성된 루트 인증서는 클라이언트측 전자 지갑에 저장하거나 클라이언트 시스템 기본 인증서 저장소에 설치할 수 있습니다(Windows 및 Linux만 해당). 세션이 설정되면 데이터베이스 클라이언트는 데이터베이스 서버에서 보낸 인증서가 동일한 루트 인증서로 서명되었는지 확인합니다.
알려진 인증 기관: 일반적으로 알려진 루트 인증 기관을 사용하면 루트 인증서가 클라이언트 시스템 기본 인증서 저장소에 이미 저장된 것일 가능성이 높습니다. 공통 루트 인증서인 경우 클라이언트가 루트 인증서를 저장하기 위한 추가 단계는 없습니다. 단점은 일반적으로 이와 관련된 비용이 있다는 것입니다.
단방향 TLS: 표준 TLS 세션에서 서버만 자체 인증을 위해 클라이언트에 인증서를 제공합니다. 클라이언트는 서버에 자신을 인증하기 위해 별도의 클라이언트 인증서를 가질 필요가 없습니다(HTTPS 세션 설정 방법과 유사). 데이터베이스에는 서버 인증서를 저장하기 위한 전자 지갑이 필요하지만 클라이언트가 서버 인증서 서명에 사용되는 루트 인증서만 있으면 됩니다.
양방향 TLS(상호 TLS, mTLS라고도 함): mTLS에서 클라이언트와 서버 모두 서로에게 제공되는 ID 인증서를 가집니다. 대부분의 경우 동일한 루트 인증서가 이 두 인증서에 모두 서명되어 데이터베이스 서버 및 클라이언트에서 동일한 루트 인증서를 사용하여 다른 인증서를 인증할 수 있습니다. 사용자 ID가 인증서를 통해 데이터베이스 서버에 의해 인증되기 때문에 mTLS를 사용하여 사용자를 인증하는 경우도 있습니다. 이는 IAM 토큰을 전달하는 데 필요하지 않지만 IAM 토큰을 전달할 때 사용할 수 있습니다.
전자 지갑이 있는 클라이언트: mTLS를 사용하여 클라이언트 인증서를 저장할 때는 클라이언트 전자 지갑이 필수입니다. 그러나 루트 인증서는 동일한 전자 지갑 또는 시스템 기본 인증서 저장소에 저장할 수 있습니다.
- 클라이언트가 자체 인증서를 가지고 있지 않은 경우 단방향 TLS가 구성되고 있습니다.
- 데이터베이스 서버 인증서에 서명한 루트 인증서는 시스템 기본 인증서 저장소에 저장됩니다. 서버 인증서가 공통 인증 기관에서 서명된 경우 루트 인증서가 이미 있는 것 같습니다. 자체 서명된 인증서인 경우 클라이언트 전자 지갑 사용을 피하기 위해 루트 인증서를 시스템 기본 인증서 저장소에 설치해야 합니다.
데이터베이스 클라이언트와 데이터베이스 서버 간에 TLS를 구성하는 방법에 대한 자세한 내용은 Configuring Transport Layer Security Authentication을 참조하십시오.
자체 서명된 인증서를 사용하도록 선택하고 추가 전자 지갑 관련 작업을 수행하려면 Database Security Guide의 orapki
CLI(명령줄 인터페이스) 참조 설명서를 참조하십시오. PKI(공개 키 기반 구조) 요소 관리를 참조하십시오.
외부 ID 제공자 변경
이 항목에서는 외부 ID 제공자를 CMU(Centrally Managed Users)에서 OCI IAM 인증 및 권한 부여로, 그 반대로 Base Database Service에서 변경하는 단계에 대해 설명합니다.
사용자에 대한 OCI IAM 인증 및 권한 부여는 기본적으로 새로 프로비전된 데이터베이스에 대해 사용으로 설정되지 않습니다. 외부 인증을 위한 또 다른 옵션은 CMU-AD(Centrally Managed Users with Active Directory)를 사용하는 것입니다. 지정된 시간에 하나의 외부 인증 체계만 사용으로 설정할 수 있습니다.
OCI IAM 인증 및 권한 부여 사용
다음 단계를 수행하여 OCI IAM 인증 및 권한 부여를 사용으로 설정합니다.
ALTER SYSTEM
명령을 사용하여 OCI IAM 인증 및 권한 부여를 사용으로 설정합니다.ALTER SYSTEM SET IDENTITY_PROVIDER_TYPE=OCI_IAM SCOPE=BOTH;
IDENTITY_PROVIDER_TYPE
시스템 매개변수의 값을 확인합니다.SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
NAME VALUE ---------------------- ------- identity_provider_type OCI_IAM
IDENTITY_PROVIDER_CONFIG
매개변수가 설정되었는지 확인합니다.SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_config';
IDENTITY_PROVIDER_CONFIG
매개변수가 설정된 경우 이 매개변수를 재설정합니다.ALTER SYSTEM RESET IDENTITY_PROVIDER_CONFIG SCOPE=BOTH;
OCI IAM 인증 및 권한 부여 사용 안함
다음 단계를 수행하여 OCI IAM 인증 및 권한 부여를 사용 안함으로 설정합니다.
ALTER SYSTEM
명령을 사용하여 OCI IAM 통합을 사용 안함으로 설정합니다.ALTER SYSTEM RESET IDENTITY_PROVIDER_TYPE SCOPE=BOTH;
CMU-AD 사용
다음 단계를 수행하여 AD(Active Directory) 사용자가 CMU를 사용하여 데이터베이스에 연결할 수 있도록 합니다.
- OCI IAM 인증 및 권한 부여 사용 안함에 설명된 대로 IAM 통합을 사용 안함으로 설정합니다.
- Configuring Centrally Managed Users with Microsoft Active Directory에 설명된 대로 CMU-AD를 구성합니다.
CMU-AD 사용 안함
CMU-AD를 사용 안함으로 설정하려면 다음 단계를 수행합니다.
ALTER SYSTEM
명령을 사용하여 CMU-AD를 사용 안함으로 설정합니다.ALTER SYSTEM SET LDAP_DIRECTORY_ACCESS = 'NONE';
OCI IAM 인증 및 권한 부여를 다시 사용으로 설정
다음 단계를 수행하여 IAM 사용자가 OCI IAM 인증 및 권한 부여를 사용하여 데이터베이스에 접속하도록 다시 사용으로 설정합니다.
- Disable CMU-AD에 설명된 대로 CMU-AD를 사용 안함으로 설정합니다.
- OCI IAM 인증 및 권한 부여 사용에 설명된 대로 OCI IAM 인증 및 권한 부여를 사용으로 설정합니다.
IAM 유저에 대한 IAM 그룹 및 정책 생성
이 항목에서는 IAM 사용자가 OCI 리소스, 특히 데이터베이스 인스턴스에 액세스할 수 있도록 IAM 그룹에 대한 정책 문을 작성하는 단계에 대해 설명합니다.
정책은 특정 리소스에 액세스할 수 있는 사용자 및 방법을 지정하는 명령문 그룹입니다. 전체 테넌시, 구획의 데이터베이스 또는 개별 데이터베이스에 대해 액세스 권한을 부여할 수 있습니다. 즉, 특정 그룹에 특정 구획 내의 특정 리소스 유형에 대한 특정 유형의 액세스를 제공하는 정책 문을 작성합니다.
주:
IAM 토큰을 사용하여 데이터베이스에 액세스하려면 정책을 정의해야 합니다. IAM 데이터베이스 비밀번호를 사용하여 데이터베이스에 액세스할 때는 정책이 필요하지 않습니다.데이터베이스가 IAM 유저가 IAM 토큰을 사용하여 데이터베이스에 연결할 수 있도록 하려면 다음을 수행합니다.
-
그룹을 생성하고 그룹에 사용자를 추가하여 OCI IAM 필요 조건을 수행합니다.
예를 들어,
sales_dbusers
그룹을 만듭니다.자세한 내용은 그룹 관리를 참조하십시오.
-
OCI 리소스에 대한 액세스를 사용으로 설정하는 정책 문을 작성합니다.
- OCI 콘솔에서 ID 및 보안을 누르고 정책을 누릅니다.
- 쓰기 정책을 수행하려면 정책 생성을 누르고 이름 및 설명을 입력합니다.
-
정책 작성기를 사용하여 정책을 생성합니다.
예를 들어, IAM 그룹
DBUsers
의 사용자가 테넌시의 모든 데이터베이스에 액세스할 수 있도록 허용하는 정책을 생성하려면 다음과 같이 하십시오.Allow group DBUsers to use database-connections in tenancy
예를 들어,
DBUsers
그룹의 멤버가testing_compartment
컴파트먼트의 데이터베이스에만 액세스하도록 제한하는 정책을 생성하려면 다음과 같이 하십시오.allow group DBUsers to use database-connections in compartment testing_compartment
예를 들어 컴파트먼트의 단일 데이터베이스에 대한 그룹 액세스를 제한하는 정책을 생성하려면 다음과 같이 하십시오.
allow group DBUsers to use database-connections in compartment testing_compartment where target.database.id = 'ocid1.database.oc1.iad.aabbcc'
- 생성을 누릅니다.
보험에 대한 자세한 내용은 정책 관리를 참조하십시오.
주:
다음은 기준 데이터베이스 서비스의 데이터베이스에서 IAM 사용자와 함께 사용할 정책을 생성하는 데 필요합니다.
-
정책을 통해 IAM 사용자는 구획의 전체 테넌시에 걸쳐 데이터베이스 인스턴스에 접근하거나 단일 데이터베이스 인스턴스에 대한 접근을 제한할 수 있습니다.
-
인스턴스 주체 또는 리소스 주체를 사용하여 데이터베이스 토큰을 검색하여 응용 프로그램에서 데이터베이스 인스턴스로의 연결을 설정할 수 있습니다. 인스턴스 가격 또는 리소스 주체를 사용 중인 경우 동적 그룹을 매핑해야 합니다. 따라서 인스턴스 및 리소스 주체를 배타적으로 매핑할 수 없습니다. 공유 매핑을 통해서만 매핑하고 인스턴스 또는 리소스 인스턴스를 IAM 동적 그룹에 배치할 수 있습니다.
OCI에 액세스하기 위해 생성한 정책에서 동적 그룹을 생성하고 동적 그룹을 참조할 수 있습니다.
자세한 내용은 동적 그룹 관리를 참조하십시오.
IAM 사용자 추가
데이터베이스에 대한 액세스를 허용하도록 IAM 사용자를 추가하려면 데이터베이스 전역 사용자를 IAM 그룹 또는 CREATE USER
또는 ALTER USER
문(IDENTIFIED GLOBALLY AS
절 사용)이 있는 사용자에 매핑합니다.
데이터베이스 인스턴스에 대한 IAM 사용자 권한 부여는 데이터베이스 전역 사용자(스키마)를 IAM 사용자(배타적 매핑) 또는 IAM 그룹(공유 스키마 매핑)에 매핑하는 방식으로 작동합니다.
데이터베이스 인스턴스에서 IAM 사용자 권한 부여:
다음 단계를 수행하여 데이터베이스 인스턴스에서 IAM 사용자에게 권한을 부여합니다.
- IAM을 사용하도록 설정된 데이터베이스에 ADMIN 사용자로 로그인합니다. ADMIN 사용자에게는 이러한 단계에 필요한
CREATE USER
및ALTER USER
시스템 권한이 있습니다. -
CREATE USER
또는ALTER USER
문을 사용하는 데이터베이스 사용자(스키마) 간에 매핑을 생성하고 IAM 그룹 이름을 지정하여IDENTIFIED GLOBALLY AS
절을 포함합니다.다음 구문을 사용하여 전역 사용자를 IAM 그룹에 매핑합니다.
CREATE USER global_user IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_GROUP_NAME';
예를 들어,
db_sales_group
라는 IAM 그룹을sales_group
라는 공유 데이터베이스 전역 사용자에 매핑하려면 다음과 같이 하십시오.CREATE USER sales_group IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=db_sales_group';
공유 전역 사용자 매핑을 만듭니다. 전역 사용자
sales_group
를 사용하는 매핑은 IAM 그룹의 모든 사용자에게 적용됩니다. 따라서db_sales_group
의 모든 사용자가sales_group
전역 사용자의 공유 매핑을 통해 IAM 인증서를 사용하여 데이터베이스에 로그인할 수 있습니다.다음 예에서는 기본이 아닌 도메인
sales_domain
에 대해 이 작업을 수행하는 방법을 보여줍니다.CREATE USER shared_sales_schema IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=sales_domain/db_sales_group';
- 다른 IAM 그룹 또는 사용자에 대한 추가 전역 사용자 매핑을 만들려면 각 IAM 그룹 또는 사용자에 대해 다음 단계를 수행합니다.
주:
IDENTIFIED GLOBALLY
가 아닌 데이터베이스 사용자는 데이터베이스가 IAM 인증에 대해 사용으로 설정된 경우에도 이전과 같이 계속 로그인할 수 있습니다.
로컬 IAM 유저를 Oracle Database Global User에 배타적으로 매핑:
로컬 IAM 유저를 Oracle Database Global 유저에 명시적으로 매핑하려면 다음 단계를 수행하십시오.
- IAM을 사용하도록 설정된 데이터베이스에 ADMIN 사용자로 로그인합니다. ADMIN 사용자에게는 이러한 단계에 필요한
CREATE USER
및ALTER USER
시스템 권한이 있습니다. -
CREATE USER
또는ALTER USER
문을 사용하는 데이터베이스 사용자(스키마) 간에 매핑을 생성하고 IAM 로컬 IAM 사용자 이름을 지정하여IDENTIFIED GLOBALLY AS
절을 포함합니다.예를 들어, 이름이
peter_fitch
인 새 데이터베이스 전역 사용자를 만들고 이 사용자를 이름이peterfitch
인 기존 로컬 IAM 사용자에 매핑하려면 다음과 같이 하십시오.CREATE USER peter_fitch IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=peterfitch'
다음 예에서는 기본이 아닌 도메인
sales_domain
를 지정하여 사용자를 만드는 방법을 보여줍니다.CREATE USER peter_fitch2 IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=sales_domain/peterfitch';
IAM 롤 추가
선택적으로 여러 IAM 사용자가 동일한 공유 전역 사용자에 매핑된 경우 IAM 사용자에게 추가 데이터베이스 롤 및 권한을 제공할 전역 롤을 생성합니다.
데이터베이스 사용자(스키마)에 대한 배타적 IAM 매핑을 사용하는 IAM 사용자의 경우 전역 롤 생성은 선택 사항입니다. 공유 스키마에 대한 IAM 매핑인 경우 전역 롤 생성도 선택 사항입니다. 예를 들어, 공유 스키마에 모든 권한과 롤을 부여할 수 있으며 공유 스키마에 매핑된 모든 IAM 유저에게는 공유 스키마에 할당된 권한과 롤이 부여됩니다.
선택적으로 동일한 공유 스키마를 사용하는 유저를 구분하려면 global 롤을 사용합니다. 예를 들어, 사용자 집합은 모두 동일한 공유 스키마를 가질 수 있으며 공유 스키마는 CREATE SESSION
권한을 가질 수 있습니다. 그런 다음 global 롤을 사용하여 서로 동일한 공유 스키마를 사용하는 서로 다른 유저 그룹에 할당된 차별화된 권한과 롤을 제공할 수 있습니다.
IAM 유저에게 추가 롤을 부여하는 작업은 데이터베이스 전역 롤을 IAM 그룹에 매핑하는 것입니다.
IAM 그룹에 데이터베이스 글로벌 역할 매핑:
다음 단계를 수행하여 데이터베이스 전역 롤을 IAM 그룹에 매핑합니다.
- IAM을 사용하도록 설정된 데이터베이스에 ADMIN 사용자로 로그인합니다. ADMIN 사용자에게는 이러한 단계에 필요한
CREATE USER
및ALTER USER
시스템 권한이 있습니다. -
CREATE ROLE
또는ALTER ROLE
문을 사용하여 데이터베이스 롤에 대한 데이터베이스 권한 부여를 설정하고 IAM 그룹 이름을 지정하여IDENTIFIED GLOBALLY AS
절을 포함합니다.다음 구문을 사용하여 전역 역할을 IAM 그룹에 매핑합니다.
CREATE ROLE global_role IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_GROUP_of_WHICH_the_IAM_USER_IS_a_MEMBER';
예를 들어,
ExporterGroup
라는 IAM 그룹을export_role
이라는 공유 데이터베이스 전역 롤에 매핑하려면 다음과 같이 하십시오.CREATE ROLE export_role IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=ExporterGroup';
다음 예에서는 기본이 아닌 도메인
sales_domain
를 지정하여 역할을 만드는 방법을 보여줍니다.CREATE ROLE export_role IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=sales_domain/ExporterGroup';
sales_domain
도메인에 있는ExporterGroup
의 모든 멤버는 데이터베이스에 로그인할 때 데이터베이스 전역 롤export_role
를 사용하여 권한이 부여됩니다. GRANT
문을 사용하여 필요한 권한 또는 기타 롤을 전역 롤에 부여합니다.GRANT CREATE SESSION TO export_role; GRANT DWROLE TO export_role;
- 기존 데이터베이스 롤을 IAM 그룹과 연관시키려면
ALTER ROLE
문을 사용하여 롤을 IAM 그룹에 매핑할 기존 데이터베이스 롤을 변경합니다. 다음 구문을 사용하여 기존 데이터베이스 롤을 변경하여 IAM 그룹에 매핑합니다.ALTER ROLE existing_database_role IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_Group_Name';
다른 IAM 그룹에 대한 추가 전역 역할 매핑을 추가하려면 각 IAM 그룹에 대해 위의 단계를 따르십시오.
IAM 사용자에 대한 IAM 데이터베이스 비밀번호 생성
IAM 사용자를 추가하고 IAM 사용자가 사용자 이름과 비밀번호를 제공하여 데이터베이스에 로그인하도록 허용하려면 IAM 데이터베이스 비밀번호를 생성해야 합니다. IAM 사용자 이름과 IAM 데이터베이스 암호는 두 가지 방법 중 하나로 사용할 수 있습니다.
- IAM 유저는 데이터베이스에 액세스할 때 IAM 유저 이름 및 IAM 데이터베이스 암호를 입력할 수 있습니다. 기본적으로 데이터베이스 클라이언트는 데이터베이스와 함께 일반 암호 인증 방식을 따르며 데이터베이스는 IAM에서 IAM 데이터베이스 암호 검증자를 검색합니다.
- 데이터베이스 클라이언트는 IAM 사용자 이름 및 IAM 데이터베이스 비밀번호를 사용하여 IAM 데이터베이스 토큰을 가져오도록 구성할 수 있습니다. 데이터베이스 클라이언트는 사용자 액세스를 위해 이 데이터베이스 토큰을 데이터베이스로 보냅니다.
IAM 사용자 이름 및 IAM 데이터베이스 비밀번호를 사용하여 IAM 데이터베이스 토큰을 가져오는 방법에 대한 자세한 내용은 Configuring IAM for Oracle DBaaS을 참조하십시오.
IAM 데이터베이스 비밀번호에 대한 자세한 내용은 사용자 인증서 관리의 IAM 데이터베이스 사용자 이름 및 비밀번호 작업을 참조하십시오.
IAM 인증을 사용하여 데이터베이스에 연결
데이터베이스 ADMIN 사용자가 전역 사용자 및 전역 롤을 IAM 사용자 및 IAM 그룹에 매핑한 후 사용자는 OCI IAM 인증서를 사용하여 데이터베이스 인스턴스에 로그인하거나 OCI IAM 데이터베이스 토큰을 통해 데이터베이스에 액세스합니다.
로컬 데이터베이스 계정 사용자 이름 및 암호(비전역 데이터베이스 사용자 계정)를 사용하여 데이터베이스에 로그인할 수 있습니다.
데이터베이스 클라이언트를 사용하여 OCI IAM 유저로 데이터베이스 Instance에 액세스할 수 있습니다. OCI IAM 사용자 이름 및 비밀번호 인증서와 비밀번호 검증기가 있는 클라이언트를 사용하려면 데이터베이스 클라이언트가 12c 이상이어야 합니다.
IAM 데이터베이스 토큰을 사용하려면 Oracle Database 클라이언트 19.16 이상(21c 아님)이 필요합니다. 일부 Oracle Database 클라이언트 21.5 이상에서는 제한된(전체 아님) IAM 데이터베이스 토큰 기능을 사용할 수 있습니다.
주:
데이터베이스 인스턴스가 제한 모드인 경우 ADMIN과 같은RESTRICTED SESSION
권한을 가진 사용자만 데이터베이스에 연결할 수 있습니다.
IAM을 사용하여 데이터베이스 Instance에 연결 정보
IAM 유저는 IAM 데이터베이스 암호 검증자 또는 IAM 토큰을 사용하여 데이터베이스 Instance에 연결할 수 있습니다.
IAM 데이터베이스 암호 검증자 사용은 데이터베이스 암호 인증 프로세스와 비슷합니다. 그러나 암호 검증자(암호의 암호화된 해시)가 데이터베이스에 저장되는 대신 검증자가 대신 OCI IAM 사용자 프로파일의 일부로 저장됩니다.
두번째 연결 방식은 데이터베이스에 대해 IAM 토큰을 사용합니다. 토큰 기반 액세스 사용은 기준 데이터베이스 서비스의 Oracle 데이터베이스와 같은 클라우드 리소스에 더 적합합니다. 토큰은 IAM 끝점이 적용할 수 있는 강도를 기반으로 합니다. 이는 암호만 사용하는 것보다 강력한 다중 요소 인증일 수 있습니다. 토큰을 사용할 때의 또 다른 이점은 암호 검증기(중요한 것으로 간주됨)가 메모리에 저장되거나 사용할 수 없다는 것입니다. 데이터베이스 액세스를 위해 토큰을 사용할 때는 TCPS(TLS) 연결이 필요합니다.
주:
IAM 토큰을 전달할 때는 고유 네트워크 암호화를 구성할 수 없습니다. 고유 네트워크 암호화 또는 TLS를 사용한 고유 네트워크 암호화가 아닌 TLS(전송 계층 보안)만 지원됩니다.IAM 데이터베이스 암호 검증자를 사용하는 클라이언트 연결
IAM 유저에게 필요한 권한 부여를 구성한 후 이 유저는 추가 구성 없이 기존 클라이언트 응용 프로그램(예: SQL*Plus 또는 SQLcl)을 사용하여 로그인할 수 있습니다.
IAM 유저는 현재 지원되는 데이터베이스 클라이언트를 사용하여 IAM 유저 이름과 IAM 데이터베이스 암호(OCI 콘솔 암호가 아님)를 입력합니다. 유일한 제약 조건은 데이터베이스 클라이언트 버전이 Oracle Database 릴리스 12.1.0.2 이상일 경우 Oracle Database 12c 암호를 사용한다는 것입니다. 데이터베이스 클라이언트는 12c 암호 확인자를 사용할 수 있어야 합니다. IAM에서는 11g 검증자 암호화 사용이 지원되지 않습니다. IAM 유저가 데이터베이스에 연결하기 위해 특별한 클라이언트 또는 도구 구성이 필요하지 않습니다.
데이터베이스 클라이언트는 또한 IAM 사용자 이름 및 IAM 데이터베이스 비밀번호를 사용하여 IAM에서 직접 토큰을 요청할 수 있습니다. 토큰을 가져오도록 클라이언트를 구성하는 방법에 대한 자세한 내용은 IAM 사용자 이름 및 데이터베이스 암호로 요청된 토큰을 사용하는 클라이언트 연결을 참조하십시오.
토큰을 사용하는 클라이언트 연결
데이터베이스에 대한 IAM 토큰 액세스의 경우 클라이언트 응용 프로그램 또는 도구가 IAM 사용자에게 IAM에서 데이터베이스 토큰을 요청합니다.
클라이언트 응용 프로그램은 데이터베이스 클라이언트 API를 통해 데이터베이스 클라이언트에 직접 데이터베이스 토큰을 전달합니다.
IAM 토큰을 요청하기 위해 애플리케이션 또는 툴이 업데이트되지 않은 경우 IAM 사용자는 OCI CLI를 사용하여 데이터베이스 토큰을 요청하고 저장할 수 있습니다. 다음 인증서를 사용하여 데이터베이스 액세스 토큰(db-token
)을 요청할 수 있습니다.
- 보안 토큰(IAM 인증 사용), 위임 토큰(OCI 클라우드 셸) 및
API-keys
(인증을 사용으로 설정하기 위해 IAM 사용자를 나타내는 인증서)입니다. - 데이터베이스 클라이언트가 IAM 데이터베이스 토큰을 직접 검색하는 데 사용할 수 있는 IAM 사용자 이름 및 IAM 데이터베이스 비밀번호입니다.
- 인스턴스 주체 토큰 - 인스턴스가 인증된 작업자(또는 주체)가 인증 후 서비스 리소스에 대한 작업을 수행할 수 있도록 합니다.
- 리소스 주체 토큰 - 응용 프로그램이 다른 OCI 서비스에 대해 자체 인증을 수행할 수 있는 인증서입니다.
- IAM 유저 이름 및 IAM 데이터베이스 암호(데이터베이스 클라이언트만 요청할 수 있음) 사용
IAM 유저가 슬래시 /
로그인을 사용하여 클라이언트에 로그인하고 OCI_IAM
파라미터가 구성된 경우(sqlnet.ora
, tnsnames.ora
또는 연결 문자열의 일부) 데이터베이스 클라이언트는 파일에서 데이터베이스 토큰을 검색합니다. IAM 사용자가 사용자 이름 및 비밀번호를 제출하는 경우 데이터베이스 클라이언트가 IAM 사용자 이름 및 IAM 데이터베이스 비밀번호를 사용하여 IAM에서 데이터베이스 토큰을 검색하도록 구성되지 않은 경우 연결은 IAM 데이터베이스 비밀번호 검증자를 사용하는 클라이언트 연결에 대해 설명된 IAM 데이터베이스 검증자 액세스를 사용합니다. 이 항목의 지침은 OCI CLI를 데이터베이스 토큰에 대한 도우미로 사용하는 방법을 보여줍니다. 응용 프로그램 또는 도구가 IAM에서 작동하도록 업데이트된 경우 응용 프로그램 또는 도구에 대한 지침을 따릅니다. 일반적으로 SQL*Plus 온-프레미스(On-Premise), SQLcl 온-프레미스(On-Premise), Cloud Shell의 SQL*Plus 또는 SEP 전자 지갑을 사용하는 응용 프로그램이 사용됩니다.
다음 항목에서는 다음을 수행하는 방법에 대해 설명합니다.
IAM 데이터베이스 암호를 사용하는 SQL*Plus용 클라이언트 연결 구성
IAM 데이터베이스 암호를 사용하도록 SQL*Plus를 구성할 수 있습니다.
IAM 유저로 다음 구문을 사용하여 데이터베이스에 로그인합니다.
CONNECT user_name@db_connect_string
Enter password: password
이 사양에서 user_name
은 IAM 사용자 이름입니다. 결합된 domain_name/user_name
의 경우 128바이트로 제한됩니다.
다음 예에서는 IAM 사용자 peter_fitch
가 데이터베이스 인스턴스에 로그인할 수 있는 방법을 보여줍니다.
sqlplus /nolog
connect peter_fitch@db_connect_string
Enter password: password
일부 특수 문자는 user_name
및 password
주위에 큰따옴표를 사용해야 합니다. 예:
"peter_fitch@example.com"@db_connect_string
"IAM database password"
IAM 토큰을 사용하는 SQL*Plus용 클라이언트 연결 구성
IAM 토큰을 사용하는 SQL*Plus에 대해 클라이언트 접속을 구성하려면 다음 단계를 수행하십시오.
- IAM 사용자 계정이 있는지 확인하십시오.
- IAM 관리자 및 데이터베이스 관리자에게 문의하여 구획 또는 테넌시의 데이터베이스에 액세스하고 데이터베이스의 전역 스키마에 매핑할 수 있는 정책이 있는지 확인하십시오.
- 애플리케이션 또는 툴이 직접 IAM 통합을 지원하지 않는 경우 OCI CLI를 다운로드, 설치 및 구성합니다. OCI CLI 설치 및 구성에 대한 자세한 내용은 Quickstart를 참조하십시오.
- OCI CLI 구성의 일부로 API 키를 설정하고 기본값을 선택합니다.
- IAM 사용자에 대한 API 키 액세스를 설정합니다.
db-token
를 검색합니다. 예:- OCI CLI를 사용하여
API-key
를 사용하여db-token
검색:oci iam db-token get
- 보안(또는 세션) 토큰을 사용하여
db-token
검색:oci iam db-token get --auth security_token
보안 토큰이 만료되면 사용자가 OCI에 다시 로그인할 수 있는 창이 나타납니다. 그러면 사용자에 대한 보안 토큰이 생성됩니다. OCI CLI는 이 새로고침된 토큰을 사용하여
db-token
를 가져옵니다. - 위임 토큰으로
db-token
검색: 클라우드 셸에 로그인하면 위임 토큰이 자동으로 생성되어/etc
디렉토리에 배치됩니다. 이 토큰을 가져오려면 OCI CLI에서 다음 명령을 실행합니다.oci iam db-token get
- OCI CLI를 사용하여 인스턴스 토큰 검색:
oci iam db-token get --auth instance_principal
- OCI CLI를 사용하여
자세한 내용은 Required Keys and OCIDs를 참조하십시오.
- 이 구성은 Oracle Database 19c 클라이언트에서만 작동합니다. 이 클라이언트에 대한 최신 릴리스 업데이트를 사용 중인지 확인합니다.
주:
Oracle Database 클라이언트 릴리스 21c는 제한된 IAM 토큰 기능을 제공합니다. - 기존 프로세스에 따라 데이터베이스에서 전자 지갑을 다운로드한 다음 SQL*Plus에서 사용할 수 있도록 구성 지침을 따르십시오.
sqlnet.ora
에서SSL_SERVER_DN_MATCH=ON
를 찾아 DN 일치가 사용으로 설정되었는지 확인합니다.sqlnet.ora
파일에TOKEN_AUTH=OCI_TOKEN
를 추가하여 IAM 토큰을 사용하도록 데이터베이스 클라이언트를 구성합니다. 데이터베이스 토큰 파일에 대해 기본 위치를 사용하므로 토큰 위치를 포함할 필요가 없습니다.
tnsnames.ora
접속 문자열의TOKEN_AUTH
및TOKEN_LOCATION
값이 해당 접속의sqlnet.ora
설정보다 우선합니다. 예를 들어, 연결 문자열의 경우 토큰이 기본 위치(Linux의 경우~/.oci/db-token
)에 있다고 가정합니다.(description= (retry_count=20)(retry_delay=3) (address=(protocol=tcps)(port=1522) (host=example.us-phoenix-1.oraclecloud.com)) (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com)) (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com, OU=Oracle BMCS US, O=Example Corporation, L=Redwood City, ST=California, C=US") (TOKEN_AUTH=OCI_TOKEN)))
After the connect string is updated with the TOKEN_AUTH
parameter, the IAM user can log in to the database instance by running the following command to start SQL*Plus. 연결 기술자 자체를 포함하거나 tnsnames.ora
파일의 기술자 이름을 사용할 수 있습니다.
connect /@exampledb_high
또는
connect /@(description=
(retry_count=20)(retry_delay=3)
(address=(protocol=tcps)(port=1522)
(host=example.us-phoenix-1.oraclecloud.com))
(connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
(security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com,
OU=Oracle BMCS US, O=Example Corporation,
L=Redwood City, ST=California, C=US")
(TOKEN_AUTH=OCI_TOKEN)))
sqlnet.ora
파일 또는 접속 문자열을 통해 TOKEN_AUTH
가 이미 설정되었으므로 데이터베이스 클라이언트가 이미 db-token
를 가져오도록 구성되었습니다. 데이터베이스 클라이언트는 db-token
를 가져오고 개인 키를 사용하여 서명한 다음 토큰을 데이터베이스로 보냅니다. 슬래시 /
대신 IAM 사용자 이름 및 IAM 데이터베이스 비밀번호가 지정된 경우 다른 매개변수가 지정되지 않은 경우 데이터베이스 클라이언트는 db-token
대신 비밀번호를 사용하여 접속합니다. PASSWORD_AUTH = OCI_TOKEN
그러면 데이터베이스 클라이언트가 IAM 사용자 이름 및 IAM 데이터베이스 비밀번호를 사용하여 IAM에서 토큰을 가져오도록 지시합니다. PASSWORD_AUTH,
설정 이외에 OCI_IAM_URL
, OCI_TENANCY
및 선택적으로 OCI_COMPARTMENT
및 OCI_DATABASE
도 설정해야 합니다.
Instance Principal을 사용하여 IAM 인증으로 데이터베이스에 액세스
ADMIN 사용자가 데이터베이스에서 OCI IAM을 사용으로 설정한 후 애플리케이션은 인스턴스 주체를 사용하여 OCI IAM 데이터베이스 토큰을 통해 데이터베이스에 액세스할 수 있습니다.
자세한 내용은 인스턴스 주체를 사용하여 Oracle Cloud Infrastructure API에 액세스를 참조하십시오.
프록시 인증 구성
프록시 인증을 사용하면 IAM 유저가 응용 프로그램 유지 관리와 같은 작업을 위해 데이터베이스 스키마에 proxy할 수 있습니다.
Proxy 인증은 일반적으로 실제 유저를 인증한 다음 응용 프로그램을 관리하기 위해 스키마 권한과 롤이 있는 데이터베이스 스키마를 사용하도록 권한을 부여하는 데 사용됩니다. 응용 프로그램 스키마 암호 공유와 같은 대안은 안전하지 않은 것으로 간주되며 어떤 실제 사용자가 작업을 수행했는지 감사할 수 없습니다.
응용 프로그램 데이터베이스 관리자인 명명된 IAM 유저가 인증서를 사용하여 인증한 다음 데이터베이스 스키마 유저(예: hrapp
)에게 proxy할 수 있는 환경에서 사용할 수 있습니다. 이 인증을 사용하면 IAM 관리자가 애플리케이션 유지 관리를 수행하기 위해 hrapp
권한 및 롤을 사용자 hrapp
로 사용할 수 있지만 인증에는 IAM 인증서를 계속 사용할 수 있습니다. 응용 프로그램 데이터베이스 관리자는 데이터베이스에 사인인한 다음 응용 프로그램 스키마로 proxy하여 이 스키마를 관리할 수 있습니다.
암호 인증 및 토큰 인증 방법 모두에 대해 프록시 인증을 구성할 수 있습니다.
IAM 유저에 대한 프록시 인증 구성
IAM 유저에 대해 proxy 인증을 구성하려면 IAM 유저가 이미 global 스키마(배타적 또는 공유 매핑)에 대한 매핑을 가지고 있어야 합니다. 프록시할 IAM 사용자에 대한 별도의 데이터베이스 스키마도 사용 가능해야 합니다.
이 유형의 유저가 있는지 확인한 후에 IAM 유저가 proxy에 사용할 수 있도록 데이터베이스 유저를 변경합니다.
ALTER USER
시스템 권한을 가진 사용자로 데이터베이스 인스턴스에 로그인합니다.- IAM 사용자가 로컬 데이터베이스 사용자 계정에 프록시할 수 있는 권한을 부여합니다. 명령에서 IAM 사용자를 참조할 수 없으므로 데이터베이스 전역 사용자(IAM 사용자에게 매핑됨)와 대상 데이터베이스 user.In 사이에 프록시를 생성해야 합니다. 다음 예에서는
hrapp
가 프록시할 데이터베이스 스키마이고peterfitch_schema
가 사용자peterfitch
에 배타적으로 매핑된 데이터베이스 전역 사용자입니다.ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;
이 단계에서 IAM 유저는 proxy를 사용하여 데이터베이스 instance에 로그인할 수 있습니다. 예:
암호 검증자를 사용하여 연결하려면 다음과 같이 하십시오.
CONNECT peterfitch[hrapp]@connect_string
Enter password: password
토큰을 사용하여 연결하려면 다음을 수행합니다.
CONNECT [hrapp]/@connect_string
IAM 사용자 프록시 인증 검증
암호 및 토큰 인증 방법에 대해 IAM 사용자 프록시 구성을 검증할 수 있습니다.
CREATE USER
및ALTER USER
시스템 권한을 가진 사용자로 데이터베이스 인스턴스에 로그인합니다.- IAM 유저에 연결하여
SHOW USER
및SELECT SYS_CONTEXT
명령을 실행합니다. 예를 들어, 데이터베이스 사용자hrapp
에 프록시할 때 IAM 사용자peterfitch
의 프록시 인증을 확인하려고 한다고 가정합니다. 여기에 표시된 여러 유형의 인증 방법을 사용하여 데이터베이스에 연결해야 하지만 실행하는 명령의 출력은 모든 유형에 대해 동일합니다.- 암호 인증의 경우 IAM 사용자가 기본 도메인에 있다고 가정합니다.
CONNECT peterfitch[hrapp]/password\!@connect_string SHOW USER; --The output should be USER is "HRAPP" SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL; --The output should be "PASSWORD_GLOBAL_PROXY" SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL; --The output should be "PETERFITCH_SCHEMA" SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL; --The output should be "HRAPP"
- 토큰 인증의 경우 기본이 아닌 도메인에 있는 사용자의 경우
sales_domain
:CONNECT [hrapp]/@connect_string SHOW USER; --The output should be USER is "HRAPP " SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL; --The output should be "TOKEN_GLOBAL_PROXY" SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL; --The output should be "PETERFITCH_SCHEMA" SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL; --The output should be "HRAPP"
- 암호 인증의 경우 IAM 사용자가 기본 도메인에 있다고 가정합니다.
IAM 인증 사용자와 함께 데이터베이스 링크 사용
데이터베이스 링크를 사용하여 한 데이터베이스 인스턴스에서 다른 데이터베이스 인스턴스로 OCI IAM 사용자로 연결할 수 있습니다.
연결된 유저 또는 고정 유저 데이터베이스 링크를 사용하여 데이터베이스에 OCI IAM 유저로 연결할 수 있습니다.
주:
기준 데이터베이스 서비스의 데이터베이스에 OCI IAM 사용자로 접속할 때는 현재 사용자 데이터베이스 링크가 지원되지 않습니다.-
연결된 사용자 데이터베이스 링크: 접속된 사용자 데이터베이스 링크의 경우 IAM 사용자가 데이터베이스 링크로 접속된 소스 및 대상 데이터베이스의 스키마에 매핑되어야 합니다. 데이터베이스 암호 검증자 또는 IAM 데이터베이스 토큰을 사용하여 연결된 유저 데이터베이스 링크를 사용할 수 있습니다.
-
고정 사용자 데이터베이스 링크: 고정 사용자 데이터베이스 링크는 데이터베이스 사용자 또는 IAM 사용자를 사용하여 생성할 수 있습니다. IAM 유저를 고정 유저 데이터베이스 링크로 사용하는 경우 IAM 유저는 Target Database에서 스키마 매핑을 가져야 합니다. 데이터베이스 링크에 대한 IAM 유저는 암호 확인자로만 구성할 수 있습니다.