SQL Server/SQL Server Tip

시스템 관리자 권한이 없는 특정 프로그램에서 Trace Flag 사용하기

SungWookKang 2016. 2. 1. 11:09
반응형

시스템 관리자 권한이 없는 특정 프로그램에서 Trace Flag 사용하기

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016

 

관리자 권한이 없는 계정을 사용하는 특정 어플리케이션이 실행될 때 예약된 추적 플래그를 실행하는 방법에 대해서 알아본다.

 

유사한 케이스로 프로파일러 사용법도 있다.

 

시나리오는 다음과 같다. 특정 시스템에 추적 플래그를 설정 해야 한다. 하지만 서버에 추적 플래그를 설정하게 되면 다른 어플리케이션에 영향이 있다. 따라서 해당 어플리케이션이 실행될 때 추적플래그를 실행하고 싶다. 그런데 해당 어플리케이션을 사용하는 계정은 관리자 권한이 없다.

 

아래 예제 스크립트와 같이 프시저와 트리거를 생성하여 특정 어플리케이션이 실행될 때 트리거가 작동되어 추적 플래그를 실행할 수 있다. 아래 예제는 TF 9481을 적용하는 예제이다.

alter database master set trustworthy on

go

 

use master

 

go

create procedure proc_enable_tf

with execute as owner

as

Exec('dbcc traceon(9481)')

 

go

grant execute on proc_enable_tf to public

go

 

create TRIGGER trigger_enable_tf

ON ALL SERVER

FOR LOGON

AS

BEGIN

IF app_name()= 'Microsoft SQL Server Management Studio – Query' replace this with your application name

begin

exec master.dbo.proc_enable_tf

end

END;

 

 

[참고자료]

https://blogs.msdn.microsoft.com/psssql/2015/12/30/wanting-your-non-sysadmin-users-to-enable-certain-trace-flags-without-changing-your-app/

 

 

2016-02-01 / 강성욱 / http://sqlmvp.kr

 

추적플래그, DBCC TRACE, TF 9481, SQL Server, MS SQL, 트리거, Trigger, with execute as owner, FOR LOGON

반응형