web-dev-qa-db-ja.com

SQL Serverの信頼できる接続の追加のセキュリティ

Windows認証を使用して、ユーザーがODBCを介してデータベースに接続することを禁止する方法はありますか?

4
Xilmiki

このシナリオで役立つように設計された機能は アプリケーションロール です。アプリケーションロールを使用すると、ユーザーにターゲットデータベースへの接続を許可できますが、アプリケーションがアプリケーションロールをアクティブ化するためのシークレットを提供するまで、クエリを実行できません。

possibleソリューションは、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)。

7
Scott Hodgin