我有一个存储过程,我可以在SSMS中使用非域SQL Server用户执行。
此存储过程从一个数据库(DB1)中的表中选择数据,从而截断并选择DB2中的表。
用户拥有两个数据库的datareader,datawriter和dbowner。
问题:
当我通过SS代理执行存储过程并以用户身份执行时,我收到以下错误
服务器主体[user]无法访问数据库[DB1] 在当前的安全背景下。
目前采取的行动:
到目前为止,我试图解决这个问题:
EXEC sp_change_users_login @Action=’Report’
检查以查看用户是否是孤儿。因为这是一个恢复现场数据库的数据库。但是我在恢复后添加了用户。 该用户未被列为孤儿 答案 0 :(得分:1)
如果您不希望拥有者为sa,则可能的解决方法是让用户成为msdb的成员并在msdb中授予SQLAgentOperatorRole。看看是否有效。
但说实话,要么使用sa,要么使用具有足够权限的专用服务帐户。如果工作在这种情况下运行会更好。