CREATE DATABASE SCOPED CREDENTIAL(Transact-SQL)CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL)

적용 대상: 예SQL Server 예Azure SQL Database 예Azure SQL Data Warehouse 예병렬 데이터 웨어하우스 APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

데이터베이스 자격 증명을 만듭니다.Creates a database credential. 데이터베이스 자격 증명은 서버 로그인 또는 데이터베이스 사용자에 매핑되지 않습니다.A database credential is not mapped to a server login or database user. 자격 증명은 데이터베이스가 액세스가 필요한 작업을 수행할 때 언제든 외부 위치에 액세스하기 위해 데이터베이스에서 사용됩니다.The credential is used by the database to access to the external location anytime the database is performing an operation that requires access.

항목 링크 아이콘 Transact-SQL 구문 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax

 
CREATE DATABASE SCOPED CREDENTIAL credential_name   
WITH IDENTITY = 'identity_name'  
    [ , SECRET = 'secret' ]  
  

인수Arguments

credential_namecredential_name
만들려는 데이터베이스 범위 자격 증명의 이름을 지정합니다.Specifies the name of the database scoped credential being created. credential_name은 번호(#) 기호로 시작할 수 없습니다.credential_name cannot start with the number (#) sign. 시스템 자격 증명은 ##으로 시작합니다.System credentials start with ##.

IDENTITY ='identity_name'IDENTITY ='identity_name'
서버 외부에 연결할 때 사용할 계정의 이름을 지정합니다.Specifies the name of the account to be used when connecting outside the server. Azure Blob Storage에서 공유 키를 사용하여 파일을 가져오려면 ID 이름이 SHARED ACCESS SIGNATURE여야 합니다.To import a file from Azure Blob storage using share key, the identity name must be SHARED ACCESS SIGNATURE. SQL DW로 데이터를 로드하기 위해 ID에 모든 유효한 값을 사용할 수 있습니다.To load data into SQL DW, any valid value can be used for identity. 공유 액세스 서명에 대한 자세한 내용은 SAS(공유 액세스 서명) 사용을 참조하세요.For more information about shared access signatures, see Using Shared Access Signatures (SAS).

SECRET ='secret'SECRET ='secret'
나가는 인증에 필요한 암호를 지정합니다.Specifies the secret required for outgoing authentication. SECRET은 Azure Blob 스토리지에서 파일을 가져오는 데 필요합니다.SECRET is required to import a file from Azure Blob storage. Azure Blob Storage에서 SQL DW 또는 병렬 데이터 웨어하우스로 로드하려면 Azure Storage Key가 암호여야 합니다.To load from Azure Blob storage into SQL DW or Parallel Data Warehouse, the Secret must be the Azure Storage Key.

경고

SAS 키 값은 '?'(물음표)로 시작될 수 있습니다.The SAS key value might begin with a '?' (question mark). SAS 키를 사용할 때는 앞의 '?'를 제거해야 합니다.When you use the SAS key, you must remove the leading '?'. 그렇지 않으면 작업이 차단될 수 있습니다.Otherwise your efforts might be blocked.

RemarksRemarks

데이터베이스 범위 자격 증명은 SQL ServerSQL Server 외부의 리소스에 연결하는 데 필요한 인증 정보가 포함된 레코드입니다.A database scoped credential is a record that contains the authentication information that is required to connect to a resource outside SQL ServerSQL Server. 대부분의 자격 증명에는 Windows 사용자 및 암호가 들어 있습니다.Most credentials include a Windows user and password.

데이터베이스 범위 자격 증명을 만들기 전에 자격 증명을 보호하려면 데이터베이스에 마스터 키가 있어야 합니다.Before creating a database scoped credential, the database must have a master key to protect the credential. 자세한 내용은 CREATE MASTER KEY(Transact-SQL)를 참조하세요.For more information, see CREATE MASTER KEY (Transact-SQL).

IDENTITY가 Windows 사용자인 경우 암호는 해당 사용자의 암호일 수 있습니다.When IDENTITY is a Windows user, the secret can be the password. 암호는 서비스 마스터 키를 사용하여 암호화됩니다.The secret is encrypted using the service master key. 서비스 마스터 키가 다시 생성되면 암호가 새 서비스 마스터 키를 사용하여 다시 암호화됩니다.If the service master key is regenerated, the secret is re-encrypted using the new service master key.

데이터베이스 범위 자격 증명에 대한 내용은 sys.database_scoped_credentials 카탈로그 뷰를 참조하세요.Information about database scoped credentials is visible in the sys.database_scoped_credentials catalog view.

다음은 몇 가지 데이터베이스 범위 자격 증명 애플리케이션입니다.Hereare some applications of database scoped credentials:

  • SQL ServerSQL Server는 데이터베이스 범위 자격 증명을 사용하여 PolyBase로 비공개 Azure BLOB 스토리지 또는 Kerberos 보안 Hadoop 클러스터에 액세스합니다.uses a database scoped credential to access non-public Azure blob storage or Kerberos-secured Hadoop clusters with PolyBase. 자세한 내용은 CREATE EXTERNAL DATA SOURCE(Transact-SQL)를 참조하세요.To learn more, see CREATE EXTERNAL DATA SOURCE (Transact-SQL).

  • SQL 데이터 웨어하우스SQL Data Warehouse는 데이터베이스 범위 자격 증명을 사용하여 PolyBase로 비공개 Azure BLOB 스토리지에 액세스합니다.uses a database scoped credential to access non-public Azure blob storage with PolyBase. 자세한 내용은 CREATE EXTERNAL DATA SOURCE(Transact-SQL)를 참조하세요.To learn more, see CREATE EXTERNAL DATA SOURCE (Transact-SQL).

  • SQL DatabaseSQL Database는 전역 쿼리 기능에 데이터베이스 범위 자격 증명을 사용합니다.uses database scoped credentials for its global query feature. 이것은 다수의 분할된 데이터베이스에서 쿼리를 수행할 수 있는 기능입니다.This is the ability to query across multiple database shards.

  • SQL DatabaseSQL Database는 데이터베이스 범위 자격 증명을 사용하여 확장 이벤트 파일을 Azure BLOB 스토리지에 씁니다.uses database scoped credentials to write extended event files to Azure blob storage.

  • SQL DatabaseSQL Database는 탄력적 풀에 데이터베이스 범위 자격 증명을 사용합니다.uses database scoped credentials for elastic pools. 자세한 내용은 탄력적 데이터베이스로 폭발적인 증가에 대처하기를 참조하세요.For more information, see Tame explosive growth with elastic databases

  • BULK INSERTOPENROWSET은 데이터베이스 범위 자격 증명을 사용하여 Azure BLOB 스토리지의 데이터에 액세스합니다.BULK INSERT and OPENROWSET use database scoped credentials to access data from Azure blob storage. 자세한 내용은 Azure Blob Storage의 데이터에 대량 액세스 예제를 참조하세요.For more information, see Examples of Bulk Access to Data in Azure Blob Storage.

PermissionsPermissions

데이터베이스에 대한 CONTROL 권한이 필요합니다.Requires CONTROL permission on the database.

Examples

1.A. 애플리케이션에 대한 데이터베이스 범위 자격 증명을 만듭니다.Creating a database scoped credential for your application.

다음 예에서는 AppCred라는 데이터베이스 범위 자격 증명을 만듭니다.The following example creates the database scoped credential called AppCred. 이 데이터베이스 범위 자격 증명에는 Windows 사용자 Mary5 및 암호가 들어 있습니다.The database scoped credential contains the Windows user Mary5 and a password.

-- Create a db master key if one does not already exist, using your own password.  
CREATE MASTER KEY ENCRYPTION BY PASSWORD='<EnterStrongPasswordHere>';  
  
-- Create a database scoped credential.  
CREATE DATABASE SCOPED CREDENTIAL AppCred WITH IDENTITY = 'Mary5',   
    SECRET = '<EnterStrongPasswordHere>';  
GO  

2.B. 공유 액세스 서명을 위한 데이터베이스 범위 자격 증명을 만듭니다.Creating a database scoped credential for a shared access signature.

다음 예에서는 BULK INSERTOPENROWSET과 같은 대량 작업을 수행할 수 있는 외부 데이터 원본을 만드는 데 사용할 수 있는 데이터베이스 범위 자격 증명을 만듭니다.The following example creates a database scoped credential that can be used to create an external data source, which can do bulk operations, such as BULK INSERT and OPENROWSET. 공유 액세스 서명은 SQL Server, APS 또는 SQL DW에서 PolyBase에 사용할 수 없습니다.Shared Access Signatures cannot be used with PolyBase in SQL Server, APS or SQL DW.

CREATE DATABASE SCOPED CREDENTIAL MyCredentials  
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'QLYMgmSXMklt%2FI1U6DcVrQixnlU5Sgbtk1qDRakUBGs%3D';

3.C. Azure Data Lake Store에 PolyBase 연결을 위한 데이터베이스 범위 자격 증명을 만듭니다.Creating a database scoped credential for PolyBase Connectivity to Azure Data Lake Store.

다음 예에서는 Azure SQL Data Warehouse에서 PolyBase에 사용될 수 있는 외부 데이터 원본을 만드는 데 사용할 수 있는 데이터베이스 범위 자격 증명을 만듭니다.The following example creates a database scoped credential that can be used to create an external data source, which can be used by PolyBase in Azure SQL Data Warehouse.

Azure Data Lake Store는 서비스 간 인증에 Azure Active Directory 애플리케이션을 사용합니다.Azure Data Lake Store uses an Azure Active Directory Application for Service to Service Authentication. 데이터베이스 범위 자격 증명을 만들려면 그 전에 AAD 애플리케이션을 만들고 client_id, OAuth_2.0_Token_EndPoint 및 Key를 문서화하십시오.Please create an AAD application and document your client_id, OAuth_2.0_Token_EndPoint, and Key before you try to create a database scoped credential.

CREATE DATABASE SCOPED CREDENTIAL ADL_User
WITH
    IDENTITY = '<client_id>@\<OAuth_2.0_Token_EndPoint>'
    SECRET = '<key>'
;

자세한 정보More information

자격 증명(데이터베이스 엔진) Credentials (Database Engine)
ALTER DATABASE SCOPED CREDENTIAL(Transact-SQL) ALTER DATABASE SCOPED CREDENTIAL (Transact-SQL)
DROP DATABASE SCOPED CREDENTIAL(Transact-SQL) DROP DATABASE SCOPED CREDENTIAL (Transact-SQL)
sys.database_scoped_credentials sys.database_scoped_credentials
CREATE CREDENTIAL (Transact-SQL) CREATE CREDENTIAL (Transact-SQL)
sys.credentials(Transact-SQL)sys.credentials (Transact-SQL)