背景
SQLserver認証を使ってデータベースの利用者を制限している
IDとパスワードを知っていれば誰でもアクセスできる状態になっている
対策
ログオントリガーを使って利用できる端末IPを制限する
設定手順
以下のようなクエリを作成して実行する
今回の例ではSQLserver認証でtestuserを使ってログオンする場合、127.0.0.0以外からのアクセスを拒否するトリガーを作成する
CREATE TRIGGER [connection_limit_trigger] ON ALL SERVER FOR LOGON AS
BEGIN
IF
CONNECTIONPROPERTY('auth_scheme') = 'SQL'
AND SYSTEM_USER = 'testuser'
AND CONVERT(nvarchar(max), CONNECTIONPROPERTY('client_net_address')) <> '127.0.0.1'
ROLLBACK;
END;
GO
説明
CREATE TRIGGER [connection_limit_trigger] ON ALL SERVER FOR LOGON
サーバーレベルでログイン端末を制限するログオントリガーを作成する
CONNECTIONPROPERTY('auth_scheme') = 'SQL'
認証スキームがSQLserver認証であることを確認する
SYSTEM_USER = 'testuser'
ログオンしようとしているユーザーが"testuser"であることを確認する
CONVERT(nvarchar(max), CONNECTIONPROPERTY('client_net_address')) <> '127.0.0.1'
クライアントのIPアドレスが 127.0.0.1(ローカルホスト)でないことを確認する