개발하는 월퐁잉
놀면서 쉬면서 코딩 하기
개발하는 월퐁잉
전체 방문자
오늘
어제
  • 분류 전체보기 N
    • DBMS
      • DBeaver
      • HeidiSQL
      • MSSQL
      • MYSQL
    • Cloud
      • Azure
      • AWS
    • 업무 N
      • Slack N
      • IT-Tip
    • Vue
    • HTML
    • Java
    • Gradle N
    • IntelliJ N
    • GIT

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • IntelliJ
  • GIT
  • vue
  • DBeaver
  • JSP
  • MSSQL
  • MySQL
  • dba
  • Trigger
  • npm install
  • vue 에디터 적용
  • Eclipse
  • 단축키
  • ALTER TABLE
  • SQL Server
  • Query
  • 권한설정
  • 미러링
  • Vue.js
  • 인텔리제이

최근 댓글

최근 글

티스토리

250x250
250x250
hELLO · Designed By 정상우.
개발하는 월퐁잉

놀면서 쉬면서 코딩 하기

DBMS/MSSQL

[MSSQL] 로그인 히스토리 쿼리

2023. 9. 21. 13:50
728x90

MSSQL 에서 로그인 히스토리를 추적 하는 쿼리 2가지 확인이 되어 정리 해 볼까 한다.


1. 보안 - 감사를 통한 히스토리

 

SELECT  TOP 2000 
		Audit.EVENT_TIME
		, Audit.ACTION_ID  
		, Audit.SUCCEEDED				--  1 - TRUE(성공), 0 - FALSE (실패)
		, Audit.SERVER_PRINCIPAL_NAME 	--서버 보안 주체 이름
		, Audit.SERVER_PRINCIPAL_SID  	--서버 보안 주체 SID
		, Audit.STATEMENT 
		, Audit.FILE_NAME
FROM sys.fn_get_audit_file ('\<path>\*',default,default) Audit
		INNER JOIN (SELECT DISTINCT action_id, [name] FROM Sys.dm_audit_actions where ACTION_ID IN ('LGIS','LGIF','LGO')) AuAction ON Audit.action_id = AuAction.action_id 
WHERE  Audit.server_principal_name='계정ID'

 

 [ACTION_ID 동작 ID]

  • LGIF - LOGIN FAILED
  • LGFL - FAILED_LOGIN_GROUP
  • LGIS - LOGIN SUCCEEDED
  • LGO - LOGOUT
  • LGSD - SUCCESSFUL_LOGIN_GROUP
  • LO - LOGOUT_GROUP

2. 추적파일을 통한 히스토리 

 

1) 기본 추적기능
SELECT	* 
FROM	sys.configurations 
WHERE	name = 'default trace enabled';


2) 기본 추적파일의 속성
SELECT	* 
FROM	sys.traces

3) 프로시저 추적 파일 조회

SELECT TOP 10	A.*
		, B.*
FROM	fn_trace_gettable(CONVERT(VARCHAR(150), ( SELECT TOP 1 F.[value] FROM sys.fn_trace_getinfo(NULL) F WHERE  F.property = 2  )), DEFAULT) as A
	inner join sys.trace_events as B on A.EventClass = B.trace_event_id
	inner join sys.trace_categories as c on b.category_id = c.category_id
WHERE B.trace_event_id IN (14,15,20)
	AND A.LoginName NOT IN ('NT AUTHORITY\NETWORK SERVICE') 
	AND A.StartTime > = '2023-05-07'
	AND A.HOSTNAME='HOSTNAME'
ORDER BY A.STARTTIME DESC

--[sys.trace_event_id 테이블 ]
-- 14 - Audit Login
-- 15 - Audit Logout
-- 20 - Audit Login Failed

[2]
SELECT 	A.*
FROM	fn_trace_gettable(CONVERT(VARCHAR(150), ( SELECT TOP 1 F.[value] FROM sys.fn_trace_getinfo(NULL) F WHERE  F.property = 2  )), DEFAULT) as A
WHERE  A.eventclass IN (20,14,15,118,131,114)
	AND A.sessionloginname NOT IN('NT AUTHORITY\SYSTEM')
	AND A.databasename NOT IN ('mssqlsystemresource') (login -> null / logout -> null x)
	AND A.APPLICATIONNAME NOT IN ('.Net SqlClient Data Provider','Microsoft SQL Server Management Studio - Transact-SQL IntelliSense')
	AND A.SESSIONLOGINNAME='SESSIONLOGINNAME'
ORDER BY A.STARTTIME DESC

 

[참고]

[이벤트 정보 조회 쿼리]
SELECT	distinct c.name as category_name
		, a.eventid, b.name as event_name
FROM	fn_trace_geteventinfo(1) as a
	inner join sys.trace_events as b on a.eventid = b.trace_event_id
	inner join sys.trace_categories as c on b.category_id = c.category_id
    
    
EXEC sp_readerrorlog 0,1,'login'

## 사용자 관련 명령어
- user : db 사용자 이름
- username(1) - db 사용자를 순차적으로 반환
- curent_name - 현재 로그인한 db 사용자 이름
- sessin_user - 현재 세션의 db 사용자 이름
- sp_helpuser - 모든 사용자 정보에 대해서 확인
- sys.syslogins - 모든 사용자의 로그인한 히스토리 정보
- sp_helplogins - 로그인 정보에 대해서 확인
- sts.sql_logins - sql 로그인 정보 . id, 패스워드 해쉬값
- xp_logininfo - 사용자 로그인에 대한 정보
- has_dbaccess - 사용자가 db에 접근 권한이 있는지 확인
728x90

 

728x90
반응형
저작자표시 비영리 변경금지

'DBMS > MSSQL' 카테고리의 다른 글

[MSSQL] LDF 파일 없이 MDF 로만 DB 복원 방법  (0) 2023.09.21
[MSSQL] 로그온 트리거 (Login Trigger)  (0) 2023.09.21
[MSSQL] 메시지 3702, 수준 16, 상태 3, 줄 1Cannot drop database "database name" because it is currently in use.  (0) 2023.05.04
[MSSQL] index 리빌드 - 인덱스 다시 구성  (0) 2023.02.24
[MSSQL] DB(Database) 전체 백업, 데이터베이스 Full BackUp  (0) 2023.02.14
    'DBMS/MSSQL' 카테고리의 다른 글
    • [MSSQL] LDF 파일 없이 MDF 로만 DB 복원 방법
    • [MSSQL] 로그온 트리거 (Login Trigger)
    • [MSSQL] 메시지 3702, 수준 16, 상태 3, 줄 1Cannot drop database "database name" because it is currently in use.
    • [MSSQL] index 리빌드 - 인덱스 다시 구성
    개발하는 월퐁잉
    개발하는 월퐁잉
    놀멍 쉬멍 개발하는 퐁 - 기억은 사라지지만 기록은 남는다

    티스토리툴바