SQL 2008. Eu tenho usuário em um banco de dados que não tem login no servidor. Como isso é possível?

3

Estou falando sobre a autenticação do Windows.

Eu não tenho acesso ao servidor aditando direitos, mas um dbadmin me enviou screenshot onde o meu usuário não está nos logins do servidor. e também há apenas um grupo do Windows chamado admin - databases que eu tenho 100% de certeza que o meu cara não pode fazer parte dele.

MAS ... o nome de usuário dele está nos usuários do meu db ...

Como o usuário pode aparecer em um banco de dados que não tem login no servidor?

P.S. nos registros impressos: Falha no login do usuário 'xxxx'. Motivo: Falha na validação do acesso ao servidor baseada em token com um erro de infra-estrutura. Verifique se há erros anteriores

    
por Boppity Bop 09.11.2010 / 12:55

2 respostas

6

Se o banco de dados foi restaurado ou migrado, todos os logins terão que ser associados novamente. Isso é chamado de login órfão.

Se houver um login com o mesmo nome, você poderá usar esse script para corrigi-lo.

USE [db_name]
GO
exec sp_change_users_login "auto_fix", "username";

Apenas recriando o login depois que você restaurar o banco de dados, ele não será associado novamente ao usuário. Você precisa alterar o usuário para ser associado a um determinado login.

Você pode usar

ALTER USER [X]
WITH LOGIN = [Y];

Como você pode ter um usuário com o nome A associado ao login B.

Lembre-se: o login é por servidor, o usuário é por banco de dados.

    
por 09.11.2010 / 13:17
1

Também é bem possível criar usuários sem logins.

CRIE Sithlord DE USUÁRIO SEM LOGIN

Esses usuários sem login podem ser úteis para representação, em que o acesso a dados pode ser filtrado dependendo do contexto do usuário (por exemplo, segurança personalizada em nível de linha).

EXEC COMO USUÁRIO = 'sithlord'

SELECT * FROM dbo.someView

REVERTER

    
por 10.11.2010 / 05:12