SQL programming 
SQL WMI 소개

Microsoft SQL Server (SQL 2005 - SQL 2012)는 WMI (Windows Management Instrumentation)를 이용하여 SQL 서버의 각종 Configuration을 설정하고 서비스를 제어하는 기능 그리고 서버 이벤트를 알리는 기능 등을 수행하고 있다. WMI는 윈도즈 OS에 기본적으로 내장되어 있는 기능으로서 SQL 서버는 자신의 WMI Provider를 등록하여 OS의 Windows Manangement Service를 활용하게 된다. SQL 서버에는 SQL 구성 관리자 (SQL Configuration Manager)에서 사용되는 sqlmgmprovider.dll라는 WMI Provider와 서버 이벤트 알림 기능으로 사용되는 sqlwep.dll 라는 WMI Provider 등이 있다. 그리고, 이렇게 제공되는 WMI Provider를 활용하여 SQL 서비스 및 SQL Configuration 등을 프로그래밍을 통해 제어할 수 있다.





SQL WMI 프로그래밍

SQL WMI 프로그래밍은 여러 언어들을 통해 이루어질 수 있다. C++ 에서 COM을 이용해 프로그래밍하는 것을 기본으로, VBScript 혹은 Powershell과 같은 스크립팅 언어에서도 많이 사용되고 있다. 또한 .NET에서는 WMI 기능을 구현한 System.Management.dll을 참조하여 C#/VB.NET에서 WMI를 사용하게 된다. 직접 SQL WMI를 엑세스하는 방법이외에, SMO 에서 WMI 기능을 엑세스할 수도 있다. 이 SMO WMI는 C#이나 SQLPS (SQL용 Powershell Extension)을 사용할 때 쉽게 이용할 수 있다.




SQL WMI 네임스페이스

WMI 프로그래밍에서 가장 기본이 되는 것은 해당 WMI를 연결하는 부분이다. WMI 연결을 위해서는 먼저 사용하고자 하는 WMI 클래스들이 어떤 WMI 네임스페이스에 있는지 지정해야 한다. SQL WMI는 SQL Server 2005부터 지원되기 시작했다.

SQL Server 네임스페이스
SQL Server 2005 root\Microsoft\SqlServer\ComputerManagement
SQL Server 2008, 2008/R2 root\Microsoft\SqlServer\ComputerManagement10
SQL Server 2012 root\Microsoft\SqlServer\ComputerManagement11

WMI 네임스페이스를 지정할 때, 해당 서버를 함께 표시할 경우, \\서버명\root\... 와 같은 형식으로 서버명을 root 앞에 붙일 수 있다.

본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.