ログオン トリガ
新規 : 2006 年 12 月 12 日
ログオン トリガは、LOGON イベントに応答してストアド プロシージャを起動します。このイベントは、SQL Server インスタンスでユーザー セッションが確立されるときに発生します。ログオン トリガは、ログインの認証段階が終了した後、ユーザー セッションが実際に確立されるまでの間に発生します。したがって、通常、エラー メッセージや PRINT ステートメントからのメッセージはユーザーに通知されますが、このトリガ内で発生したすべてのメッセージは SQL Server のエラー ログに記録されます。認証に失敗した場合は、ログオン トリガが作動しません。
ログオン トリガを使用すると、ログインの利用状況を追跡したり、SQL Server へのログインを制限したり、特定のログインのセッション数を制限したりすることで、サーバー セッションを監査し制御できます。たとえば、次のコードでは、ログイン login_test によってユーザー セッションが既に 3 つ生成されている場合、ログオン トリガは、そのログインが開始する SQL Server へのログイン試行を拒否します。
USE master;
GO
CREATE LOGIN login_test WITH PASSWORD = '3KHJ6dhx(0xVYsdf' MUST_CHANGE,
CHECK_EXPIRATION = ON;
GO
GRANT VIEW SERVER STATE TO login_test;
GO
CREATE TRIGGER connection_limit_trigger
ON ALL SERVER WITH EXECUTE AS 'login_test'
FOR LOGON
AS
BEGIN
IF ORIGINAL_LOGIN()= 'login_test' AND
(SELECT COUNT(*) FROM sys.dm_exec_sessions
WHERE is_user_process = 1 AND
original_login_name = 'login_test') > 3
ROLLBACK;
END;
LOGON イベントが AUDIT_LOGIN SQL トレース イベントに対応していることに注意してください。このトレース イベントは、イベント通知で使用できます。トリガとイベント通知の主な相違点は、トリガがイベントと同期的に発生するのに対し、イベント通知は非同期的に発生することです。つまり、セッションが確立されないようにする場合は、ログオン トリガを使用する必要があります。この目的では、AUDIT_LOGIN イベントのイベント通知を使用できません。
ログオン トリガのイベント データのキャプチャ
ログオン トリガ内で使用するために LOGON イベントに関する XML データをキャプチャするには、EVENTDATA 関数を使用します。詳細については、「EVENTDATA 関数の使用」を参照してください。LOGON イベントは、次のイベントのデータ スキーマを返します。
<EVENT_INSTANCE>
<EventType>event_type</EventType>
<PostTime>post_time</PostTime>
<SPID>spid</SPID>
<ServerName>server_name</ServerName>
<LoginName>login_name</LoginName>
<LoginType>login_type</LoginType>
<SID>sid</SID>
<ClientHost>client_host</ClientHost>
<IsPooled>is_pooled</IsPooled>
</EVENT_INSTANCE>
要素 | 説明 |
---|---|
|
|
|
セッションの確立が要求される時刻を格納します。 |
|
指定されたログイン名のセキュリティ ID 番号 (SID) の Base 64 エンコード形式のバイナリ ストリームを格納します。 |
|
接続を確立したクライアントのホスト名を格納します。クライアントとサーバーの名前が同じ場合、この値は ' |
|
接続プールを使用して接続が再利用される場合は |
ログオン トリガの作成、変更、および削除
ログオン トリガは、どのデータベースからでも作成できますが、サーバー レベルで登録されるため master データベースに存在します。
ログオン トリガを作成するには
ログオン トリガを変更するには
ログオン トリガを削除するには
ログオン トリガに関する情報の取得
ログオン トリガに関するメタデータを表示するには、sys.server_triggers カタログ ビューにクエリを実行します。
参照
概念
ログオン トリガ実行のガイドライン
DDL トリガと DML トリガについて
データベースの設計と作成