Ich habe eine geplante Aufgabe (in Windows Task Scheduler), die über SMO (Windows-Authentifizierung) eine Verbindung zu SQL Server herstellt und eine Datenbanksicherung erstellt. Bisher wurde diese Aufgabe unter dem Administratorkonto ausgeführt, und ich wollte sie ändern, um stattdessen das SYSTEM-Konto zu verwenden.
Ich habe die geplante Aufgabe geändert und zu meiner großen Überraschung hat sie sofort funktioniert.
Ich würde gerne verstehen, warum dies der Fall ist. Das System ist Windows Server 2012 R2 und die Datenbank ist SQL Server 2012 (SP1) Express Edition. Es handelt sich um eine Standardinstallation, bei der ein SQL Auth-Benutzer hinzugefügt wurde.
In SSMS sind dies die Anmeldungen und die zugehörigen Serverrollen:
MS_PolicyEventProcessingLogin ## (deaktiviert)
MS_PolicyTsqlExecutionLogin ## (deaktiviert)
- MyServer \ Administrator (public, sysadmin)
- MySqlAuthUser (öffentlich)
- BUILTIN \ Benutzer (öffentlich)
- NT AUTHORITY \ SYSTEM (öffentlich)
- NT SERVICE \ MSSQLSERVER (public, sysadmin)
- NT SERVICE \ SQLWriter (public, sysadmin)
- NT SERVICE \ Winmgmt (public, sysadmin)
- sa (öffentlich, sysadmin)
Die Datenbank selbst hat die folgenden Benutzer und ihre Rollen:
- MySqlAuthUser (Login MySqlAuthUser) (db_owner)
- dbo (Login sa) (db_owner)
- Gast (deaktiviert)
- INFORMATION_SCHEMA (deaktiviert)
- sys (deaktiviert)
Das Anzeigen der "effektiven Berechtigungen" des Benutzers NT AUTHORITY \ SYSTEM ergibt die folgende Ausgabe:
- ÄNDERN SIE JEDE VERFÜGBARKEITSGRUPPE
- CONNECT SQL
- VERFÜGBARKEITSGRUPPE ERSTELLEN
- JEDE DATENBANK ANZEIGEN
- SERVERZUSTAND ANZEIGEN
Warum hat NT AUTHORITY \ SYSTEM die Berechtigung, Datenbanken zu sichern? Ich bin froh, dass es so ist, aber ich würde wirklich gerne verstehen, warum ...