Sql-Server

SQL Server 可信連接附加安全性

  • April 29, 2020

使用 Windows 身份驗證,有沒有辦法禁止使用者通過 ODBC 連接到數據庫?

旨在幫助此方案的功能是應用程序角色。使用應用程序角色,您可以允許使用者連接到目標數據庫,但在應用程序提供啟動應用程序角色的密鑰之前不能執行任何查詢。

一個可能的解決方案是創建一個伺服器登錄觸發器來檢查app_name(). 我在本地實例上創建了以下伺服器觸發器並嘗試通過 ODBC 連接。連接被拒絕。您必鬚根據需要進行修改。

CREATE TRIGGER trgGetAppName ON ALL SERVER
FOR LOGON AS

IF APP_NAME() NOT LIKE ('Microsoft SQL Server Management Studio%')
   AND APP_NAME() NOT LIKE ('.Net SqlClient Data Provider%')
BEGIN
   ROLLBACK
END

關於登錄觸發器的警告:

登錄觸發器可以有效地阻止所有使用者成功連接到數據庫引擎,包括 sysadmin 固定伺服器角色的成員。當登錄觸發器阻止連接時,sysadmin 固定伺服器角色的成員可以通過使用專用管理員連接或以最小配置模式 (-f) 啟動數據庫引擎進行連接

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