[KB8406] ESET Windows sunucu ürünlerinde Microsoft SQL Server için otomatik dışlamalar oluşturmak üzere veritabanı veri konumlarını almak için izinler ekleyin

NOT:

Bu sayfa bir bilgisayar tarafından çevrilmiştir. Orijinal metni görüntülemek için bu sayfadaki Diller altında İngilizce'ye tıklayın. Anlaşılmayan bir şey bulursanız, lütfen yerel destek biriminizle iletişime geçin.

Sorun

Çözüm

Veritabanı verilerinin özel konumu alınırken bir hata görünüyor

Microsoft SQL Server için otomatik dışlamalar temel olarak veritabanı dosyalarının varsayılan konumlarından oluşur. Bununla birlikte, veritabanı dosyalarının özel konumlarda depolandığı yollardan da oluşur. Bu durumda, NT AUTHORITY\SYSTEM hesabının bu bilgileri ana veritabanından çıkarmak için uygun haklara sahip olması gerekir.

Microsoft SQL Server 2016 ve sonraki sürümlerinde Microsoft, NT AUTHORITY\SYSTEM hesabı için sysadmin sunucu rolünü kaldırarak ESET Windows sunucu ürünlerinin Microsoft SQL Server örneğinin veritabanı verilerinin konumlarını içeren ana veritabanındaki verilere erişimini kaybetmesine neden oldu.

ESET Windows sunucu ürünleri bu sorun hakkında hata mesajı aracılığıyla bilgi verir. Günlük dosyaları'na tıklayın, açılır menüden Olaylar 'ı seçin ve hata mesajını görüntüleyin:

"Microsoft SQL Server veritabanlarından veritabanı dosyaları yüklenirken bir hata oluştu. 'NT AUTHORITY\SYSTEM' hesabının ana veritabanlarının sistem görünümlerinden veri okumak için yeterli izinlere sahip olup olmadığını kontrol edin."

Şekil 1-1
Yeni pencerede daha büyük görüntülemek için resme tıklayın
Güvenlik nedeniyle herhangi bir değişiklik yapamıyorsanız
  • Herhangi bir değişiklik yapamazsanız, otomatik dışlamalar yalnızca varsayılan konumlardan oluşacaktır.
  • Belirli bir konumda veya konumlarda (varsayılan yolda değil) bulunan bazı veritabanı dosyalarınız varsa, bu yolu veya yolları manuel olarak veya hariç tutulanlara ekleyin.
  • Tüm veritabanı dosyaları yalnızca varsayılan konumlarda bulunuyorsa bu hatayı göz ardı edin.


Veritabanı verilerinin özel konumunu almak içinESET hizmetini etkinleştirin

Hizmetimizin veritabanı verilerinin özel konumunu almasınısağlamak için Microsoft SQL Server Management Studio kullanarak aşağıdaki üç prosedürden birini izleyin:

  1. NT AUTHORITY\SYSTEM hesabına 'Herhangi bir tanımı görüntüle' izinlerini verin (önerilir)
  2. NT AUTHORITY\SYSTEM hesabına 'sysadmin' sunucu rolünü verin
  3. NT AUTHORITY\SYSTEM hesabındaki 'master' veritabanına 'db_owner' veritabanı rolünü atayın
A. NT AUTHORITY\SYSTEM hesabına 'Herhangi bir tanımı görüntüle' izinlerini verin (önerilir)
Önerilen prosedür

Bu prosedür yalnızca okuma hakları verir, bu nedenle sistem üzerinde minimum güvenlik etkisi vardır.

  1. Microsoft SQL Server Management Studio'ya gidin ve seçilen Microsoft SQL Server örneğine bağlanın.

  2. Güvenlik öğesine tıklayın. Grant sütununda View any definition (Herhangi bir tanımı görüntüle) seçeneğinin yanındaki onay kutusunu işaretleyin. Tamam'a tıklayın.

    Şekil 2-1
