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 base de dados não está mapeada para um login de servidor ou utilizador de base de dados. A base de dados utiliza a credencial para aceder ao recurso externo quando realiza 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 usar ao ligar 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 Active Directory ou MIT KDC), não use o nome de domínio no
IDENTITYargumento. Deve ser apenas o nome da conta.Numa instância de SQL Server, se criar uma credencial com âmbito de base de dados com uma Chave de Acesso ao Armazenamento usada como ,
SECRETIDENTITYé ignorado.WITH IDENTITYnão é obrigatório se o contentor no armazenamento Azure Blob estiver ativado 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.
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, pode usar qualquer valor válido 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 através de uma identidade de utilizador, possibilitado por login de utilizador com autenticação pass-through Microsoft Entra, também é possível com credencial com âmbito de base de dados, assim como o acesso anónimo a armazenamento público. 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, pode usar qualquer valor válido 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 login do utilizador com autenticação pass-through do Microsoft Entra |
| 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 |
1 Na base de dados SQL no Microsoft Fabric, se não especificar uma credencial com âmbito de base de dados, o método de autenticação passa por defeito a 'USER IDENTITY' e usa a conta de utilizador Microsoft 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. A base de dados tem de ter um DMK antes de poderes criar quaisquer credenciais com âmbito de base de dados. Encripta o DMK com uma palavra-passe forte. A Azure SQL Database cria uma DMK com uma palavra-passe forte e selecionada aleatoriamente como parte da criação da credencial com âmbito da base de dados, ou como parte da criação de uma auditoria ao servidor.
Os usuários não podem criar o DMK em um banco de dados lógico master . A palavra-passe DMK é desconhecida para a Microsoft e não pode ser descoberta após a criação. Crie um DMK antes de criar uma credencial com âmbito de base de dados. Para obter mais informações, consulte CREATE MASTER KEY.
Quando IDENTITY é utilizador Windows, o segredo pode ser a palavra-passe. O segredo é encriptado com a chave mestra de serviço (SMK). Se regenerares o SMK, o segredo é encriptado novamente com o novo SMK.
Ao conceder permissões para uma assinatura de acesso partilhado (SAS) para utilização com uma tabela externa PolyBase, selecione tanto Container como Object como tipos de recursos permitidos. Se não conceder estas permissões, pode receber o erro 16535 ou 16561 ao tentar aceder à tabela externa.
Para informações sobre credenciais com âmbito de base de dados, consulte a vista 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 obter mais informações, consulte CREATE EXTERNAL DATA SOURCE.
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 obter mais informações, consulte CREATE EXTERNAL DATA SOURCE. Para obter mais informações sobre a autenticação de armazenamento do Azure Synapse, consulte Usar tabelas externas com Synapse SQL.
A base de dados SQL utiliza credenciais com escopo de base de dados para a sua funcionalidade de consulta elástica , que permite consultas em múltiplos fragmentos de base 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 mais informações, veja Elastic pools ajudam-no a gerir e escalar múltiplas bases de dados no Azure SQL Database
BULK INSERT e OPENROWSET utilizam credenciais com âmbito de base de dados para aceder a dados do Azure Blob Storage. Para mais informações, veja Exemplos de acesso em massa a dados no Azure Blob Storage.
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 ao nível do servidor via CREATE CREDENTIAL em vez disso.Use credenciais com âmbito de base de dados com CRIAR MODELO EXTERNO
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.
Cria um DMK se ainda não existir um. Não utilize uma palavra-passe em branco. Use uma senha forte.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
Crie uma credencial com âmbito de base de dados:
CREATE DATABASE SCOPED CREDENTIAL AppCred
WITH IDENTITY = 'Mary5',
SECRET = '<password>';
B. Criar uma credencial com escopo de banco de dados para uma assinatura de acesso compartilhado
O exemplo seguinte cria uma credencial com âmbito de base de dados que pode usar para criar uma fonte de dados externa. Esta credencial pode realizar operações em massa, como BULK INSERT e OPENROWSET BULK.
Cria um DMK se ainda não existir um. Não utilize uma palavra-passe em branco. Use uma senha forte.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
Crie uma credencial com escopo específico a um banco de dados. Substitua <key> pelo valor apropriado.
CREATE DATABASE SCOPED CREDENTIAL MyCredentials
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '<key>';
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 Azure Data Lake Store utiliza uma aplicação Microsoft Entra para autenticação service-to-service.
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.
Cria um DMK se ainda não existir um. Não utilize uma palavra-passe em branco. Use uma senha forte.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
Crie uma credencial com escopo específico a um banco de dados. Substitua <key> pelo valor apropriado.
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) e versões posteriores
O SQL Server 2025 (17.x) introduz suporte para identidades geridas pelo Microsoft Entra. Para informações sobre como usar uma identidade gerida com o SQL Server ativado pelo Azure Arc, veja Identidade gerida para SQL Server ativada pelo Azure Arc.
EXECUTE sp_configure 'allow server scoped db credentials', 1;
RECONFIGURE;
GO
CREATE DATABASE SCOPED CREDENTIAL [managed_id]
WITH IDENTITY = 'Managed Identity';
E. Crie uma credencial com âmbito de base de dados usando o Microsoft Entra ID
Aplica-se a: Azure SQL Database, base de dados SQL no Microsoft Fabric
No Azure SQL Database e SQL Database no Microsoft Fabric, pode usar a sua própria conta Microsoft Entra ID para autenticar uma fonte de dados externa.
Na base de dados SQL no Microsoft Fabric, se não especificares uma credencial com âmbito de base de dados, o método de autenticação passa por defeito e USER IDENTITY usa a conta de utilizador do Entra ID como contexto.
CREATE DATABASE SCOPED CREDENTIAL MyCredential
WITH IDENTITY = 'User Identity';