有人可以帮我解决这个问题吗?
我在同一台服务器上有两个数据库,两者都由sa拥有。 Windows登录有权在数据库A中执行存储过程,该过程从表数据库B中选择数据。存储的过程和表也都由dbo拥有。 Windows登录是Windows域组的成员,该域组是数据库A中具有执行存储过程的权限的数据库角色的成员,但尚未直接授予或拒绝对数据库B的任何权限。登录能够在数据库A中执行存储过程,这些过程使用数据库A和访问登录有权访问的其他数据库的其他过程,但是当它尝试执行此存储过程时,它会生成错误“服务器主体”“不是能够在当前安全上下文中访问数据库“B”。“在服务器级别启用了跨数据库所有权链接,但sys.databases中的两个数据库的is_db_chaining_on = 0。
是否必须在服务器和数据库级别启用跨数据库所有权链接这么简单?
答案 0 :(得分:1)
如果在服务器级别启用跨数据库链接,则从内存中可用于所有数据库,您无需在数据库级别专门设置它。
你是如何设置链接的?对于某些系统设置,需要重新启动,或者您可以在查询窗口中运行RECONFIGURE命令。
http://msdn.microsoft.com/en-us/library/ms176069(SQL.90).aspx