SharedIT | 묻고 답하기(AMP)

mssql 에서 grant 명령어 이력 확인?

현재 윈도우 mssql 사용중이며 특정 테이블의 오브젝트에 대하여 grant 로 select 권한을 부여하였고 해당시점부터 권한 변경이 일어나지 않은것에 대해 증명이 필요한데 확인 하는 방법이 있을지 조언을 구합니다

Tags : 태그가 없습니다.

7개의 답변이 있습니다.

Simon.Park
  0 추천 | 6달 전

감사 로그 설정하시고, 해당 로그를 확인하셔야 할 듯 합니다. 

앵그리파파
  0 추천 | 6달 전

MSSQL 에서 GRANT 이력을 조회하려면 SQL Server의 sys.fn_get_audit_file 함수와 감사 추적(Audit Trace)을 사용할 수 있습니다. 

아래는 GRANT 작업에 대한 이력을 조회하는 쿼리 예제이니 참고하세요.

SELECT 
    event_time,
    server_principal_name AS 사용자,
    object_name AS 개체,
    statement AS SQL_명령어
FROM sys.fn_get_audit_file('C:\경로\to\audit\파일명_*.sqlaudit'DEFAULTDEFAULT);
WHERE action_id = 'GRANT DATABASE'
   OR action_id = 'GRANT OBJECT'
   OR action_id = 'GRANT SERVER'
ORDER BY event_time DESC;


이 쿼리는 GRANT 작업에 대한 이력을 감사 추적 파일에서 검색합니다. 

C:\경로\to\audit\파일명_*.sqlaudit 부분을 실제 감사 추적 파일의 경로와 파일명으로 대체해야 합니다.

또한, 감사 추적을 설정하고 관리자 권한이 필요할 수 있으므로 주의가 필요합니다. 필요한 경우 SQL Server Management Studio(SSMS)나 SQL Server의 관리 도구를 사용하여 감사 추적을 설정하고 확인할 수 있습니다.

낭만생선 | 6달 전

  • 1.감사 설정후에 확인이 가능한거겠죠?

  • 2.감사 기능 적용후에 서버에 성능저하 같은건 없을까요??

앵그리파파 | 6달 전

  • 1.

  • 2.성능저하 느낄 수 없을 겁니다. ^^

deerokgo
  0 추천 | 6달 전

mysql에서 남기는 로그 파일 내용을 확인해보세요.

로그파일 위치는 var 아래 log 디렉토리에 있습니다.

명동쓰레빠
  0 추천 | 6달 전

유저별 로그를 확인 하셔야 합니다.

차바라기
  0 추천 | 6달 전

트랜적션 로그가 있다면 로그 확인  가능하고 아니면 감사 기능 사용해보세요

wansoo
  0 추천 | 6달 전

Log에 기록이 남아 있다면 log를 확인하면 되겠지만...

log 기록을 설정해 두지 않았다면...

확인이 어렵지 않을까 싶어 보이고...

SQL Server Profiler를 실행해서 추적을 실행 시켜 둔다면 실행되는 모든 쿼리에 대한 추적이 가능하지만...

추적 실행 전의 쿼리까지는 확인이 어렵겠고...

DB 접근 제어 솔루션을 도입해서 사용하고 있다면, DB 접근 제어 솔루션에 기록된 로그 정보를 확인해 볼 수도 있겠지만...

별도 설정을 해 두지 않았지만 확인이 어려울 수도 있겠지만... 로그 등의 정보를 확인해 볼 필요는 있을 것 같아 보이네요.

topkslee
  0 추천 | 6달 전

MSSQL 감사 설정이 되어있다면,

SQL Server 감사 log에서 확인이 가능합니다.

만약 감사 설정이 되어 있지 않으면 기록이 남지 않아 없을겁니다.

topkslee | 6달 전

Database 하위 메뉴에 보면 database audit specification 

또는 데이터베이스 감사 사양 이라고 있습니다.

여기에 로그가 있으면 설정 되어 있고 그렇지 않으면 설정되어 있지 않은 것 입니다.