시스템 관리자 권한이 없는 특정 프로그램에서 Trace Flag 사용하기
- Version : SQL Server 2005, 2008, 2008R2, 2012, 2014, 2016
관리자 권한이 없는 계정을 사용하는 특정 어플리케이션이 실행될 때 예약된 추적 플래그를 실행하는 방법에 대해서 알아본다.
유사한 케이스로 프로파일러 사용법도 있다.
- 비관리자 계정으로 프로파일러 사용하기 : http://sqlmvp.kr/220322107960
시나리오는 다음과 같다. 특정 시스템에 추적 플래그를 설정 해야 한다. 하지만 서버에 추적 플래그를 설정하게 되면 다른 어플리케이션에 영향이 있다. 따라서 해당 어플리케이션이 실행될 때 추적플래그를 실행하고 싶다. 그런데 해당 어플리케이션을 사용하는 계정은 관리자 권한이 없다.
아래 예제 스크립트와 같이 프시저와 트리거를 생성하여 특정 어플리케이션이 실행될 때 트리거가 작동되어 추적 플래그를 실행할 수 있다. 아래 예제는 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; |
[참고자료]
강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp