Sql-Server

SQL Server 中的連結伺服器的安全性如何

  • August 12, 2014

我處於一種我應該懷疑每個人(甚至是我的開發團隊和數據庫管理員)的情況,所以我想記錄對我的伺服器進行的所有登錄。

我有兩個 SQL Server,比如 A 和 B。我想使用伺服器 B 中伺服器 A 的登錄觸發器記錄所有登錄,重要的是我的數據庫能夠將日誌插入 A,但它不應該刪除或更新 B 上的訪問權限。

我希望製作日誌,但我不信任我的 sa 或其他對 A 具有完全訪問權限的人。

簡而言之,伺服器 A 可以插入日誌,但不能做更多的事情,當我想監視 A 上的登錄時,唯一可能的解決方案應該是在 B 上進行。

我怎樣才能實現這種情況?

我想使用伺服器 B 中伺服器 A 的登錄觸發器記錄所有登錄。

理想情況下,如果您使用的是企業版,那麼正如 Shawn 所提到的,您可以使用 SQL Server Audit。

您甚至可以設置一個輕量級的伺服器端跟踪,然後定義一個WMI 事件通知——TRACE_FILE_CLOSE當它翻轉時自動將跟踪數據載入到一個表中。

另一種選擇是-您可以使用我發布的登錄觸發器腳本。請注意,它不適用於現有連接,並且它是登錄觸發器的限制。所有新連接都將通過登錄觸發器。

我的數據庫能夠將日誌插入 A 很重要,但它不應該對 B 具有刪除或更新訪問權限。

您可以通過將登錄表複製到伺服器 B(在您的情況下)來使用事務複製。確保選擇 - 不要複製 DDL 更改選項。

當我想監視 A 上的登錄時,唯一可能的解決方案應該是在 B 上進行。

您可以使用連結伺服器創建視圖,只需授予視圖的選擇權限。通過這種方式,您可以控制誰可以訪問資訊。

附帶說明一下,確保您不會在視圖中返回完整的數據集,而只是將其限制在最近 10 -15 天的登錄審核中,因此當使用者查詢數據時,它只會返回少量數據.

引用自:https://dba.stackexchange.com/questions/73567