Gestion des utilisateurs orphelins dans SQL Server : Un guide complet

La gestion des utilisateurs orphelins dans SQL Server est essentielle pour la sécurité et l’administration des bases de données. Les utilisateurs orphelins se produisent lorsqu’un utilisateur de base de données existe sans un login correspondant dans la base de données principale. Ce déséquilibre peut perturber l’accès et entraîner des vulnérabilités potentielles en matière de sécurité. Dans cet article, nous explorerons ce que sont les utilisateurs orphelins, comment les détecter et les méthodes pour les résoudre, y compris des exemples et des scénarios mis à jour.

Contexte

Pour se connecter à une base de données SQL Server, un utilisateur doit avoir un login valide dans la base de données principale. Ce login authentifie l’utilisateur et est associé à un utilisateur de base de données pour l’autorisation. L’association est maintenue à l’aide de l’identifiant de sécurité (SID), garantissant que les utilisateurs de base de données et les logins serveur sont correctement liés.

Les exceptions à la règle de l’association login-utilisateur comprennent:

  1. Utilisateurs de base de données contenus: S’authentifient au niveau de la base de données, éliminant la dépendance aux logins serveur. Ces utilisateurs améliorent la portabilité de la base de données mais nécessitent une recréation séparée pour chaque base de données.
  2. Comptes invités: Activés par défaut, ils permettent l’accès aux utilisateurs sans association explicite mais sont généralement déconseillés pour des raisons de sécurité.
  3. Membres de groupes Microsoft Windows: Les membres de groupes Windows peuvent accéder aux bases de données si le groupe est ajouté en tant qu’utilisateurs.

Un utilisateur de base de données devient orphelin lorsque:

  • Le login correspondant est supprimé.
  • La base de données est migrée ou restaurée sans les logins associés.
  • La correspondance SID entre l’utilisateur et la connexion est incorrecte.

Qu’est-ce que les utilisateurs orphelins ?

Un utilisateur orphelin se produit lorsque :

  • L’utilisateur de la base de données existe, mais la connexion SQL Server correspondante dans la base de données master n’existe pas.
  • Le SID de l’utilisateur de la base de données et le SID de la connexion ne correspondent pas.

Ces scénarios perturbent l’authentification et l’autorisation, entraînant des erreurs ou un accès restreint.

Détection des utilisateurs orphelins

Pour SQL Server

Utilisez la requête suivante pour identifier les utilisateurs orphelins :

MS SQL

 

Pour Azure SQL Database ou Synapse Analytics

1. Récupérez les SIDs des connexions dans la base de données master :

MS SQL

 

2. Récupérez les SIDs des utilisateurs dans la base de données cible :

MS SQL

 

3. Comparez les listes pour identifier les incohérences.

Résolution des utilisateurs orphelins

1. Recréer la connexion manquante avec le SID

Si la connexion a été supprimée :

MS SQL

 

2. Mapper un utilisateur orphelin à une connexion existante

Si la connexion existe mais n’est pas mappée :

MS SQL

 

3. Changer le mot de passe de l’utilisateur

Après avoir recréé la connexion, mettez à jour son mot de passe :

MS SQL

 

Utilisation de sp_FindOrphanedUser

La procédure stockée sp_FindOrphanedUser est un outil puissant pour détecter et résoudre les utilisateurs orphelins. Elle fournit :

  1. Une liste d’utilisateurs orphelins.
  2. Des scripts générés automatiquement pour les réparations.
  3. Détails sur les schémas appartenant à des utilisateurs orphelins.

Obtenez le code du package à partir de sp_FindOrphanedUser.

Exécution de la procédure

Exécution par défaut :

MS SQL

 

Pour une base de données spécifique :

MS SQL

 

Exemples de scénarios d’utilisateurs orphelins

Exemple 1 : Utilisateur sans connexion

Scénario

Une connexion est supprimée, laissant l’utilisateur de la base de données orphelin.

  • Détecter l’utilisateur orphelin:
    MS SQL

  • Reconstruire la connexion:
    MS SQL

Exemple 2 : Incohérence de SID

Scénario

Le SID de connexion ne correspond pas au SID de l’utilisateur.

  • Détecter la discordance:
    MS SQL

  • Corrigez la correspondance SID :
    MS SQL

Exemple 3 : Utilisateur orphelin possédant un schéma

Scénario

L’utilisateur orphelin empêche la suppression du schéma.

  • Identifier la propriété du schéma :
    MS SQL

  • Réaffecter la propriété du schéma :
    MS SQL

Meilleures Pratiques

  • Utiliser des Utilisateurs de Base de Données Contenus: Évitez la dépendance aux connexions de serveur.
  • Synchroniser les Connexions: Toujours migrer ou restaurer les connexions lors des migrations de base de données.
  • Audits Réguliers: Vérifiez périodiquement les utilisateurs orphelins pour maintenir la sécurité.

Conclusion

Gérer les utilisateurs orphelins garantit la sécurité de la base de données et l’efficacité opérationnelle. En utilisant des requêtes et des outils comme sp_FindOrphanedUser, vous pouvez rapidement identifier et résoudre les problèmes, maintenant un accès fluide pour les utilisateurs légitimes. L’adoption de meilleures pratiques telles que les utilisateurs contenus et les audits réguliers peut prévenir de tels problèmes à l’avenir.

Source:
https://dzone.com/articles/managing-orphaned-users-in-sql-server