“The target principal name is incorrect. Cannot generate SSPI context” Hatasının Çözümü(Set SPN)
Eğer SQL Server için set ettiğiniz domain kullanıcısının active directory üzerinde aşağıdaki hakları yoksa bu hatayı alırsınız. Hatanızın bununla ilgili olduğundan emin olmak için SQL Server Log dosyanızı açın.
Eğer log dosyanızda aşağıdaki gibi bir hata aldığınızı görüyorsanız doğru makaledesiniz demektir.
The SQL Server Network Interface library could not register the Service Principal Name (SPN) [ MSSQLSvc/ ] for the SQL Server service. Windows return code: 0x2098, state: 15.
SSMS üzerinden ilgili sunucuya connect olmak istediğinizde aşağıdaki gibi bir hata verir.
Bu sorunu çözmenin 3 yolu var.
- Sql Server servis hesabını Local System ya da Network Service olarak değiştirin. Bağlantıyı sağladıktan sonra tekrar eski servis hesabına çevirebilirsiniz.
- SQL Server servis hesabını Domain Admin yapın. Sorununuzu çözer tabi ama çok saçma bir yöntem. 🙂
- Active Directory üzerinde sql server servis kullanıcınıza aşağıdaki hakları verdiğinizde sorun çözülecektir.
“Read servicePrincipalName”
“Write servicePrincipalName”
Bu hatadan bağımsız olarak ayrıca sql server servis hesabı kullanıcısına çalışacağı sunucu üzerinde log on as a service hakkı vermelisiniz.
Eğer sql server’ın always on özelliğini kullanacaksanız sql server servis hesabı kullanıcısına active directory üzerinde sql server sunucuların bulunduğu OU(Organization Unit)’da Create Computed Object hakkı da vermelisiniz.
SQL Server Servis hesabına windows üzerinde verilmesi gereken haklarla ilgili detayları “SQL Server Servis Hesabının Windows Üzerindeki Yetkileri” isimli makalemde bulabilirsiniz.