Conecta-se ao MS SQL do IIS quando ambos são máquinas diferentes

1

como se conectar ao MS SQL a partir do IIS quando ambos estiverem em máquinas diferentes.

O MS SQL está configurado para autenticação do Windows.

Estou recebendo:

Falha no login do usuário ''. O usuário não está associado a uma conexão confiável do SQL Server. Descrição: ocorreu uma exceção não tratada durante a execução da solicitação da web atual. Por favor, revise o rastreamento de pilha para obter mais informações sobre o erro e onde ele se originou no código.

Exception Details: System.Data.SqlClient.SqlException: Login failed for user ''. The user is not associated with a trusted SQL Server connection.

Como configurar a autenticação corretamente?

    
por user34402 10.02.2010 / 22:33

4 respostas

2

Quem você deseja autenticar no SQL Server? A identidade do pool de aplicativos do IIS ou a identidade do usuário do Web client? Em outras palavras, você representa no IIS / ASP? E quando você diz 'IIS', você quer dizer alguma forma de processo de ASP / ASP.Net / pool de aplicativos, certo?

Se você não representar, o SQL autenticará a identidade do pool de aplicativos. Se o pool de aplicativos estiver sendo executado como um usuário do domínio, esse será o suer do domínio. Se o pool de aplicativos estiver sendo executado como serviço de rede ou LocalSystem, ele será a identidade do host (domain \ hostname $ account). Se o pool de aplicativos estiver sendo executado como um usuário local ou um serviço local, ele não será suportado e você deverá usar uma identidade suportada.

Se você representar, então, na verdade, estará delegando a identidade do usuário do cliente e, para isso, será necessário habilitar o IIS / ASP para delegação restrita. Há muita literatura sobre como fazer isso:

É claro que tanto o IIS quanto o SQL Server devem ser meberes de domínios com uma relação de confiança existente entre eles, caso contrário a autenticação não é possível (o 'truque' de usuário / senha idêntico é um hack horrível).

Depois de descobrir em quem exatamente o shoudl de autenticação resulta, você pode executar as etapas para permitir a autorização dentro do SQL Server, que são as etapas de ususal ( crie um login , conceda direitos apropriados, crie um usuário , conceda direitos apropriados).

Como observação, o código não deve permitir exceções sem tratamento. Talvez seja hora de ELMAH ?

    
por 11.02.2010 / 00:17
1

Dependendo da versão do SQL Server, você pode ter perdido conexões ativas desta vez: link .

Além disso, em vez de testar com seu aplicativo, você deve testar com o Management Studio ou o Management Studio Express. No momento, seu aplicativo está apenas adicionando outro fator variável à equação. Por isso, para começar, precisamos estabelecer que você possa se conectar com êxito a partir de uma máquina remota usando algo que seja de conhecimento geral. Uma vez confirmado, podemos trazer o IIS de volta para as coisas e atacá-lo daquele lado.

    
por 11.02.2010 / 00:16
0

Acho que depende do idioma em que você escreveu seu aplicativo da Web. Ele possui alguma documentação sobre métodos de acesso a dados, como o ADO ou algo semelhante?

    
por 10.02.2010 / 22:42
0

Eu criei um usuário em ambas as máquinas com o mesmo nome. Configure o pool do IIS para ser executado por esse usuário e o usuário atribuído ao grupo SQL em outro servidor.

Ajudou até agora.

    
por 11.02.2010 / 10:31

Tags