我使用的是Windows 8.1和SQL Server 2012.
我使用操作系统帐户"Manoj"通过Windows身份验证访问SQL SERVER.最近我删除了操作系统的用户帐户"Manoj",并创建了一个名为"Manoj"的新帐户.
但该系统将新帐户视为"Manoj_2".这个改变使我无法访问我创建的旧数据库.
它说
无法访问数据库[dbName].(ObjectExplorer)
每当我尝试访问我创建的任何先前的数据库时.
我曾经在SQL Server中为"Manoj_2"创建新登录,默认DB为"master".但问题仍然存在.
我无法分离数据库.我无法扩展数据库.
注意:在操作系统中,我拥有"Manoj"帐户的管理员权限.
请有人告诉我,该怎么办?使用OS或SQL Server
del*_*via 10
问题是数据库中的用户是"孤儿".这意味着没有与用户关联的登录ID或密码.即使存在与用户匹配的登录ID,也是如此,因为还存在必须匹配的GUID(在Microsoft中称为SID).
这曾经是一个痛苦的修复,但目前(SQL Server 2000,SP3)有一个存储过程,可以解决繁重的问题.
所有这些说明都应该作为数据库管理员完成,并选择已恢复的数据库.
首先,确保这是问题所在.这将列出孤立用户:
EXEC sp_change_users_login 'Report'
Run Code Online (Sandbox Code Playgroud)
如果您已拥有此用户的登录ID和密码,请执行以下操作进行修复:
EXEC sp_change_users_login 'Auto_Fix', 'user'
Run Code Online (Sandbox Code Playgroud)
如果要为此用户创建新的登录ID和密码,请执行以下操作进行修复:
EXEC sp_change_users_login 'Auto_Fix', 'user', 'login', 'password'
Run Code Online (Sandbox Code Playgroud)
该文本来自Dez-13-2017的http://www.fileformat.info/tip/microsoft/sql_orphan_user.htm
真的很愚蠢的解决方案,但我会在这里添加它,万一有人从谷歌搜索到这里.
我刚刚重新启动SQL服务并且收到了这个错误,在我的情况下,等待10分钟就足够了,它再次没问题了.似乎这是刚刚启动时出现的错误.