SqlException 服务器主体无法在当前安全上下文下访问数据库
遇到一个错误如下
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 [用户名]