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

Bop*_*Bop 3 sql-server sql-server-2008

我说的是 Windows 身份验证。

我无权访问服务器管理权限,但 dbadmin 向我发送了屏幕截图,其中我的用户不在服务器的登录名中。而且只有一个名为 admin - databases 的 Windows 组,我 100% 确定我的家伙不能成为其中的一部分。

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

为什么用户可以出现在没有登录服务器的数据库中?

PS 在它打印的日志中:用户“xxxx”登录失败。原因:基于令牌的服务器访问验证因基础结构错误而失败。检查以前的错误

Gab*_*ães 6

如果数据库已恢复或迁移,则必须重新关联所有登录。这称为孤儿登录。

如果有同名的登录名,您可以使用此脚本来修复它。

USE [db_name]
GO
exec sp_change_users_login "auto_fix", "username";
Run Code Online (Sandbox Code Playgroud)

仅通过在还原数据库后重新创建登录名不会将其重新关联到用户。您必须更改要与给定登录名关联的用户。

您可以使用

ALTER USER [X]
WITH LOGIN = [Y];
Run Code Online (Sandbox Code Playgroud)

因为您可以有一个名称为 A 的用户与登录名 B 相关联。

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