【发布时间】:2015-06-25 15:18:19
【问题描述】:
我有一个可以在 SSMS 中使用非域 SQL Server 用户执行的存储过程。
此存储过程从一个数据库 (DB1) 中的表中选择数据,然后截断并选择到 DB2 中的表中。
用户拥有两个数据库的数据读取器、数据写入器和数据库所有者。
问题:
当我以用户身份通过 SS 代理执行存储过程时,出现以下错误
服务器主体 [用户] 无法访问数据库 [DB1] 在当前的安全环境下。
目前采取的行动:
到目前为止,我已尝试通过以下方式解决此问题:
- 为两个数据库启用数据库链接
- 从 DB1 中删除用户并再次添加
- 使用
EXEC sp_change_users_login @Action=’Report’检查用户是否孤立。因为这是一个还原实时数据库的数据库。但是我在还原后添加了用户。 用户未被列为孤立用户
【问题讨论】:
-
你尝试作为调用者执行吗?
-
@Giorgi Nakeuri 添加了执行作为存储过程的调用者,但仍然无法通过 SSA 工作
-
你最好在dba.stackexchange.com提问
-
@PeterCampbell,一个或另一个数据库对于登录上下文来说是不可信的。 ALTER DATABASE MyDatabase SET TRUSTWORTHY ON。
-
@PeterCampbell,唯一明显的另一件事是用户是否正确映射。用户映射应显示两个数据库。
标签: sql-server stored-procedures sql-server-2012 sql-server-agent