SQLSERVERAGENT sanal hesaba dosya sistemi erişimi sağlama


23

Bu sorudakiNT Service\SQLSERVERAGENT işaretli cevaba göre , Windows hesap dosya sistemine erişim izni vermeye çalışıyorum . Sanal bir hizmet hesabı olduğuna inanıyorum ve kontrol panelinde -> kullanıcı hesapları alanında görünmüyor .

Bu hizmet hesabına dosya sistemine nasıl erişebilirim? Özellikle, Windows 7'de.

Birkaç yaklaşım okudum ve hiçbiri benim için bir seçenek gibi görünmüyor. PowerShell yaklaşımını denedim, ancak AD komutları geçerli komutlar değildi. Hatta bu komutlar için gerekli Windows yamasını indirip yükledim. Ayrıca bunu SQL Server Configuration Manager veya Management Studio üzerinden yapmam gerektiğini de okudum. Yine de bu izinleri nerede ayarlayabileceğimi bilemiyorum.

SQL Server Agent işlemi, aşağıdaki hata iletisiyle başlayamıyor:

Login failed for user 'NT SERVICE\SQLSERVERAGENT'.  
Reason: Failed to open the explicitly specified database 'msdb'.  
[CLIENT: <local machine>]

Google sayfamı temel alarak, bu hesabın izinleriyle ilgili olmalı.

Veritabanının bozuk olup olmadığından emin değilim, ancak veritabanının Normal durumda olduğunu söylüyor . SQL Server Agent giriş ve sysadminve publicgruplarının bir parçasıdır .

Yanıtlar:


18

Sorunuzu özel olarak cevaplamak için , burada yerleşik SQL Server Agent hesabına disk erişim haklarını vermektesiniz. Ama asıl mesele olduğuna inandığım şeye cevap verirken:

1.> Sürücünüzü sağ tıklayın, özellikleri seçin, Ekle düğmesini tıklayın ve SQLSERVERAGENT hesabını girin (etki alanınızın Bu konumdan metin kutusuna değil, bilgisayarınızın adını seçtiğinizden emin olun):

görüntü tanımını buraya girin

2.> Hesabın geçerli olduğunu doğrulamak için İsimleri Kontrol Et düğmesine tıklayın:

görüntü tanımını buraya girin

3.> Şimdi, ihtiyacınız olan dosya iznini SQLSERVERAGENT hesabına ekleyin. Sorun giderme amacıyla, Tam kontrol vermek ve daha sonra gerektiğinde tekrar ölçeklendirmek isteyebilirsiniz:

görüntü tanımını buraya girin

Olduğu söyleniyor , muhtemelen sadece SQL Agent kullanıcısını yeniden eklemek için SQL Server Konfigürasyon Yöneticisi kullanmanız gerekiyor - msdb ve girişler hakkında gördüğüm yorumlara göre. Configuration Manager, SQL Server'da Windows Services uygulamasını kullanmaktan daha fazla değişiklik yapar - bu yüzden HERHANGİ BİR SQL Hizmetini değiştirmek için Configuration Manager her zaman kullanılmalıdır.

Bu, birinin Windows Hizmetlerinde hesabı hizmetin başlangıçta başarısız olmasına neden olarak değiştirmiş olması durumunda sorunu çözecektir. Configuration Manager içinde sıfırlamanız gerekir. Bunu yapmak, Configuration Manager uygulamasının SQL Server'a Yerel Hizmet hesabı (NT SERVICE \ SQLSERVERAGENT) için MSDB veritabanını yönetmek için gerekli olan izinleri eklemesine izin verirken, Windows hizmetleri uygulaması içindeki hesapları değiştirmez.

Uyarı: 2000'in üzerindeki SQL Server Express sürümleri bir SQL Agent içermez. Bunun bazı yönleri orada görünebilir, ancak ürünün Hızlı sürümünde kullanılamaz.

Başlamak için, SQL Server Yapılandırma Yöneticisi'ni açın ve SQL Server Hizmetlerinde SQL Server Agent hizmetini çift tıklatın. Yerleşik hesap radyo düğmesini seçin ve Yerel Hizmet'i seçin ve Uygula düğmesini tıklayın. Önemli : Bu hesabın seçildiğini zaten görüyorsanız, başka bir hesap seçip Uygula düğmesini tıklayın. Ardından, Yerel Hizmet olarak tekrar değiştirin ve Configuration Manager'ın SQL Agent hizmetinin başlaması için doğru MSDB izinlerini eklemesine izin vermek için Uygula düğmesini tıklayın. Şimdi, bu yeni ayarı yansıtmak için SQL Server Agent'ı yeniden başlatın.

görüntü tanımını buraya girin


1
SQL Server Agent hesabım ayarlandı NT Service\SQLAgent$MyInstanceNameve bir klasörde güvenliği ayarlamaya çalışıyordu ve Adları Kontrol Et'e basarak Adı Bulunamadı dedi ve bulamadı. Çok fazla sıkıntıdan sonra, izinler eklemek için Ekle'ye basarken varsayılan 'Bu Konumdan' seçeneğinin yerel makineme ayarlanmadığını, etki alanıma ayarlandığını fark ettim. Yerel makineme (ağacın en kök düğümü) değiştirmek, NT Service\SQLAgent$MyInstanceNamehesabımı klasör izinlerine eklemek için algılamasına izin verdi.
NibblyPig

"MyInstanceName" hatalarını günlüğe kaydedilen Olay Günlüğü'nden aldım.
Jasen

2

SQL Server Agent Login hesabını LocalSystem olarak ayarlayarak bu sorunu çözdüm.


2
Bu, işleri düzeltebilecek bir geçici çözüm olsa da, genellikle bu cevapta
RDFozz

2

Sinir bozucu katılıyorum .. görünüşe göre sadece adını yazmak kadar basit. http://zarez.net/?p=3187

Özet: NT SERVICE \ MSSQLSERVER yazıp ardından onay adını tıklatmayın, sadece Tamam'ı tıklayın ve SQL aracı hesabı için klasör izinlerini belirleyebilirsiniz.


1
DBA SE'ye Hoşgeldiniz! Oy vermedim. Cevabınız "yalnızca bağlantı" kategorisine giriyor. Uzak taraf aşağı indiğinde bu cevaplar anlaşılmaz hale gelir. Yazınızın hakemleri size söylemeliydi, onların hatasıydı. Öyleyse: 1) cevabınız aslında bir cevabı (en üstteki soruya) olmalıdır. 2) eğer bir şeye atıfta bulunuyorsanız, bir web sayfasına atıfta bulunursanız, en önemlisini yazıya kopyalayıp yapıştırın. | Sana bir oy verdim, ama diğer gözden geçirenler için ikna edici olmasını öneriyorum.
peterh, Monica

Mükemmel tavsiye @ peter, çok yardımcı olduğun için teşekkürler. V Jason, yorumun özetini cevabına ekledim - bu yeterli olabilir, ancak başka bir şey eklemek isteyip istemediğini görmek isteyebilirsin. Tüm iyileştirmeler takdir edilmektedir!
Jack Douglas
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.