2012-05-17 48 views
1

我在DB1中創建了一個視圖,用於從DB2中的表中選擇數據。 說「創建視圖DB1.A爲從DB2.B中選擇*」。SQLServer數據庫之間的訪問限制

只能訪問DB1的用戶'usr1'現在無法從此視圖中選擇數據。獲取以下錯誤: 服務器主體「usr1」無法在當前安全上下文中訪問數據庫「DB2」。

我知道可以通過在Teradata中使用'With Grant'選項授予DB1到DB2的只讀訪問權限來處理這種情況。在SQL Server中是否有類似的選項?

+2

是有一些原因,你不能簡單地將用戶添加到 「DB2」,只授予'select'權限? –

回答

0

1)使用下面的鏈接到你的用戶名DB2映射dataabase herethis

0

至於我記得,唯一一次,這將默認的工作,如果你滿足兩個條件...
1 。視圖的所有者是基礎表(一個或多個)
2.你有「跨數據庫所有權鏈接」激活

的業主如果你失敗了這些條件,您需要配置安全查詢的用戶/登錄設置而不僅僅是視圖的所有者。

視圖和內聯表值函數都不允許使用EXECUTE AS OWNER或類似選項。