2014-03-03 48 views
0

我想創建一個大型賬戶數據庫的視圖,併爲特定用戶提供對這個視圖的訪問權限。但是,我不希望該用戶能夠訪問底層數據庫和表。授予訪問權以從一個表中選擇,但不能訪問基礎表?

因此,一個名爲'db1.dbo.myview'的視圖包含'select acctid,onstop from accounts.dbo.customers'。允許用戶從db1.dbo.myview中進行選擇,但不能從「帳戶」數據庫中進行選擇。

這可能嗎?

從網上搜索看來,我需要創建一個存儲過程,使用證書對它進行簽名,從證書創建用戶等等。一個完整的噩夢。

回答

1

你就應該能夠做到這一點:「該服務器主要‘用戶’不能訪問數據庫‘帳戶’當前安全環境下」

grant select on dbo.myview to myuser 
+0

我試過了,它抱怨 – Moose

+0

你有連接到數據庫用戶的服務器登錄嗎? – Ray

+0

是的,就像我說的,'用戶'可以訪問數據庫'db1',但沒有任何權限來訪問視圖依賴的數據庫'賬戶'。我想知道視圖是否有可能承擔視圖所有者的權利(誰可以訪問「賬戶」)而不是視圖用戶的權利(誰不能) – Moose

相關問題