2016-03-18

SCOM'da Alınan "SQL Agent Job discovery script 'SQLAgentJobDiscovery.vbs' for SQL instance" Hatası ve Çözümü

Alınan Hata:

Alert: MSSQL 2014: Discovery failed

Source: SunucuIntanceNeme.DomainName.com
Path: SunucuIntanceNeme.DomainName.com
Last modified by: System
Last modified time: 3/17/2016 15:58:35 AM Alert description: Management Group: Management Grup 1. Script: SQLAgentJobDiscovery.vbs. Instance: MSSQLSERVER : SQL Agent Job discovery script 'SQLAgentJobDiscovery.vbs' for SQL instance 'MSSQLSERVER'  failed.

Çözüm:
SCOM ile izlenen SQL Server Agent jobları ile ilgili yukarıdaki hata alındığında internetteki birçok kaynak  sysadmin yetkisinin verilmesi gerektiğini yazıyor. sysadmin yetkisi sorunun detayına inmeden en tepeden yetki verme yolu olup gereksiz yere sisteminize güvenlik açığı açmanın yollarından birisidir. SQLAgentJobDiscovery.vbs script'ini incelediğimde sp_help_job stored procedure'unu çalıştırmak istediğini gördüm. Sorunun çözümü için aşağıdaki gibi sp_help_job stored procedure'una execute yetkisi vermek yeterli:

use msdb
go
 
 

grant exec on sp_help_job to ScriptiÇalıştıranKullanıcıKodu



SQLAgentJobDiscovery.vbs ilgili kısmı:

Function DoJobDiscovery(ByVal sServiceName, ByVal sSqlInstance, ByVal sSQLConnectionString, ByVal oDisc, ByVal tcpPort)

Dim e
Set e = New Error

    Dim cnADOConnection
    Set cnADOConnection = SmartConnectWithoutSQLADODB(sSQLConnectionString, tcpPort, TargetComputerID, sSqlInstance, "msdb")
    if cnADOConnection Is Nothing Then
        DoJobDiscovery = SQL_DISCOVERY_CONNECT_FAILURE
        Exit Function
    End If
On Error Goto 0
   
    Dim oResults
e.Clear
On Error Resume Next
Set oResults = cnADOConnection.Execute("sp_help_job")
e.Save
On Error Goto 0

Hiç yorum yok:

.::YASAL UYARI::.

©2004-2016 Mehmet GÜZEL, http://www.mehmetguzel.net/ & http://www.mehmetguzel.com/

Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.