916: The server principal is not able to access the database under the current security context(服务器主体无法在当前安全上下文中访问数据库)
SQL Server含义
某个登录名尝试访问特定数据库,但在当前安全上下文中没有该数据库的访问权限。该登录名可以连接到服务器,但在目标数据库中没有对应的用户/权限。
原因
该登录名在数据库中没有映射的用户(孤立或从未创建)、数据库访问受到限制,或 guest 账户已禁用。常见情况是 SSMS 对象资源管理器试图读取登录名无权访问的数据库的元数据。
解决方法
在目标数据库中为该登录名创建用户并授予所需权限:USE [db]; CREATE USER [login] FOR LOGIN [login]; 并分配相应的角色/权限。如果存在孤立用户,用 ALTER USER ... WITH LOGIN = ... 进行映射。如果确实需要访问,将其加入相应的数据库角色;否则,该错误属于预期行为(无权访问该数据库)。