1

J'ai deux SQL Server que j'utilise principalement (une instance 2005 et une 2000.) Ma structure d'autorisation fonctionne comme telle--Comment puis-je demander quel compte Active Directory est associé à un utilisateur SQL Server?

D'abord, je crée un groupe Active Directory, puis j'y ajoute tous les utilisateurs nécessaires. Ensuite, je vais à SQL-MS et j'ajoute un utilisateur en sélectionnant l'option d'authentification Windows, puis en sélectionnant le groupe AD que je viens de créer. Impertinent à ce poste mais j'associe ensuite le nouveau compte de connexion avec tous les tableaux de données, vues et SP nécessaires.

Après avoir sélectionné le groupe, j'ai toujours laissé le champ Nom de connexion comme nom du groupe AD pour référence.

Récemment, un groupe AD a été renommé. La base de données a continué à fonctionner et, d'une certaine manière, SQL Server sait quel groupe AD associer la connexion SQL. Mon problème est que le nom de connexion n'a pas été mis à jour dans SQL Server, donc je n'ai aucune idée de quel groupe AD est associé au compte de connexion SQL Server!

Existe-t-il une requête que je peux exécuter ou y a-t-il un paramètre enfoui qui pourrait m'aider à découvrir quel groupe AD est associé à ce compte?

- EDIT -

les intervenants de Merci pour vos réponses. Vous avez répondu à cette question, cependant, il est propulsé une autre question posted here.

+0

Jusqu'à présent, deux bonnes réponses qui fonctionnent pour 2005. J'ai mis à jour ma question pour refléter le fait que j'ai besoin d'une solution pour SQL 2005 et SQL 2000. Le premier à fournir une solution dans les deux cas. – RLH

+0

comme je l'ai dit - l'ensemble du sous-système de sécurité en 2000 était totalement différent, donc je doute fortement qu'il y ait une solution qui fonctionne pour les versions 2000 et 2005/2008/2008 R2 ... –

Répondre

1

Vous pouvez vérifier que les groupes Windows que vous avez définis sur votre système en tant que connexion;

SELECT * 
FROM sys.server_principals 
WHERE type_desc = 'WINDOWS_GROUP' 

Cela fonctionne sur SQL Server 2005 et plus récent que.

Mais vous ne serez pas le nom du groupe AD réel - seul le « SID » pour ce groupe ....

L'ensemble du système de sécurité était très différent sur SQL Server 2000 - Je ne pense pas il y a un 1: 1 requête équivalent pour ce vieux dinosaure :-) Le mieux que je peux penser serait:

SELECT * 
FROM master.dbo.sysxlogins 
WHERE password IS NULL 
    AND name IS NOT null 

Mais malheureusement, il n'y a aucun moyen que je serais au courant de séparer entre Windows utilisateurs et Windows sécurité groupes ici ....

+0

S'il vous plaît voir ma question dans la réponse de Nicole. – RLH

+0

"Temps de mise à niveau". Oui je suis d'accord.Cependant, les «dieux» d'entreprise sont toujours lents à migrer, c'est pourquoi nous sommes toujours bloqués avec Windows XP et, je crois, continuerons à l'être pendant encore 3 ans (de façon réaliste!) – RLH

+0

Bingo! Merci Marc! – RLH

2

Le mappage entre le groupe AD et la connexion SQL Server est en cours using the group's SID. Vous pouvez voir la liste des connexions avec leurs SID en utilisant sys.server_principals. Si vous souhaitez modifier le nom de la connexion existante, vous pouvez utiliser ALTER LOGIN.

+0

EDIT - Est là un équivalent à la table sys.server_principals pour SQL 2000? J'ai juste essayé de l'interroger et on m'a dit qu'il n'existait pas ... la même requête, cependant, a fonctionné dans mon serveur SQL 2005. – RLH

Questions connexes