SQL权限难题

时间:2012-03-23 13:55:12

标签: sql-server

我正在使用SQL Server 2005 我有一个用户。我们称他为User1。他有这样的访问权限:

DB1 (read,write,execute)
DB2 (read,execute)

以下是发生的事情:

DB1..Table1 (can read, just fine)
DB1..Proc1 (reads Table1. works fine)
DB2..Table2 (can read, works)
DB2..Proc2 (reads Table2, works)
DB1..Proc3 (reads Table1 with a join on DB2..Table2...

消息916,级别14,状态1.服务器主体“sa”无法在当前安全上下文下访问数据库“DB2”。)

BUT!

相同的SELECT ... JOIN在不属于存储过程的情况下工作正常。

这是一个严重的头脑,它正在阻碍我的工作。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

根据上面的评论,dbo未映射到服务器上的登录信息可能是您的问题。试试alter authorization on database::[yourdb] to [login](显然会替换你的db并使用适当的值登录)。

答案 1 :(得分:0)

我明白了。 DB1需要标记为可信赖。安装程序完成了它,但更新程序显然需要在它运行完毕后再次执行它。