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
sqlcmd suporta uma variedade de modelos de autenticação do Microsoft Entra, dependendo da versão instalada.
Note
Embora o Microsoft Entra ID seja o novo nome para o Azure Active Directory (Azure AD), para evitar interromper ambientes existentes, o Azure AD ainda permanece em alguns elementos codificados, como campos de interface do usuário, provedores de conexão, códigos de erro e cmdlets. Neste artigo, os dois nomes são intercambiáveis.
Para descobrir qual variante e versão do sqlcmd está instalada no seu sistema, consulte Verificar a versão instalada do utilitário sqlcmd. Para obter informações sobre como obter o sqlcmd, consulte Baixar e instalar o utilitário sqlcmd.
sqlcmd (Go) suporta mais modelos de autenticação do Microsoft Entra, com base no pacote azidentity. A implementação depende de um conector Microsoft Entra no driver go-sqlcmd .
Argumentos de linha de comando
Para usar a autenticação do Microsoft Entra, você pode usar uma das duas opções de linha de comando.
-G é (principalmente) compatível com seu uso no sqlcmd (ODBC). Se um nome de usuário e senha forem fornecidos, ele será autenticado usando a autenticação de senha do Microsoft Entra. Se um nome de usuário for fornecido, ele usará a autenticação interativa do Microsoft Entra, que pode exibir um navegador da Web. Se nenhum nome de usuário ou senha for fornecido, ele usa um DefaultAzureCredential, que tenta autenticar através de vários mecanismos.
--authentication-method= pode ser usado para especificar um dos seguintes tipos de autenticação.
ActiveDirectoryDefault
- Para obter uma visão geral dos tipos de autenticação que esse modo usa, consulte Credencial Padrão do Azure.
- Escolha esse método se os scripts de automação de banco de dados se destinarem a ser executados em ambientes de desenvolvimento local e em uma implantação de produção no Azure. Em seu ambiente de desenvolvimento, você pode usar um segredo do cliente ou um logon da CLI do Azure. Sem alterar o script do ambiente de desenvolvimento, você pode usar uma identidade gerenciada ou segredo do cliente em sua implantação de produção.
- A definição de variáveis de ambiente
AZURE_TENANT_IDeAZURE_CLIENT_IDé necessária para queDefaultAzureCredentialcomece a verificar a configuração do ambiente e procure uma das seguintes variáveis de ambiente adicionais para autenticar:- Definir a variável de ambiente
AZURE_CLIENT_SECRETconfigura oDefaultAzureCredentialpara escolher oClientSecretCredential. - Definir a variável de ambiente
AZURE_CLIENT_CERTIFICATE_PATHconfigura aDefaultAzureCredentialpara escolherClientCertificateCredentialseAZURE_CLIENT_SECRETnão estiver definido.
- Definir a variável de ambiente
- Definir a variável de ambiente AZURE_USERNAME configura o
DefaultAzureCredentiala escolherUsernamePasswordCredentialcasoAZURE_CLIENT_SECRETeAZURE_CLIENT_CERTIFICATE_PATHnão estejam definidos.
ActiveDirectoryIntegrated
Este método não está atualmente implementado, e recorre a ActiveDirectoryDefault.
ActiveDirectoryPassword
Este método autentica usando um nome de usuário e senha. Não funciona se o MFA for necessário.
Você fornece o nome de usuário e a senha usando as opções de linha de comando usuais ou variáveis de ambiente
SQLCMD.Configure a variável de ambiente
AZURE_TENANT_IDcomo o identificador do tenant do servidor, caso não esteja a usar o tenant padrão do utilizador.
ActiveDirectoryInteractive
Esse método inicia um navegador da Web para autenticar o usuário.
ActiveDirectoryManagedIdentity
Use esse método ao executar sqlcmd (Go) em uma VM do Azure que tenha uma identidade gerenciada atribuída pelo sistema ou pelo usuário. Se estiver usando uma identidade gerenciada atribuída pelo usuário, defina o nome de usuário como a ID do Cliente da identidade gerenciada. Se estiver usando uma identidade atribuída pelo sistema, deixe o nome de usuário vazio.
Este exemplo mostra como se conectar usando uma SAMI (Service Assigned Managed Identity):
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity
Este exemplo mostra como se conectar a uma UAMI (User Assigned Managed Identity) adicionando a ID do cliente da identidade gerenciada atribuída ao usuário:
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity -U <user-assigned-managed-identity-client-id>
ActiveDirectoryServicePrincipal
Esse método autentica o nome de usuário fornecido como uma ID da entidade de serviço e a senha como o segredo do cliente para a entidade de serviço. Forneça um nome de usuário no formato <application (client) ID>. Defina a variável SQLCMDPASSWORD para o segredo do cliente. Se estiver usando um certificado em vez de um segredo do cliente, defina AZURE_CLIENT_CERTIFICATE_PATH variável de ambiente como o caminho do arquivo de certificado.
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryServicePrincipal -U <Application (client) ID> -P <client secret>
Variáveis de ambiente para autenticação do Microsoft Entra
Algumas configurações de autenticação do Microsoft Entra não têm entradas de linha de comando e algumas variáveis de ambiente são consumidas diretamente pelo pacote de azidentity usado pelo sqlcmd (Go).
Essas variáveis de ambiente podem ser definidas para configurar alguns aspetos da autenticação do Microsoft Entra e ignorar comportamentos padrão. Além das variáveis listadas anteriormente, as seguintes opções são específicas para sqlcmd (Go) e se aplicam a vários métodos.
SQLCMDCLIENTID
Defina essa variável de ambiente como o identificador de um aplicativo registrado no Microsoft Entra, que está autorizado a se autenticar no Banco de Dados SQL do Azure. Aplica-se aos métodos ActiveDirectoryInteractive e ActiveDirectoryPassword.