Answers:
这意味着登录名[R2Server \ AAOUser]已映射到该数据库中的用户。或者,换句话说,另一个数据库用户正在使用此登录名。您可以通过以下查询查看哪个数据库用户正在使用您的登录名:
use YourDB
go
SELECT su.name as DatabaseUser
FROM sys.sysusers su
join sys.syslogins sl on sl.sid = su.sid
where sl.name = 'test' -- login
PS:不使用兼容性视图的脚本版本:
Select sp.name as LoginName, sp.type_desc as LoginType,
dp.name as DBUser, dp.type_desc as UserType
from sys.server_principals sp
join sys.database_principals dp on dp.sid = sp.sid
where sp.name = 'test' -- your login
aspnet_regsql -E -S .\MSSQLSERVER_R2 -ssadd
来创建ASPState
数据库。我想,即使我一开始就没有意识到,但我已经准备好了。
sys.server_principals
和sys.database_principals
。sysusers
并且syslogins
仅用于向后兼容。
这是一个“元数据事物” ...
有时,数据库用户在该数据库中发生的任何事情中都会被“破坏”。(如果恢复了数据库,我已经看到了类似的行为,并且恢复后的副本中的角色与您所覆盖的角色不同。这就是为什么我在下面进行尝试,从而为我解决了这个问题。)
在SSMS中打开“登录”属性->(“安全性|登录| 用户ID失败 |属性|用户映射”)。您可能会看到数据库已被检查并已分配了角色(完全正常)。
请注意提供错误的数据库上的权限,仅供参考。
Cannot drop the user 'dbo'. (Microsoft SQL Server, Error: 15150)
Cannot drop the user 'dbo'.
错误消息。我运行了该脚本,该脚本删除了有问题的用户映射并解决了问题:USE DATABASE_NAME; ALTER AUTHORIZATION ON DATABASE::DATABASE_NAME TO [sa]
。有关更多信息,这是我使用的来源:blog.sql-assistance.com/index.php/cannot-drop-the-user-dbo
dbo
正在显示的值。奇怪,我不记得我已经使用了dbo
我的帐户了R2Server\AAOUser
。想知道下一步该怎么做。