0

我有一个用户正在尝试访问他也拥有权限的 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 来解决这个问题,但这不是一个可行的长期解决方案。

  • 我已确认该用户不是孤儿

  • 我搜索了谷歌,有很多关于这个错误的帖子,但没有一个描述这个场景。

如果有人看到或对此有所了解,我将不胜感激!

4

1 回答 1

2

如果连接未指定数据库,则用户正在连接到默认数据库。在 SQL Server 中检查默认数据库的登录信息。默认可能设置为 DatabaseB,但登录名不是数据库中的用户。

您可以使用对象浏览器查看信息。连接到您的 SQL Server,将树导航到 Security > Logins 并选择登录名。右键单击并选择属性。默认数据库位于“常规”选项卡上表单底部附近。

于 2013-01-18T23:29:46.187 回答