我有一个用户正在尝试访问他也拥有权限的DatabaseA,但他一直收到以下错误(他有权访问DatabaseA但没有对DatabaseB的权限):
The server principal "Domain\Username" is not able to access the database "DatabaseB" under the current security context.
因为他无法访问DatabaseB,所以一开始就有意义。不幸的是,他没有以任何方式调用DatabaseB。
我已经看过这个问题,使用Profiler将服务器下载到语句级别,使用否 过滤器。我可以看到他的联系和错误来了 没有任何迹象表明DatabaseB正以任何方式受到攻击。
我已经查看了他试图运行的存储过程。它包含一个简单的select语句,只能访问DatabaseA中的表。
我能够通过授予他访问DatabaseB来解决这个问题 这不是一个可行的长期解决方案。
我已确认该用户未成为孤儿
我搜索了Google,有很多关于此错误的帖子 但没有一个描述这个场景。
如果有人看过这个或对此有所了解,我真的很感激它!
答案 0 :(得分:2)
如果连接未指定数据库,则用户将连接到默认数据库。检查SQL Server中的登录信息以获取默认数据库。默认值可能设置为DatabaseB,但登录名不是数据库中的用户。
您可以使用对象浏览器查看信息。连接到SQL Server,将树导航到Security>登录并选择登录。右键单击并选择属性。默认数据库位于“常规”选项卡上表单底部附近。