français

Procédure : resynchroniser les identifiants de connexion ou les utilisateurs SQL Server après avoir restauré une base de données à partir d’une sauvegarde

Résumé

Les instructions fournies permettent de resynchroniser les identifiants de connexion ou les utilisateurs SQL Server après avoir restauré une base de données à partir d’une sauvegarde. Ce processus s’impose dès lors qu’une base de données de structure SDE est restaurée depuis une sauvegarde (.bak) ou qu’elle est rattachée à partir d’une base de données préalablement détachée (.mdf). Dans de tels cas, l’utilisateur SDE au sein de la géodatabase n’est pas synchronisé avec l’identifiant de connexion de cette instance de SQL Server.

Si l’identifiant SDE n’est pas ajouté et synchronisé avec l’utilisateur au sein de cette base de données, la connexion échoue et affiche le message d’erreur Bad Login User (Identifiant incorrect) ou encore le service ne démarre pas.

Procédure

La procédure stockée (SP_CHANGE_USERS_LOGIN) peut être exécutée pour corriger ce problème en appariant un utilisateur de base de données existant à son identifiant SQL Server. Elle doit être exécutée pour toutes les bases de données auxquelles l’utilisateur « SDE » doit accéder pour gérer la base de données. Il en va de même pour tout utilisateur de base de données authentifié par SQL Server possédant ses propres données. Lors du démarrage du service, l’utilisateur « SDE » est le seul utilisateur requis.

  1. Assurez-vous que l’identifiant de connexion SQL Server associé à l’utilisateur de base de données a été ajouté à l’instance sous Security (Sécurité) > Logins (Identifiants de connexion) avant d’exécuter la procédure stockée sp_change_users_login.
  2. Ouvrez une nouvelle requête dans SQL Server Management Studio et exécutez la commande suivante :

    Code :

    use database_name
    go
    EXEC sp_change_users_login 'Update_One', 'sde', 'sde'
    go


    Une fois la commande terminée, le message suivant apparaît :

    « La commande ou les commandes ont été réalisées avec succès. »
    MSDN : sp_change_users_login (Transact-SQL)
  3. Vérifier la réparation :
    Toute tentative d’établir une connexion à la base de données ou au sein d’ArcCatalog à l’aide de l’identifiant SDE ou USER déclenche une procédure visant à contrôler que l’identifiant de connexion et l’utilisateur sont bien synchronisés.

    Les requêtes suivantes peuvent également être exécutées pour interroger la table syslogins dans la base de données principale et comparer ces éléments à la table sysusers figurant dans la base de données de l’utilisateur. Pour s’assurer que les colonnes SID correspondent, vous pouvez utiliser la requête suivante :

    Code :

    use master
    go
    select * from syslogins where name='sde'
    go

    use database_name
    go
    select * from sysusers where name='sde'
    go