又一个SQL Server主体访问错误



我有一个用户,他正试图访问DatabaseA,他也有权限,但他一直得到以下错误(他有访问DatabaseA,但没有DatabaseB的权限):

The server principal "DomainUsername" is not able to access the database "DatabaseB" under the current security context.

因为他没有访问DatabaseB的权限,所以这一开始是有意义的。不幸的是,他没有以任何方式调用DatabaseB。

  • 我已经看到这个通过服务器使用Profiler下降到语句级别使用no过滤器。我能看出他的联系和错误,但是没有迹象表明DatabaseB受到了任何形式的攻击。

  • 我已经检查了他正试图运行的存储过程。它包含一个简单的select语句,只访问DatabaseA中的表。

  • 我能够通过给他访问DatabaseB来解决这个问题,但是这不是一个可行的长期解决方案。

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

  • 我搜索了谷歌,有很多关于这个错误的帖子

如果有人看到这个或有一个想法,我真的很感激!

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

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

最新更新