Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você 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)
Banco de dados SQL no Microsoft Fabric
O sqlcmd oferece suporte a vários modelos de autenticação do Microsoft Entra, dependendo da versão instalada.
Note
Embora o Microsoft Entra ID seja o novo nome do Azure Active Directory (Azure AD), para evitar a interrupção de ambientes existentes, o Azure AD ainda permanecerá 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 em seu sistema, confira a versão instalada do utilitário sqlcmd. Para obter informações sobre como obter sqlcmd, consulte Baixar e instalar o utilitário sqlcmd.
O sqlcmd (Go) oferece suporte a mais modelos de autenticação do Microsoft Entra, com base no pacote azidentity. A implementação depende de um conector do 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.
O -G é (principalmente) compatível com seu uso em sqlcmd (ODBC). Se houver um nome de usuário e senha, 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 usará um DefaultAzureCredential, que tentará se autenticar usando 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 usará, confira Credencial padrão do Azure.
- Escolha esse método se os scripts de automação de banco de dados forem executados em ambientes de desenvolvimento local e em uma implantação de produção no Azure. No seu ambiente de desenvolvimento você poderá 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 um segredo de cliente na implantação de produção.
- É necessário definir as variáveis de ambiente
AZURE_TENANT_IDeAZURE_CLIENT_IDpara que oDefaultAzureCredentialcomece a verificar a configuração de ambiente e procure uma das seguintes variáveis de ambiente adicionais para autenticar:- A definição da variável de ambiente
AZURE_CLIENT_SECRETconfigura oDefaultAzureCredentialpara escolherClientSecretCredential. - Definir a variável de ambiente
AZURE_CLIENT_CERTIFICATE_PATHvai configurar oDefaultAzureCredentialpara escolherClientCertificateCredentialseAZURE_CLIENT_SECRETnão estiver definido.
- A definição da variável de ambiente
- Definir a variável de ambiente AZURE_USERNAME vai configurar o
DefaultAzureCredentialpara escolherUsernamePasswordCredentialseAZURE_CLIENT_SECRETeAZURE_CLIENT_CERTIFICATE_PATHnão estiverem definidos.
ActiveDirectoryIntegrated
No momento, esse método não está implementado e retornará para ActiveDirectoryDefault.
ActiveDirectoryPassword
Esse método será autenticado usando um nome de usuário e uma senha. Ele não funcionará se o MFA for exigido.
Você fornece o nome de usuário e a senha usando as opções de linha de comando usuais ou as variáveis de ambiente do
SQLCMD.Defina a variável de ambiente
AZURE_TENANT_IDcomo a ID do inquilino do servidor se não estiver usando o inquilino padrão do usuário.
ActiveDirectoryInteractive
Esse método inicia um navegador da Web para autenticar o usuário.
ActiveDirectoryManagedIdentity
Use esse método ao executar o 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 (Identidade gerenciada atribuída pelo serviço):
sqlcmd -S testsrv.database.windows.net -d Target_DB_or_DW --authentication-method ActiveDirectoryManagedIdentity
Este exemplo mostra como se conectar a uma UAMI (Identidade gerenciada atribuída pelo usuário) 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 na entidade de serviço. Forneça um nome de usuário no formulário <application (client) ID>. Defina a variável SQLCMDPASSWORD como o segredo do cliente. Se estiver usando um certificado em vez de um segredo do cliente, defina a variável de ambiente AZURE_CLIENT_CERTIFICATE_PATH 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 azidentity usado pelo sqlcmd (Go).
É possível definir essas variáveis de ambiente para configurar alguns aspectos da autenticação do Microsoft Entra e para ignorar comportamentos padrão. Além das variáveis listadas anteriormente, as variáveis a seguir são específicas do 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 autenticar o Banco de Dados SQL do Azure. Aplica-se aos métodos ActiveDirectoryInteractive e ActiveDirectoryPassword.