Mam zaplanowane zadanie (w Harmonogramie zadań systemu Windows), które łączy się z programem SQL Server za pomocą SMO (uwierzytelnianie systemu Windows) i tworzy kopię zapasową bazy danych. Do tej pory zadanie to działało na koncie administratora i chciałem je zmienić, aby zamiast tego korzystało z konta SYSTEM.
Zmieniłem zaplanowane zadanie i ku mojemu zdziwieniu zadziałało ono od razu po wyjęciu z pudełka.
Chciałbym zrozumieć, dlaczego tak jest. System to Windows Server 2012 R2, a bazą danych jest SQL Server 2012 (SP1) Express Edition. Jest to standardowa instalacja z dodanym jednym użytkownikiem SQL Auth.
W SSMS są to loginy i powiązane z nimi role serwera:
MS_PolicyEventProcessingLogin ## (wyłączony)
MS_PolicyTsqlExecutionLogin ## (wyłączony)
- MyServer \ Administrator (public, sysadmin)
- MySqlAuthUser (publiczny)
- BUILTIN \ Użytkownicy (publiczny)
- NT AUTHORITY \ SYSTEM (public)
- NT SERVICE \ MSSQLSERVER (public, sysadmin)
- NT SERVICE \ SQLWriter (public, sysadmin)
- NT SERVICE \ Winmgmt (public, sysadmin)
- sa (public, sysadmin)
Sama baza danych ma następujących użytkowników i ich role:
- MySqlAuthUser (Zaloguj się MySqlAuthUser) (właściciel_db)
- dbo (Zaloguj się) (db_owner)
- gość (wyłączony)
- INFORMACJE_SCHEMA (wyłączone)
- sys (wyłączone)
Wyświetlenie „efektywnych uprawnień” użytkownika NT AUTHORITY \ SYSTEM daje następujące wyniki:
- ZMIENIĆ KAŻDĄ GRUPĘ DOSTĘPNOŚCI
- POŁĄCZ SQL
- UTWÓRZ GRUPĘ DOSTĘPNOŚCI
- ZOBACZ KAŻDĄ BAZĘ DANYCH
- ZOBACZ STAN SERWERA
Dlaczego NT AUTHORITY \ SYSTEM ma uprawnienia do tworzenia kopii zapasowych baz danych? Cieszę się, że tak, ale naprawdę chciałbym zrozumieć, dlaczego ...