SQL 2008.我有用户在一个没有在服务器上login的数据库。 这怎么可能?

我正在谈论Windowsauthentication。

我没有访问服务器的adming权限,但一个dbadmin发送给我的屏幕截图,我的用户不在服务器的login。 也只有一个叫做pipe理员的窗口组 – 数据库,我100%肯定我的家伙不能成为它的一部分。

但是…他的用户名是在我的数据库的用户…

用户怎样才能出现在没有login服务器的数据库?

PS打印的日志中:用户'xxxx'的login失败。 原因:基于令牌的服务器访问validation失败,出现基础结构错误。 检查以前的错误

如果数据库已恢复或迁移,则所有login都必须重新关联。 这被称为孤立login。

如果有一个同名的login,你可以使用这个脚本来修复它。

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

在恢复数据库之后重新创buildlogin将不会重新关联到用户。 您必须将用户更改为与给定login关联。

您可以使用

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

由于您可以让名为A的用户与loginB关联

记住:login是每个服务器,用户是每个数据库。

也可以创build没有login的用户。

创build用户sithlord没有login

这些无login的用户可以用于模拟,其中数据访问可能根据用户上下文(即自定义行级安全性)进行过滤。

EXEC AS USER ='sithlord'

SELECT * FROM dbo.someView

还原