23 Şubat 2011 Çarşamba

The EXECUTE permission was denied on the object 'xp_sqlagent_enum_jobs', database 'mssqlsystemresource', schema 'sys'. (Microsoft SQL Server, Error: 2

HATA:
The EXECUTE permission was denied on the object 'xp_sqlagent_enum_jobs', database 'mssqlsystemresource', schema 'sys'. (Microsoft SQL Server, Error: 229)

AÇIKLAMA:
Bir SQL Server 2005 üretim sunucumuz vardı. Bunu, donanım açısından daha güçlü olan başka bir SQL Server 2005 sunucusuna taşıyorduk. Bu senaryoda, Job'ları, SSIS paketlerini (ki "msdb" veritabanının içerisindelerdi) daha kolay taşımak adına eski sunucudaki "msdb" veritabanını doğrudan taşıyarak aldık.

Her şey çok güzel gitti ve taşıma işlemimizi gerçekleştirdik. Birkaç gün sonra bir kullanıcı sunucudaki tüm Job'ları görmesi gerektiğini belirtti ve yetki talep etti. Yetki verildikten sonra kullanıcı bu gönderinin konusu olan hata mesajını aldığını belirtti.

Sorun üstünde araştırma yaparken Microsoft'un 2000274 numaralı KB'si ile karşılaştım: http://support.microsoft.com/kb/2000274

Yaşadığımız sorun tam anlamıyla bu KB'de anlatıldığı gibiydi. Fakat KB'deki yönlendirmeyi uygulamadan önce Microsoft'tan da destek almak istedik ve bir Advisory Case açtık. Microsoft destek personeli de bize bu KB'deki önerileri uygulayabileceğimizi, yurtdışında denenmiş senaryolar gördüğünü belirtti ve KB'deki önerileri tatbik ettik.

"msdb" veritabanındaki sertifikayı yeni sunucudaki "master" veritabanında Restore ettiğimizde şu uyarıyı aldık: "Warning: The certificate you created is expired."

Buna rağmen yaptığımız testlerden sonra bu hata mesajından kurtulduğumuzu gördük.