SQL Server Yeniden Kurulum Sonrası CLR Ayarlarının Yapılandırılması
Web Üyelik Hizmetiniz bulunmuyor ve SQL Server sisteminizi yeniden kurduysanız, SQL Server sürümünüzü değiştirmediğiniz sürece aşağıdaki sorgular ile gerekli CLR ayarlarını yeniden yapılandırabilirsiniz.
Bu işlem özellikle SQL Server yeniden kurulduktan sonra, daha önce çalışan bazı uygulama veya veri işlemlerinde CLR (Common Language Runtime) kaynaklı hatalarla karşılaşıldığında kullanılabilir.
Önemli: İşleme başlamadan önce SQL Server sürümünüzün önceki kurulumla aynı olduğundan emin olun.
1. CLR özelliğini etkinleştirme
Öncelikle SQL Server üzerinde CLR özelliğini aktif hale getirelim.
SQL Server Management Studio’yu (SSMS) açarak aşağıdaki sorguyu çalıştırabilirsiniz:
USE master;
GO
EXEC sp_configure 'clr enabled', 1;
RECONFIGURE WITH OVERRIDE;
Bu işlem SQL Server üzerindeki CLR desteğini etkinleştirir.
2. SQL Server 2016 ve üzeri için CLR Security ayarı
SQL Server 2016 ve sonraki sürümlerde, özellikle UNSAFE assembly kullanılarak veri oluşturulması veya çalıştırılması sırasında güvenlik kaynaklı hatalarla karşılaşılabilir.
Örneğin aşağıdaki tipte bir hata alınabilir:
Assembly oluşturulurken veya çalıştırılırken UNSAFE permission/security hatası.
Bu durumda aşağıdaki ayarlar kontrol edilebilir:
USE master;
GO
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'clr strict security', 0;
RECONFIGURE;
Burada:
show advanced options→ Gelişmiş SQL Server ayarlarının görüntülenmesini sağlar.clr strict security→ CLR assembly güvenlik kontrolünün yapılandırılmasını sağlar.0değeri, CLR strict security kontrolünü devre dışı bırakır.
3. Tüm işlemleri tek seferde yapmak
Yukarıdaki işlemleri ayrı ayrı çalıştırmak yerine, gerekli ayarları tek bir SQL sorgusunda da uygulayabilirsiniz:
-- Gelişmiş seçenekleri aç (clr strict security'yi görebilmek için gerekli) EXEC sp_configure 'show advanced options', 1; RECONFIGURE; GO -- CLR'yi etkinleştir EXEC sp_configure 'clr enabled', 1; RECONFIGURE; GO -- SQL 2017'nin katı güvenlik kısıtlamasını kapat EXEC sp_configure 'clr strict security', 0; RECONFIGURE; GO -- Gelişmiş seçenekleri tekrar kapat (temizlik, opsiyonel) EXEC sp_configure 'show advanced options', 0; RECONFIGURE; GO
Servisi yeniden başlatmak için:
Restart-Service -Name MSSQLSERVER
Sorgu tamamlandıktan sonra SQL Server üzerindeki ilgili CLR ayarları yapılandırılmış olacaktır.
Dikkat edilmesi gerekenler
Bu işlemi uygulamadan önce aşağıdaki noktaları kontrol etmenizi öneririz:
- SQL Server sürümünüzün önceki sistem ile aynı olduğundan emin olun.
- İşlemleri SQL Server Management Studio (SSMS) üzerinden, yeterli yetkiye sahip bir kullanıcı ile gerçekleştirin.
clr strict securityayarının güvenlik açısından bir etkisi olduğunu unutmayın. Bu nedenle bu ayar yalnızca gerçekten ihtiyaç duyulan sistemlerde uygulanmalıdır.- İşlem sonrasında uygulamanızın veya ilgili veri işleminin tekrar kontrol edilmesi önerilir.
Kısaca
SQL Server yeniden kurulmuş ancak versiyon değişikliği yapılmamışsa, CLR ayarlarının yeniden yapılandırılması için temel olarak aşağıdaki sorgular kullanılabilir:
EXEC sp_configure 'clr enabled', 1;
RECONFIGURE WITH OVERRIDE;
SQL Server 2016 ve üzeri sürümlerde gerekli olması durumunda:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'clr strict security', 0;
RECONFIGURE;
Bu şekilde SQL Server yeniden kurulumu sonrasında gerekli CLR yapılandırmaları tekrar uygulanabilir.
SQL Server’ı yeniden başlatmak gerekir mi?
Yukarıdaki sp_configure ve RECONFIGURE komutları çalıştırıldığında, yapılan ayarlar SQL Server çalışma ortamına uygulanır. Bu nedenle normal şartlarda SQL Server servisini yeniden başlatmak zorunlu değildir.
Ancak yapılan ayarlara rağmen CLR veya assembly ile ilgili hata devam ediyorsa, özellikle SQL Server yeniden kurulumu sonrasında, SQL Server hizmetinin yeniden başlatılması önerilebilir.
SQL Server hizmetini yeniden başlattıktan sonra ilgili uygulama veya işlemi tekrar kontrol edin.
Not: SQL Server hizmetini yeniden başlatmadan önce, sistem üzerinde çalışan uygulamaların ve kullanıcıların etkilenebileceğini göz önünde bulundurun.
SQL 2017 Clr strict security hatası – Özgür GÜLER – White Eagles – BLOG

