J'ai une tâche planifiée (dans le Planificateur de tâches Windows) qui se connecte à SQL Server à l'aide de SMO (authentification Windows) et crée une sauvegarde de base de données. Jusqu'à présent, cette tâche s'exécutait sous le compte administrateur et je voulais la modifier pour utiliser le compte SYSTEM à la place.
J'ai changé la tâche planifiée et, à ma grande surprise, cela a fonctionné prêt à l'emploi.
J'aimerais comprendre pourquoi c'est le cas. Le système est Windows Server 2012 R2 et la base de données est SQL Server 2012 (SP1) Express Edition. Il s'agit d'une installation standard avec un utilisateur SQL Auth ajouté.
Dans SSMS, ce sont les connexions et leurs rôles de serveur associés:
MS_PolicyEventProcessingLogin ## (désactivé)
MS_PolicyTsqlExecutionLogin ## (désactivé)
- MyServer \ Administrator (public, sysadmin)
- MySqlAuthUser (public)
- BUILTIN \ Users (public)
- AUTORITÉ NT \ SYSTÈME (public)
- NT SERVICE \ MSSQLSERVER (public, sysadmin)
- NT SERVICE \ SQLWriter (public, sysadmin)
- SERVICE NT \ Winmgmt (public, administrateur système)
- sa (public, administrateur système)
La base de données elle-même a les utilisateurs suivants et leurs rôles:
- MySqlAuthUser (Connexion MySqlAuthUser) (db_owner)
- dbo (Login sa) (db_owner)
- invité (désactivé)
- INFORMATION_SCHEMA (désactivé)
- sys (désactivé)
L'affichage des "autorisations effectives" de l'utilisateur NT AUTHORITY \ SYSTEM produit la sortie suivante:
- MODIFIER TOUT GROUPE DE DISPONIBILITÉ
- CONNECT SQL
- CRÉER UN GROUPE DE DISPONIBILITÉ
- VOIR TOUTE BASE DE DONNÉES
- VOIR L'ÉTAT DU SERVEUR
Pourquoi NT AUTHORITY \ SYSTEM est-il autorisé à sauvegarder des bases de données? Je suis content que ce soit le cas, mais j'aimerais vraiment comprendre pourquoi ...