Database/SQL Server

SQL Server - 로그인 트리거 Logon Triggers

청렴결백한 만능 재주꾼 2020. 12. 12. 06:04
반응형

Logon Triggers는 무엇인가 

Logon Triggers는 이름에서 알 수 있듯이 로그인을 관리하는 트리거이다. 로곤 트리거는 로그인 인증 단계가 끝난 후 사용자의 세션이 준비되기전에 시작된다.

As the name implies Logon triggers fire in response to a LOGON event. Logon triggers fire after the authentication phase of logging in finishes, but before the user session is actually established.

 

Logon 트리거 사용처 Logon triggers can be used for
1. 로그인 활동 추적 Tracking login activity
2. SQL Server에 로그인 제한 Restricting logins to SQL Server
3. 특정 로그인 횟수 제한 Limiting the number of sessions for a specific login

 

 

일단 sys.dm_exec_sessions 라는 곳은 유저 엑티비티가 다 저장이 되어 있다.

이 sys.dm_exec_sessions을 이용하여 트리거를 만든다.

예시)

CREATE TRIGGER tr_LogonAuditTriggers
ON ALL SERVER
FOR LOGON
AS
BEGIN
 DECLARE @LoginName NVARCHAR(100)

 Set @LoginName = ORIGINAL_LOGIN()

 IF (SELECT COUNT(*) FROM sys.dm_exec_sessions
  WHERE is_user_process = 1 
  AND original_login_name = @LoginName) ] 3
 BEGIN
  Print 'Fourth connection of ' + @LoginName + ' blocked'
  ROLLBACK
 END
END

그리고 로그인한 사용자가 세션을 3개 이상을 키려고 하면 4번째 세션은 못 열게 제한을 주었다.

반응형