적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
분석 플랫폼 시스템(PDW)
Microsoft Fabric의 SQL 데이터베이스
데이터베이스 자격 증명을 만듭니다. 데이터베이스 자격 증명은 서버 로그인이나 데이터베이스 사용자에 매핑되지 않습니다. 데이터베이스는 접근 권한이 필요한 작업을 수행할 때 자격 증명을 사용하여 외부 자원에 접근합니다.
Syntax
CREATE DATABASE SCOPED CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
[ , SECRET = 'secret' ]
[ ; ]
Arguments
credential_name
만들려는 데이터베이스 범위 자격 증명의 이름을 지정합니다.
credential_name 숫자(#) 기호로 시작할 수 없습니다. 시스템 자격 증명은 .로 시작합니다 ##. credential_name 최대 길이는 128자입니다.
IDENTITY = 'identity_name'
서버 외부에서 연결할 때 사용할 계정 이름을 지정합니다.
Azure Blob Storage 또는 Azure Data Lake Storage에서 공유 키를 사용하여 파일을 가져오려면 ID 이름이
SHARED ACCESS SIGNATURE여야 합니다. 공유 액세스 서명에 대한 자세한 내용은 SAS(공유 액세스 서명) 사용을 참조하세요. 공유 액세스 서명에만 사용합니다IDENTITY = SHARED ACCESS SIGNATURE.Azure Blob Storage에서 관리 ID를 사용하여 파일을 가져오려면 ID 이름이
MANAGED IDENTITY여야 합니다.Kerberos(Windows Active Directory 또는 MIT KDC)를 사용할 때는 인수에
IDENTITY도메인 이름을 사용하지 마세요. 계정 이름만 사용해야 합니다.SQL Server 인스턴스에서는 스토리지 액세스 키로
SECRET데이터베이스 범위 인증 정보를 생성하면 무IDENTITY시됩니다.WITH IDENTITYAzure Blob 저장소의 컨테이너가 익명 접근을 위해 활성화되어 있다면 필요하지 않습니다. Azure Blob Storage를 쿼리하는 예제는OPENROWSET BULK참조하세요.SQL Server 2022(16.x) 이상 버전에서는 REST-API 커넥터가 HADOOP를 대체합니다. Azure Blob Storage 및 Azure Data Lake Gen 2의 경우 유일하게 지원되는 인증 방법은 공유 액세스 서명입니다. 자세한 내용은 CREATE EXTERNAL DATA SOURCE를 참조하세요.
SQL Server 2019(15.x)에서 Kerberos 인증을 지원하는 유일한 PolyBase 외부 데이터 원본은 Hadoop입니다. 다른 모든 외부 데이터 원본(SQL Server, Oracle, Teradata, MongoDB, 일반 ODBC)은 기본 인증만 지원합니다.
Azure Synapse Analytics의 SQL 풀에는 다음과 같은 주석이 포함되어 있습니다:
- Azure Synapse Analytics에 데이터를 로드하려면 . 에 대해 유효한 값을
IDENTITY사용할 수 있습니다. - Azure Synapse Analytics 서버리스 SQL 풀에서 데이터베이스 범위 자격 증명은 작업 영역 관리 ID, 서비스 주체 이름 또는 SAS(공유 액세스 서명) 토큰을 지정할 수 있습니다. 사용자 로그인을 통해 Microsoft Entra 패스스루 인증을 통해 활성화된 사용자 신원에 의한 접근도 가능하며, 데이터베이스 범위 기반 자격 증명과 공개 저장소에 대한 익명 접근도 가능합니다. 자세한 내용은 지원되는 스토리지 권한 부여 유형을 참조 하세요.
- Azure Synapse Analytics 전용 SQL 풀에서 데이터베이스 범위 자격 증명은 SAS(공유 액세스 서명) 토큰, 사용자 지정 애플리케이션 ID, 작업 영역 관리 ID 또는 스토리지 액세스 키를 지정할 수 있습니다.
- Azure Synapse Analytics에 데이터를 로드하려면 . 에 대해 유효한 값을
| Authentication | T-SQL | Supported | Notes |
|---|---|---|---|
| 공유 액세스 서명(SAS) | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'secret'; |
SQL Server 2022 이상, Azure SQL Managed Instance, Azure Synapse Analytics, Azure SQL Database | |
| 관리 ID | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; |
Azure SQL Database, Azure SQL Managed Instance, Azure Arc를 사용하여 SQL Server 2025 | Azure Arc를 활성화하려면 Azure Arc가 활성화한 SQL Server의 관리 신원을 참조하세요 |
| 사용자 ID를 통한 Microsoft Entra 통과 인증 | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; |
|
Azure Synapse에서는 Microsoft Entra 패스스루 인증으로 사용자 로그인을 참조하세요 |
| S3 Access Key Basic 인증 | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; |
SQL Server 2022 및 이후 버전 | |
| ODBC 데이터 원본 또는 Kerberos(MIT KDC) |
CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>'; |
SQL Server 2019 이상 버전 |
1 Microsoft Fabric의 SQL 데이터베이스에서 데이터베이스 범위 인증 증명을 지정하지 않으면 인증 방법이 기본값으로 'USER IDENTITY'가 되며 Microsoft Entra ID 사용자 계정을 컨텍스트로 사용합니다.
SECRET = '비밀'
나가는 인증에 필요한 암호를 지정합니다.
SECRET은 Azure Blob 스토리지에서 파일을 가져오는 데 필요합니다. Azure Blob Storage에서 Azure Synapse Analytics 또는 병렬 데이터 웨어하우스로 로드하려면 Azure Storage 키가 암호여야 합니다.
Warning
SAS 키 값은 물음표(?)로 시작할 수 있습니다. SAS 키를 사용하는 경우 선행 ?키를 제거합니다.
Remarks
데이터베이스 범위 자격 증명은 SQL Server 외부의 리소스에 연결하는 데 필요한 인증 정보가 포함된 레코드입니다. 대부분의 자격 증명에는 Windows 사용자 및 암호가 들어 있습니다.
데이터베이스 범위 자격 증명 내에서 중요한 정보를 보호하려면 DMK(데이터베이스 마스터 키)가 필요합니다. DMK는 데이터베이스 범위 자격 증명의 비밀을 암호화하는 대칭 키입니다. 데이터베이스에 DMK가 있어야 데이터베이스 범위 기반 자격 증명을 생성할 수 있습니다. DMK를 강력한 비밀번호로 암호화하세요. Azure SQL Database는 데이터베이스 범위 인증 증명 생성 또는 서버 감사 생성의 일환으로 강력하고 무작위로 선택된 비밀번호를 가진 DMK를 생성합니다.
사용자는 논리 master 데이터베이스에서 DMK를 만들 수 없습니다. DMK 비밀번호는 마이크로소프트가 알 수 없으며, 생성 후에는 발견할 수 없습니다. 데이터베이스 범위 인증 증명을 만들기 전에 DMK를 먼저 작성하세요. 자세한 내용은 CREATE MASTER KEY를 참조하세요.
Windows 사용자가 있을 때 IDENTITY , 비밀은 비밀번호가 될 수 있습니다. 이 비밀은 서비스 마스터 키(SMK)로 암호화됩니다. SMK를 다시 생성하면 비밀이 새 SMK로 다시 암호화됩니다.
PolyBase 외부 테이블에서 사용할 공유 액세스 서명(SAS) 권한을 부여할 때, 허용된 자원 유형으로 컨테이너와객체 를 모두 선택하십시오. 이 권한을 부여하지 않으면 외부 테이블에 접근하려 할 때 16535 또는 16561 오류가 발생할 수 있습니다.
데이터베이스 범위 기반 자격 증명에 대한 정보는 sys.database_scoped_credentials 카탈로그 뷰를 참조하세요.
다음은 몇 가지 데이터베이스 범위 자격 증명 애플리케이션입니다.
SQL Server는 데이터베이스 범위 자격 증명을 사용하여 PolyBase로 비공개 Azure Blob Storage 또는 Kerberos 보안 Hadoop 클러스터에 액세스합니다. 자세한 내용은 CREATE EXTERNAL DATA SOURCE를 참조하세요.
Azure Synapse Analytics는 데이터베이스 범위 자격 증명을 사용하여 PolyBase로 비공개 Azure Blob Storage에 액세스합니다. 자세한 내용은 CREATE EXTERNAL DATA SOURCE를 참조하세요. Azure Synapse 스토리지 인증에 대한 자세한 내용은 Synapse SQL에서 외부 테이블 사용을 참조하세요.
SQL 데이터베이스는 여러 데이터베이스 샤드에 걸친 질의를 가능하게 하는 탄력적 쿼리 기능에 데이터베이스 범위별 자격 증명을 사용합니다.
SQL Database는 데이터베이스 범위 자격 증명을 사용하여 확장 이벤트 파일을 Azure Blob Storage에 씁니다.
SQL Database는 탄력적 풀에 데이터베이스 범위 자격 증명을 사용합니다. 자세한 내용은 Elastic pools help you help you management and scale in Azure SQL Database를 참고하세요
BULK INSERT 와 OPENROWSET 은 Azure Blob Storage의 데이터에 접근하기 위해 데이터베이스 범위 인증 정보를 사용합니다. 자세한 내용은 Azure Blob 저장소에서 데이터 대량 접근 예시를 참조하세요.
PolyBase 및 Azure SQL Managed Instance 데이터 가상화 기능에서 데이터베이스 범위 자격 증명을 사용합니다.
와
RESTORE FROM URL에 대해서는BACKUP TO URLCREATE CREDENTIAL을 통해 서버 수준의 자격 증명을 사용하세요.데이터베이스 범위 기반 자격 증명을 CREATE EXTERNAL MODEL
Permissions
데이터베이스에 대한 CONTROL 권한이 필요합니다.
Examples
A. 애플리케이션에 대한 데이터베이스 범위 자격 증명 만들기
다음 예에서는 AppCred라는 데이터베이스 범위 자격 증명을 만듭니다. 이 데이터베이스 범위 자격 증명에는 Windows 사용자 Mary5 및 암호가 들어 있습니다.
DMK가 없다면 만들어 보세요. 빈 비밀번호를 사용하지 마세요. 강력한 비밀번호를 사용하세요.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
데이터베이스 범위 인증 증명 생성:
CREATE DATABASE SCOPED CREDENTIAL AppCred
WITH IDENTITY = 'Mary5',
SECRET = '<password>';
B. 공유 액세스 서명에 대한 데이터베이스 범위 자격 증명 만들기
다음 예시는 외부 데이터 소스를 생성하는 데 사용할 수 있는 데이터베이스 범위 인증 증명을 만듭니다. 이 자격증명은 BULK INSERT 와 OPENROWSET BULK와 같은 벌크 작업을 수행할 수 있습니다.
DMK가 없다면 만들어 보세요. 빈 비밀번호를 사용하지 마세요. 강력한 비밀번호를 사용하세요.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
데이터베이스 범위 자격 증명을 만듭니다. 적절한 값으로 바꿉다 <key> .
CREATE DATABASE SCOPED CREDENTIAL MyCredentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '<key>';
C. Azure Data Lake Store에 PolyBase 연결에 대한 데이터베이스 범위 자격 증명 만들기
다음 예제에서는 Azure Synapse Analytics의 PolyBase에서 사용되는 외부 데이터 원본을 만드는 데 사용할 수 있는 데이터베이스 범위 자격 증명을 만듭니다.
Azure Data Lake Store는 서비스 간 인증을 위해 Microsoft Entra 애플리케이션을 사용합니다.
데이터베이스 범위 자격 증명을 만들기 전에 Microsoft Entra 애플리케이션 을 만들고 client_id, OAuth_2.0_Token_EndPoint 및 Key를 문서화합니다.
DMK가 없다면 만들어 보세요. 빈 비밀번호를 사용하지 마세요. 강력한 비밀번호를 사용하세요.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
데이터베이스 범위 자격 증명을 만듭니다. 적절한 값으로 바꿉다 <key> .
CREATE DATABASE SCOPED CREDENTIAL ADL_User
WITH IDENTITY = '<client_id>@<OAuth_2.0_Token_EndPoint>',
SECRET = '<key>';
D. 관리 ID를 사용하여 데이터베이스 범위 자격 증명 만들기
적용 대상: SQL Server 2025 (17.x) 및 이후 버전
SQL Server 2025(17.x)에는 Microsoft Entra 관리 ID에 대한 지원이 도입되었습니다. Azure Arc에서 SQL Server를 활성화한 관리 신원을 사용하는 방법에 대한 정보는 Azure Arc에서 활성화된 SQL Server의 관리 신원을 참조하세요.
EXECUTE sp_configure 'allow server scoped db credentials', 1;
RECONFIGURE;
GO
CREATE DATABASE SCOPED CREDENTIAL [managed_id]
WITH IDENTITY = 'Managed Identity';
E. Microsoft Entra ID를 사용하여 데이터베이스 범위 인증 증명 생성
적용 대상: Azure SQL 데이터베이스, Microsoft Fabric의 SQL 데이터베이스
Azure SQL 데이터베이스와 Microsoft Fabric의 SQL 데이터베이스에서는 자신의 Microsoft Entra ID 계정을 사용해 외부 데이터 소스를 인증할 수 있습니다.
Microsoft Fabric의 SQL 데이터베이스에서 데이터베이스 범위 인증 증명을 지정하지 않으면 인증 방법이 기본적으로 USER IDENTITY Entra ID 사용자 계정을 컨텍스트로 사용합니다.
CREATE DATABASE SCOPED CREDENTIAL MyCredential
WITH IDENTITY = 'User Identity';