2013-08-30 70 views
2

我有一個SQL Server 2005實例,它有一個到中央數據存儲的鏈接服務器連接。我們的安全團隊希望我們的網頁使用的帳戶不能直接訪問該鏈接的服務器,但我們需要從該鏈接的服務器連接中提取兩列數據。這兩部分數據的安全性是可以的,但不希望其餘部分可用於網絡。可以使用視圖來保護鏈接的服務器嗎?

我的問題是這樣的:能否創建一個能夠獲取並返回這兩個數據片斷的數據,這些數據可以被一個沒有源鏈接服務器權限的帳戶執行?

在此先感謝!

編輯:RBarryYoung的回答下面帶我走下另一條路,我發現了執行爲(http://technet.microsoft.com/en-us/library/ms188354.aspx)。這將允許我創建一個可由網頁帳戶執行的「接口」存儲過程,該存儲過程又可以運行存儲過程,我想作爲有權訪問鏈接服務器的帳戶運行。再次感謝大家!

+0

'Execute As'是爲用戶/會話添加臨時訪問權限的標準方式。但是,要預先警告,它可能無法與鏈接服務器一起工作,因爲它們會脫離節點/服務器。 SQL Server可能會限制鏈接服務器訪問會話的'Original_Login'值(對不起,我以前做過,但我不記得鏈接服務器的具體情況)。 – RBarryYoung

+0

感謝您的領導!如果我能夠測試這個理論,我會更新。再次感謝! –

回答

0

不,AFAIK,唯一可以通過View實現的安全功能是Owner-Chaining,並且不會通過Linked-Server工作。

我相信你可以這樣做與存儲過程雖然因爲它有更多的安全選項比視圖做。

+0

我可能是錯的,但不是定義,視圖可以被定義爲允許讀/寫訪問用戶被拒絕訪問的數據子集。 – Sonam

+0

@Sonam不,根據定義,View是查詢表達式的封裝。安全功能(如果有的話)是特定於實現的並由供應商添加。在SQL Server中,可以由View啓用的唯一安全訪問權限是所有者鏈接。沒有其他機制/語法來指定通過我知道的View的增強訪問。如果您知道指定方式,請告訴我們。 – RBarryYoung

+0

好的,謝謝你的詳細解釋。 – Sonam

相關問題