2009-02-17 91 views
1

任何人都可以帮我解决这个问题吗?跨数据库权限问题

我有两个数据库在同一台服务器上,都属于sa。 Windows登录有权执行数据库A中的存储过程,该过程从表数据库B中选择数据。存储的过程和表也都由dbo拥有。 Windows登录名是Windows域组的成员,它是数据库A中数据库角色的成员,具有执行存储过程的权限,但尚未直接授予或拒绝对数据库B的任何权限。登录可以执行数据库A中的存储过程,它使用数据库A和其他访问其他数据库的登录已有权限的过程,但是当它尝试执行此存储的过程时,它会生成错误“服务器主体”能够在当前安全环境下访问数据库“B”。“交叉数据库所有权链接在服务器级别启用,但两个数据库在sys.databases中具有is_db_chaining_on = 0。

这是否很简单,因为您必须在服务器和数据库级别启用跨数据库所有权链接?

回答

1

从内存中,如果在服务器级启用跨数据库链接,它可用于所有数据库,则不必在数据库级别专门设置它。

你是如何设置链接的?对于某些系统设置,需要重新启动,或者可以在查询窗口中运行RECONFIGURE命令。

http://msdn.microsoft.com/en-us/library/ms176069(SQL.90).aspx