B. NT AUTHORITY\SYSTEM hesabına 'sysadmin' sunucu rolünü verin
  1. Microsoft SQL Server Management Studio'ya gidin ve seçilen Microsoft SQL Server örneğine bağlanın.

  2. Sunucu Rolleri'ne tıklayın, sysadmin 'in yanındaki onay kutusunu seçin ve Tamam'a tıklayın.

    Şekil 2-2
C. NT AUTHORITY\SYSTEM hesabındaki 'master' veritabanına 'db_owner' veritabanı rolünü atayın
  1. Microsoft SQL Server Management Studio'ya gidin ve seçilen Microsoft SQL Server örneğine bağlanın.

  2. Kullanıcı Eşleme'ye tıklayın. Bu oturum açma ile eşlenen kullanıcılar bölümünde, master'ın yanındaki onay kutusunu seçin. Veritabanı rol üyeliği bölümünde, db_owner'ın yanındaki onay kutusunu seçin. Tamam'a tıklayın.

    Şekil 2-3
Her Microsoft SQL Server örneği için gerçekleştirilecek prosedürler

Seçilen prosedür, sunucuda yüklü olan her Microsoft SQL Server örneği için gerçekleştirilmelidir.

Sunucunuzda yüklüMicrosoft SQL Server örneklerinin listesini alın.

Tek bir sunucuda birden fazla Microsoft SQL Server örneği kullanıyorsanız, belirli bir Microsoft SQL Server örneğine bağlanın.


Tek bir sunucuda birden fazla MS SQL Server örneği

Microsoft SQL Server Management Studio'yu başlattığınızda görüntülenen bağlantı iletişim kutusunu kullanarak belirli bir Microsoft SQL Server örneğine bağlanabilirsiniz:

  1. Microsoft SQL Server Management Studio'ya gidin ve seçilen sunucuya bağlanın.

  2. Sunucu adı alanına örneği aşağıdaki biçimde yazın ve Bağlan'a tıklayın.

    <server_name>\<instance_name>

    Şekil 3-1
Microsoft SQL Server Express

Bazı karmaşık ortamlar veya hizmet kurulumları, Microsoft SQL Server Express adı verilen ücretsiz bir Microsoft SQL Server sürümü sunar.

Bu SQL sunucu sürümü ücretsiz olarak kullanılabilir. Boyut ve performans açısından sınırlıdır ve küçük işletmeler için daha uygundur.

Örneğin, ESET PROTECT On-Prem yüklemesi sırasında kendi Microsoft SQL sunucunuzu sağlamazsanız Microsoft SQL Server Express varsayılan olarak yüklenir.

Microsoft SQL Server Express ile her örnekte izinleri ayarlama

Hala hata mesajı alıyorsanız, yüklü bir Microsoft SQL Server Express örneğiniz olmadığını doğrulayın. Bir Microsoft SQL Server Express örneği varsa, ilk bölümde açıklanan izinleri güncelleyin.

Microsoft SQL Server örneklerinin listesini alın

Sunucuda yüklü Microsoft SQL Server örneklerinin listesini almanın birkaç yolu vardır:

  • Yeni bir Microsoft SQL Server örneği yüklerken, yeni örneğin adını yazdığınız adımda, Yükleme Sihirbazı o anda yüklü olan örneklerin bir listesini görüntüler.

  • Yüklü örneklerin listesi aşağıdaki Windows kayıt defteri yolunda bulunur:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names

    Listeyi almak için aşağıdaki PowerShell komutunu kullanın:

    Get-Item "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" | % {$_.Property}
  • Her Microsoft SQL Server örneği, ilgili hizmeti sisteme yükler. Bu hizmetin adı aşağıdaki biçime sahiptir:

    SQL Server (<örnek_adı>)

    Aşağıdaki PowerShell komutunu kullanarak yüklü Microsoft Server SQL örneklerinin bir listesini almak için sistemdeki bu hizmetleri filtreleyebilirsiniz:

    Get-Service | ?{ $_.DisplayName -like "SQL Server (*" }