SqlException 服务器主体无法在当前安全上下文下访问数据库

时间:2024-08-23 19:36:02

遇到一个错误如下

System.Data.SqlClient.SqlException
  HResult=0x80131904
  Message=服务器主体 "用户名" 无法在当前安全上下文下访问数据库 "数据库名"。
  Source=.Net SqlClient Data Provider
  StackTrace:
<无法计算异常堆栈跟踪>

解决方案
查看看到哪些数据库开了trustworthy属性,命令如下:
SELECT name, database_id, is_trustworthy_on FROM sys.databases,默认就msdb开的有。

要打开数据库trustworthy属性,命令如下:
ALTER DATABASE 数据库名 SET TRUSTWORTHY ON

授权用户访问,命令如下:

ALTER AUTHORIZATION ON DATABASE::数据库名 TO [用户名]