J'utilise SQL Server 2008 et je souhaite configurer une tâche d'agent pour sauvegarder toutes les bases de données. La machine exécutant SQL Server fait partie d'un domaine Windows. La destination des fichiers de sauvegarde se trouve sur une autre machine, qui ne fait pas partie du domaine, et j'ai donc besoin d'informations d'identification différentes pour y accéder.
J'ai créé un nouveau compte de domaine (SqlBackup), je l'ai ajouté en tant que nouveau compte SQL (en lui attribuant le nom de "base de données de sauvegarde") et je l'utilise pour exécuter le travail de l'agent. Je me suis connecté localement en tant que cet utilisateur pour mapper le partage réseau cible sur un lecteur (en lui fournissant les informations d'identification nécessaires).
Le script que j'utilise pour sauvegarder toutes les bases de données appelle simplement "backup database" (dans une boucle de curseur sur toutes les bases de données) et écrit le fichier de sauvegarde sur le lecteur mappé. Le problème est le suivant : Lorsque l'agent SQL exécute le travail en tant qu'utilisateur SqlBackup, le lecteur n'est pas mappé.
Qu'est-ce que j'ai manqué ?
0 votes
Mise à jour : j'ai réussi à le faire fonctionner. Le script SQL appelle xp_cmdshell 'net use \\machine\share password /user:username /persistent:yes' pour donner accès à ce partage avec les informations d'identification données. Je peux alors écrire le fichier de sauvegarde sur ce partage. (Bien sûr, j'ai d'abord dû activer xp_cmdshell, configurer le compte proxy pour cela, accorder l'exécution à mon compte sql et ajouter le compte de domaine au groupe admin pour permettre la connexion à partir du script).