2016-05-31 82 views
0

背景:我有一個第三方開發者,我們已經爲他們創建了一個登錄到我們的SQL Server的工作,他們需要最低限度的權限來完成他們的工作。我們給他們「拒絕datareader」和「拒絕datawriter」,雖然我們授予他們執行他們需要的兩個存儲過程的權限。SP_LINKEDSERVER的SQL Server權限

問題:我們注意到,如果他們想惡意行爲,我們設置中的某些漏洞容易受到這個新用戶的攻擊。我們可以通過鏈接服務器從該服務器訪問各種其他SQL Server。登錄到遠程服務器不使用用戶登錄(登錄爲self爲false),而是連接了服務器登錄名。因此,如果他們遇到鏈接服務器的名稱,他們可以無限制地訪問鏈接服務器。爲了防止他們看到列表,我撤銷了對「sp_linkedservers」角色「public」的訪問權限。

問題:在我們糾正與鏈接服務器的情況之前,有沒有辦法讓我們修補這個漏洞?像拒絕訪問連接的服務器會很好,但從我的理解是不可能的...任何幫助將不勝感激!

聲明:雖然我不懷疑這個用戶的惡意行爲,但我確實想要防止這種可能性,同時學習另一部分SQL Server權限。

非常感謝!

〜禮

+0

我一直與第三方開發者打交道。他們不需要執行權限。存儲過程應該與OWNER一起設置爲EXECUTE。然後僅將數據讀取器和數據寫入器權限授予數據庫或特定表。如果需要讀取模式,您可能還需要授予View Definition。這鎖定了系統相當不錯。 – JVC

+1

這對我來說聽起來像是鏈接服務器安全性的配置問題(與第三方開發人員的登錄安全性相反)。您可以查看其中一個鏈接服務器的屬性併發布「安全」頁面的屏幕截圖嗎?模糊任何敏感信息。 – DMason

+0

@JVC - 我比這更小心。我給了他們denydatareader和denydatawriter,明確許可執行兩個必需的SP。這鎖定了我們身邊的一切,除了鏈接的服務器。 – Eli

回答

0

我問了一圈多一些,並轉發這個問題別人在Twitter上,直到我被引導到正確的位置。 查看附件截圖enter image description here