2009-02-17 96 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