Antecedentes
O Microsoft SQL Server suporta dois métodos de autenticação diferentes: autenticação do SQL Server e autenticação do Windows. É importante entender qual é a diferença para configurar um SQL Server.
A autenticação do SQL Server exige que o próprio SQL Server mantenha um banco de dados de nomes de usuários e senhas com permissão de acesso ao banco de dados. O processo do SQL Server é responsável por autenticar os usuários comparando o nome de usuário e a senha (hash) em relação ao seu próprio banco de dados. Esse método de logon não permite o logon único porque não está integrado ao Windows e as credenciais fornecidas não são totalmente relacionadas às credenciais da conta do Windows (domínio ou local).
A autenticação do Windows usa a autenticação padrão do Windows para acessar o banco de dados. O SQL Server ainda é responsável pela autorização ("Bob é permitido entrar?"), Mas o Windows agora se torna responsável pela autenticação ("Isso é realmente Bob?"). Você não pode inserir credenciais ao usar a autenticação do Windows; É por isso que as caixas de entrada de nome de usuário e senha são desabilitadas no SQL Server Management Studio quando você seleciona Autenticação do Windows. Seja qual for o usuário que o programa cliente está executando, assim como o usuário autenticado no SQL Server (você pode sobrescrever qual usuário é autenticado usando runas /netonly
).
Quando um programa tenta acessar o SQL Server via autenticação do Windows, o SQL Server solicita ao Windows para autenticar o usuário. Se for um usuário local, o Windows verifica o banco de dados do usuário local e retorna sim ou não. Se a conta for uma conta de domínio e o computador tiver ingressado em qualquer domínio, o Windows passará para o Active Directory para autenticação. O Active Directory validará o usuário se ele existir em algum lugar na floresta confiável (seja no domínio atual ou em um domínio que seja confiável ).
Sua situação
Sua cópia do SQL Server está sendo executada em um computador sem domínio. Quando você área de trabalho remota no computador, você está executando programas como um usuário local. Quando você usa "Conexão Confiável" (que realmente significa "Usar autenticação do Windows"), o Windows sabe quem é sua conta local e a valida. O SQL Server permite que você acesse.
Quando você executa um programa em um computador que faz parte do domínio e tenta autenticar por meio da Autenticação do Windows, está tentando autenticar em um computador sem domínio usando uma credencial de domínio. O computador sem domínio não sabe como autenticar via domínio (por definição, não confia no domínio), então a autenticação falha.
Soluções possíveis
-
Use a autenticação do SQL Server. Use uma ferramenta como o SQL Server Management Studio para criar logins do SQL Server para cada usuário que precisa de acesso. Você não poderá usar a caixa de seleção "Usar conexão confiável" e os usuários sempre precisarão inserir suas credenciais para o SQL Server. Dependendo do programa que está tentando acessar o SQL Server, ele pode fornecer algum método para salvar as credenciais no registro ou os usuários protegem o armazenamento local para que o usuário não precise digitá-los sempre.
-
Quando você executa o SQL Server Management Studio localmente, execute-o com o comando
runas
da seguinte maneira:runas /user:username /netonly "C:\Path\to\SSMS.exe"
Isso permitirá que você use a Autenticação do Windows porque, em vez de passar suas credenciais conectadas, você passará credenciais para a conta "username". Essa conta deve ser aquela que existe na máquina de destino.
-
Participe do computador que está executando o SQL Server no domínio e use. (Você também pode precisar executar o SQL Server como uma conta de domínio em vez de uma conta local, mas não tenho certeza.) Nesse ponto, o SQL Server seria capaz de autenticar usuários usando o Active Directory e "Usar conexão confiável". "funcionará sem inserir nenhuma credencial. Claro, você ainda precisará decidir quais usuários estão autorizados a acessar o banco de dados; você pode usar o SQL Server Management Studio para isso.
-
Promova o servidor que executa o SQL Server para um controlador de domínio de um novo domínio (do qual é o único membro). Então você pode criar uma confiança entre os dois domínios para que o SQL Server O computador pode enviar credenciais para o outro domínio para autenticação e a Autenticação do Windows funcionará. Nenhuma credencial precisa ser inserida. Você ainda precisará autorizar usuários no SQL Server Management Studio.