Sorun
- "Microsoft SQL Server veritabanlarından veritabanı dosyaları yüklenirken bir hata oluştu. ESET Windows server ürününde '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"
- Veritabanı verilerinin özel konumu alınırken bir hata görünüyor
- Veritabanı verilerinin özel konumunu almak için ESET hizmetini etkinleştirin
- Tek bir sunucu üzerinde birden fazla Microsoft SQL Server örneği
Çö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."
Yeni pencerede daha büyük görüntülemek için resme tıklayın
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:
- NT AUTHORITY\SYSTEM hesabına 'Herhangi bir tanımı görüntüle' izinlerini verin (önerilir)
- NT AUTHORITY\SYSTEM hesabına 'sysadmin' sunucu rolünü verin
- 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)
-
Microsoft SQL Server Management Studio'ya gidin ve seçilen Microsoft SQL Server örneğine bağlanın.
-
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
-
Microsoft SQL Server Management Studio'ya gidin ve seçilen Microsoft SQL Server örneğine bağlanın.
-
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
-
Microsoft SQL Server Management Studio'ya gidin ve seçilen Microsoft SQL Server örneğine bağlanın.
-
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
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:
-
Microsoft SQL Server Management Studio'ya gidin ve seçilen sunucuya bağlanın.
- 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 ö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 NamesListeyi 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 (*" }