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

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure simAzure Synapse Analytics (SQL DW) simParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Cria uma credencial de banco de dados.Creates a database credential. Uma credencial de banco de dados não é mapeada para um usuário do banco de dados ou logon do servidor.A database credential is not mapped to a server login or database user. A credencial é usada pelo banco de dados para acessar o local externo sempre que o banco de dados está executando uma operação que requer acesso.The credential is used by the database to access to the external location anytime the database is performing an operation that requires access.

Ícone de link do tópico Convenções de sintaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

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

ArgumentosArguments

credential_name Especifica o nome da credencial no escopo do banco de dados que está sendo criada.credential_name Specifies the name of the database scoped credential being created. credential_name não pode começar com a tecla jogo da velha (#).credential_name cannot start with the number (#) sign. As credenciais de sistema começam com ##.System credentials start with ##.

IDENTITY =' identity_name ' Especifica o nome da conta a ser usada ao se conectar fora do servidor.IDENTITY ='identity_name' Specifies the name of the account to be used when connecting outside the server. Para importar um arquivo do armazenamento de Blobs do Azure usando a chave de compartilhamento, o nome de identidade deve ser SHARED ACCESS SIGNATURE.To import a file from Azure Blob storage using share key, the identity name must be SHARED ACCESS SIGNATURE. Para carregar dados no SQL DW, qualquer valor válido pode ser usado para a identidade.To load data into SQL DW, any valid value can be used for identity. Para mais informações sobre assinaturas de acesso compartilhado, consulte Usando SAS (Assinatura de Acesso Compartilhado).For more information about shared access signatures, see Using Shared Access Signatures (SAS).

SECRET =' secret ' Especifica o segredo necessário para a autenticação de saída.SECRET ='secret' Specifies the secret required for outgoing authentication. SECRET é necessário para importar um arquivo de armazenamento de Blobs do Azure.SECRET is required to import a file from Azure Blob storage. Para fazer o carregamento do armazenamento de Blobs do Azure no SQL DW ou no Parallel Data Warehouse, o Segredo deve ser a Chave de Armazenamento do Azure.To load from Azure Blob storage into SQL DW or Parallel Data Warehouse, the Secret must be the Azure Storage Key.

Aviso

O valor da chave SAS pode começar com um '?' (ponto de interrogação).The SAS key value might begin with a '?' (question mark). Quando você usa a chave SAS, deve remover o '?' à esquerda.When you use the SAS key, you must remove the leading '?'. Caso contrário, seus esforços poderão ser bloqueados.Otherwise your efforts might be blocked.

RemarksRemarks

Uma credencial no escopo do banco de dados é um registro que contém as informações de autenticação necessárias para conectar-se a um recurso fora do 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. A maioria das credenciais inclui um usuário e uma senha do Windows.Most credentials include a Windows user and password.

Antes de criar uma credencial no escopo do banco de dados, o banco de dados deve ter uma chave mestra para proteger a credencial.Before creating a database scoped credential, the database must have a master key to protect the credential. Para obter mais informações, veja CREATE MASTER KEY (Transact-SQL).For more information, see CREATE MASTER KEY (Transact-SQL).

Quando IDENTITY for um usuário do Windows, o segredo poderá ser a senha.When IDENTITY is a Windows user, the secret can be the password. O segredo é criptografado com a chave mestre de serviço.The secret is encrypted using the service master key. Se a chave mestre de serviço for gerada novamente, o segredo será criptografado novamente com a nova chave mestre de serviço.If the service master key is regenerated, the secret is re-encrypted using the new service master key.

Informações sobre credenciais no escopo do banco de dados ficam visíveis na exibição do catálogo database_scoped_credentials.Information about database scoped credentials is visible in the sys.database_scoped_credentials catalog view.

Estas são algumas aplicações das credenciais no escopo do banco de dados:Here are some applications of database scoped credentials:

  • O SQL ServerSQL Server usa uma credencial no escopo do banco de dados para acessar o armazenamento de blobs do Azure não público ou clusters Hadoop protegidos por Kerberos com PolyBase.SQL ServerSQL Server uses a database scoped credential to access non-public Azure blob storage or Kerberos-secured Hadoop clusters with PolyBase. Para obter mais informações, veja CREATE EXTERNAL DATA SOURCE (Transact-SQL).To learn more, see CREATE EXTERNAL DATA SOURCE (Transact-SQL).

  • O SQL Data WarehouseSQL Data Warehouse usa uma credencial no escopo do banco de dados para acessar o armazenamento de blobs do Azure não público com PolyBase.SQL Data WarehouseSQL Data Warehouse uses a database scoped credential to access non-public Azure blob storage with PolyBase. Para obter mais informações, veja CREATE EXTERNAL DATA SOURCE (Transact-SQL).To learn more, see CREATE EXTERNAL DATA SOURCE (Transact-SQL).

  • O Banco de Dados SQLSQL Database usa as credenciais no escopo do banco de dados para seu recurso de consulta global.Banco de Dados SQLSQL Database uses database scoped credentials for its global query feature. Essa é a capacidade de consultar entre vários fragmentos de banco de dados.This is the ability to query across multiple database shards.

  • O Banco de Dados SQLSQL Database usa credenciais no escopo do banco de dados para gravar arquivos de evento estendidos para o armazenamento de blobs do Azure.Banco de Dados SQLSQL Database uses database scoped credentials to write extended event files to Azure blob storage.

  • O Banco de Dados SQLSQL Database usa as credenciais no escopo do banco de dados para pools elásticos.Banco de Dados SQLSQL Database uses database scoped credentials for elastic pools. Para obter mais informações, veja Controlar o crescimento explosivo com bancos de dados elásticosFor more information, see Tame explosive growth with elastic databases

  • BULK INSERT e OPENROWSET usam credenciais no escopo do banco de dados para acessar dados do armazenamento de blobs do Azure.BULK INSERT and OPENROWSET use database scoped credentials to access data from Azure blob storage. Para obter mais informações, veja Exemplos de acesso aos dados em massa no armazenamento de blobs do Azure.For more information, see Examples of Bulk Access to Data in Azure Blob Storage.

PermissõesPermissions

Exige a permissão CONTROL no banco de dados.Requires CONTROL permission on the database.

ExemplosExamples

A.A. Como criar uma credencial no escopo do banco de dados para seu aplicativoCreating a database scoped credential for your application

O exemplo a seguir cria a credencial no escopo do banco de dados chamada AppCred.The following example creates the database scoped credential called AppCred. A credencial no escopo do banco de dados contém o usuário do Windows Mary5 e uma senha.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>';

B.B. Como criar uma credencial no escopo do banco de dados para uma Assinatura de Acesso CompartilhadoCreating a database scoped credential for a shared access signature

O exemplo a seguir cria uma credencial no escopo do banco de dados que pode ser usada para criar uma fonte de dados externa, que pode executar operações em massa, como BULK INSERT e OPENROWSET.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. As Assinaturas de Acesso Compartilhado não podem ser usadas com o PolyBase no SQL Server, APS ou SQL DW.Shared Access Signatures cannot be used with PolyBase in SQL Server, APS or SQL DW.

-- 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 MyCredentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'QLYMgmSXMklt%2FI1U6DcVrQixnlU5Sgbtk1qDRakUBGs%3D';

C.C. Como criar uma credencial no escopo do banco de dados para a conectividade do PolyBase com o Azure Data Lake StorageCreating a database scoped credential for PolyBase Connectivity to Azure Data Lake Store

O exemplo a seguir cria uma credencial no escopo do banco de dados que pode ser usada para criar uma fonte de dados externa, que pode ser usada pelo PolyBase no SQL Data Warehouse do Azure.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.

O Azure Data Lake Store usa um Aplicativo do Azure Active Directory para Autenticação de Serviço.Azure Data Lake Store uses an Azure Active Directory Application for Service to Service Authentication. Crie um aplicativo AAD e documente seu client_id, o OAuth_2.0_Token_EndPoint e a Chave antes de tentar criar uma credencial no escopo do banco de dados.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 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 ADL_User
WITH
    IDENTITY = '<client_id>@\<OAuth_2.0_Token_EndPoint>',
    SECRET = '<key>'
;

Mais informaçõesMore information