Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Base de dados SQL no Microsoft Fabric
Cria uma credencial de banco de dados. Uma credencial de banco de dados não é mapeada para um logon de servidor ou usuário de banco de dados. A credencial é usada pelo banco de dados para acessar o local externo sempre que o banco de dados estiver executando uma operação que requer acesso.
Transact-SQL convenções de sintaxe
Syntax
CREATE DATABASE SCOPED CREDENTIAL credential_name
WITH IDENTITY = 'identity_name'
[ , SECRET = 'secret' ]
[ ; ]
Arguments
credential_name
Especifica o nome da credencial de escopo do banco de dados que está sendo criada.
credential_name não pode começar com o sinal de número (#). As credenciais do sistema começam com ##. O comprimento máximo de credential_name é de 128 caracteres.
IDENTIDADE = 'identity_name'
Especifica o nome da conta a ser usada ao se conectar fora do servidor.
- Para importar um arquivo do Armazenamento de Blobs do Azure ou do Armazenamento do Azure Data Lake usando uma chave compartilhada, o nome da identidade deve ser
SHARED ACCESS SIGNATURE. Para obter mais informações sobre assinaturas de acesso compartilhado, consulte Usando assinaturas de acesso compartilhado (SAS).IDENTITY = SHARED ACCESS SIGNATUREUse apenas para uma assinatura de acesso compartilhado. - Para importar um arquivo do Armazenamento de Blobs do Azure usando uma identidade gerenciada, o nome da identidade deve ser
MANAGED IDENTITY. - Ao usar Kerberos (Windows Ative Directory ou MIT KDC), não use o nome de
IDENTITYdomínio no argumento. Deve ser apenas o nome da conta. - Em uma instância do SQL Server, se a criação de uma credencial de escopo de banco de dados com uma chave de acesso de armazenamento usada como ,
SECRETIDENTITYserá ignorada. -
WITH IDENTITYnão é necessário se o contêiner no armazenamento de Blob do Azure estiver habilitado para acesso anônimo. Para obter um exemplo de consulta ao armazenamento de Blob do Azure comOPENROWSET BULKo , consulte Importar para uma tabela a partir de um arquivo armazenado no armazenamento de Blob do Azure. - No SQL Server 2022 (16.x) e versões posteriores, o conector REST-API substitui o HADOOP. Para o Armazenamento de Blobs do Azure e o Azure Data Lake Gen 2, o único método de autenticação com suporte é a assinatura de acesso compartilhado. Para obter mais informações, consulte CREATE EXTERNAL DATA SOURCE (Transact-SQL).
- No SQL Server 2019 (15.x), a única fonte de dados externa do PolyBase que oferece suporte à autenticação Kerberos é o Hadoop. Todas as outras fontes de dados externas (SQL Server, Oracle, Teradata, MongoDB, ODBC genérico) suportam apenas a Autenticação Básica.
- Os pools SQL no Azure Synapse Analytics incluem as seguintes notas:
- Para carregar dados no Azure Synapse Analytics, qualquer valor válido pode ser usado para
IDENTITY. - Em um pool SQL sem servidor do Azure Synapse Analytics, as credenciais com escopo de banco de dados podem especificar uma identidade gerenciada do espaço de trabalho, nome da entidade de serviço ou token de assinatura de acesso compartilhado (SAS). O acesso por meio de uma identidade de usuário, habilitado pela autenticação de passagem do Microsoft Entra, também é possível com uma credencial com escopo de banco de dados, assim como o acesso anônimo ao armazenamento disponível publicamente. Para obter mais informações, consulte Tipos de autorização de armazenamento suportados.
- Em um pool SQL dedicado do Azure Synapse Analytics, as credenciais com escopo de banco de dados podem especificar token de assinatura de acesso compartilhado (SAS), identidade de aplicativo personalizada, identidade gerenciada de espaço de trabalho ou chave de acesso de armazenamento.
- Para carregar dados no Azure Synapse Analytics, qualquer valor válido pode ser usado para
| Authentication | T-SQL | Supported | Notes |
|---|---|---|---|
| Assinatura de Acesso Partilhado (SAS) | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'secret'; |
SQL Server 2022 e posterior, Instância Gerenciada SQL do Azure, Azure Synapse Analytics, Banco de Dados SQL do Azure | |
| Identidade Gerida | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'MANAGED IDENTITY'; |
Banco de Dados SQL do Azure, Instância Gerenciada do SQL do Azure, SQL Server 2025 com Azure Arc | Para ativar o Azure Arc, veja Managed Identity for SQL Server enabled by Azure Arc |
| Autenticação de passagem do Microsoft Entra via Identidade do Usuário | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'USER IDENTITY'; |
|
No Azure Synapse, consulte Microsoft Entra Connect: autenticação de passagem |
| Autenticação básica da chave de acesso do S3 | CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = 'S3 ACCESS KEY', SECRET = '<accesskey>:<secretkey>'; |
SQL Server 2022 e versões posteriores | |
| Fontes de dados ODBC ou Kerberos (MIT KDC) |
CREATE DATABASE SCOPED CREDENTIAL <credential_name> WITH IDENTITY = '<identity_name>', SECRET = '<secret>'; |
SQL Server 2019 e versões posteriores |
* Na base de dados SQL no Microsoft Fabric, se não for especificada nenhuma credencial com âmbito de base de dados, o método de autenticação passa por defeito a 'USER IDENTITY' e utiliza o login do utilizador Entra ID como contexto.
SECRET = 'segredo'
Especifica o segredo necessário para a autenticação de saída.
SECRET é necessário para importar um arquivo do armazenamento de Blob do Azure. Para carregar do armazenamento de Blob do Azure no Azure Synapse Analytics ou no Parallel Data Warehouse, o Segredo deve ser a Chave de Armazenamento do Azure.
Warning
O valor da chave SAS pode começar com um ponto de interrogação (?). Quando você usar a chave SAS, remova a entrelinha ?.
Remarks
Uma credencial com escopo de banco de dados é um registro que contém as informações de autenticação necessárias para se conectar a um recurso fora do SQL Server. A maioria das credenciais inclui um usuário e senha do Windows.
Para proteger as informações confidenciais dentro da credencial de escopo do banco de dados, é necessária uma chave mestra de banco de dados (DMK). O DMK é uma chave simétrica que criptografa o segredo na credencial com escopo do banco de dados. O banco de dados deve ter um DMK antes que qualquer credencial de escopo de banco de dados possa ser criada. Um DMK deve ser criptografado com uma senha forte. O Banco de Dados SQL do Azure criará um DMK com uma senha forte selecionada aleatoriamente como parte da criação da credencial com escopo do banco de dados ou como parte da criação de uma auditoria de servidor. Os usuários não podem criar o DMK em um banco de dados lógico master . A senha da chave mestra é desconhecida para a Microsoft e não pode ser detetada após a criação. Por esse motivo, é recomendável criar um DMK antes de criar uma credencial com escopo de banco de dados. Para obter mais informações, consulte CREATE MASTER KEY (Transact-SQL).
Quando IDENTITY é um usuário do Windows, o segredo pode ser a senha. O segredo é criptografado usando a chave mestra de serviço (SMK). Se o SMK for regenerado, o segredo será criptografado novamente usando o novo SMK.
Ao conceder permissões para uma assinatura de acesso compartilhado (SAS) para uso com uma tabela externa PolyBase, selecione Container e Object como tipos de recursos permitidos. Se não for concedido, você pode receber o erro 16535 ou 16561 ao tentar acessar a tabela externa.
As informações sobre credenciais com escopo de banco de dados são visíveis na exibição de catálogo sys.database_scoped_credentials .
Aqui estão algumas aplicações de credenciais com escopo de banco de dados:
O SQL Server usa uma credencial com escopo de banco de dados para acessar clusters Hadoop não públicos do Azure Blob Storage ou protegidos por Kerberos com PolyBase. Para saber mais, consulte CREATE EXTERNAL DATA SOURCE (Transact-SQL).
O Azure Synapse Analytics usa uma credencial com escopo de banco de dados para acessar o Armazenamento de Blobs do Azure não público com PolyBase. Para saber mais, consulte CREATE EXTERNAL DATA SOURCE (Transact-SQL). Para obter mais informações sobre a autenticação de armazenamento do Azure Synapse, consulte Usar tabelas externas com Synapse SQL.
O Banco de dados SQL usa credenciais de escopo de banco de dados para seu recurso de consulta elástica . Essa é a capacidade de consultar vários fragmentos de banco de dados.
O Banco de Dados SQL usa credenciais com escopo de banco de dados para gravar arquivos de eventos estendidos no Armazenamento de Blobs do Azure.
O Banco de dados SQL usa credenciais de escopo de banco de dados para pools elásticos. Para obter mais informações, consulte Controlar o crescimento explosivo com bancos de dados elásticos
BULK INSERT (Transact-SQL) e OPENROWSET (Transact-SQL) usam credenciais com escopo de banco de dados para acessar dados do Armazenamento de Blobs do Azure. Para obter mais informações, consulte Exemplos de acesso em massa a dados no Armazenamento de Blobs do Azure.
Use credenciais de escopo de banco de dados com PolyBase e recursos virtualização de dados da Instância Gerenciada SQL do Azure.
Para
BACKUP TO URLeRESTORE FROM URL, use uma credencial de nível de servidor via CREATE CREDENTIAL (Transact-SQL) em vez disso.
Permissions
Requer permissão CONTROL no banco de dados.
Examples
A. Criar uma credencial com escopo de banco de dados para seu aplicativo
O exemplo a seguir cria a credencial de escopo do banco de dados chamada AppCred. A credencial de escopo do banco de dados contém o usuário Mary5 do Windows e uma senha.
-- 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. Criar uma credencial com escopo de banco de dados para uma assinatura de acesso compartilhado
O exemplo a seguir cria uma credencial com escopo de banco de dados que pode ser usada para criar uma fonte de dados externa, que pode fazer operações em massa, como BULK INSERT (Transact-SQL) e OPENROWSET (Transact-SQL).
-- 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. Criar uma credencial com escopo de banco de dados para a Conectividade PolyBase com o Repositório Azure Data Lake
O exemplo a seguir cria uma credencial de escopo de banco de dados que pode ser usada para criar uma fonte de dados externa, que pode ser usada pelo PolyBase no Azure Synapse Analytics.
O Repositório Azure Data Lake usa um aplicativo Microsoft Entra para autenticação de serviço a serviço.
Crie um aplicativo Microsoft Entra e documente seu client_id, OAuth_2.0_Token_EndPoint e Key antes de tentar criar uma credencial com escopo de banco de dados.
-- 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>';
D. Criar uma credencial com escopo de banco de dados usando a Identidade Gerenciada
Aplica-se a: SQL Server 2025 (17.x)
O SQL Server 2025 (17.x) introduz suporte para identidades geridas pelo Microsoft Entra. Para obter informações sobre como usar uma identidade gerenciada com o SQL Server habilitado pelo Azure Arc, consulte Identidade gerenciada.
SP_CONFIGURE 'allow server scoped db credentials',1;
RECONFIGURE;
CREATE DATABASE SCOPED CREDENTIAL [managed_id]
WITH IDENTITY = 'Managed Identity';
#. Crie uma credencial com âmbito de base de dados usando o Microsoft Entra ID
Aplica-se a:Azure SQL Database, SQL database in Microsoft Fabric
No Azure SQL Database e na base de dados SQL no Microsoft Fabric, é possível usar o seu próprio login do Entra ID para autenticar uma fonte de dados externa.
Na base de dados SQL no Microsoft Fabric, se não for especificada nenhuma credencial com âmbito de base de dados, o método de autenticação utiliza USER IDENTITY por defeito e utiliza o login de utilizador do Entra ID como contexto.
CREATE DATABASE SCOPED CREDENTIAL MyCredential
WITH IDENTITY = 'User Identity';