Benutzer mit den meisten Antworten
Prüfen ob Datenbank Login/User noch im Active Directory

Frage
-
Hallo,
gibt es eine Möglichkeit des Abgleichs der Logins und User einer SQL Server 2008 R2 Datenbank gegen das Active Directory?
Der Hintergrund ist folgender, Wir haben in unserer Datenbank mitllerweoile User, die Das Unternehmen z.B. aufgrund Ihres Ruhestands verlassen haben.
Nun würden wir uns gerne einen Überblick verschaffen welche Login und User wir aus der Datenbank entfernen können.
Optimal wäre es, wenn das automatisch passieren würde.Ich bin für jeden Tipp dankbar.Gruß
cheapy
Antworten
-
Fehler kann man mit TRY...CATCH (Transact-SQL) abfangen & auswerten
BEGIN TRY EXEC xp_logininfo 'DOMAIN\gibtesnicht'; END TRY BEGIN CATCH SELECT 'Ein Fehler beim Login Überpüfen' END CATCH;
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort markiert Cheaptrick_la Montag, 26. Februar 2018 15:03
-
Hallo Cheapy,
auch wenn der Thread schon geschlossen ist, möchte ich gerne noch einen Hinweis geben.
Alternativ kannst Du Logins prüfen mit:
exec sp_validatelogins;
Hier bekommst Du dann nur die fehlerhaften als Output.
Wenn ein Account im AD umbenannt wurde, erscheint er natürlich in dieser Liste und auch in der von Olaf genannten Möglichkeit. Denn diese Accounts haben ja "Probleme". Welche, kannst Du hier leider nicht sehen.
Siehe auch: SQL Server security and renamed logins
Wobei dort einfach noch mal die Hintergründe erläutert werden. Eine einfache Lösung gibt es dort auch nicht!
Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu
- Als Antwort markiert Cheaptrick_la Dienstag, 6. März 2018 13:44
-
Hallo Olaf,
wie kann ich die Fehlermeldung abfangen, wenn ein Login in der Datenbank ist, zu dem es keinen Eintrag im AD gibt.
Weiterhin liefert mir xp_logininfo einen Fehler, wenn ich den Namen einer Kollegin angebe, die mitlerweile einen anderen Nachnamen hat, der Login in der DB aber weiterhin über ihren alten Namen funktioniert.Gruß
cheapy
- Als Antwort markiert Cheaptrick_la Montag, 26. Februar 2018 15:03
-
Ich habe es inzwischen heraus gefunden, wie ich den Login Namen ändern kann:
ALTER LOGIN [LoginName] WITH NAME = [neuerLoginName]
- Als Antwort markiert Cheaptrick_la Mittwoch, 7. März 2018 08:52
Alle Antworten
-
Hallo Olaf,
wie kann ich die Fehlermeldung abfangen, wenn ein Login in der Datenbank ist, zu dem es keinen Eintrag im AD gibt.
Weiterhin liefert mir xp_logininfo einen Fehler, wenn ich den Namen einer Kollegin angebe, die mitlerweile einen anderen Nachnamen hat, der Login in der DB aber weiterhin über ihren alten Namen funktioniert.Gruß
cheapy
- Als Antwort markiert Cheaptrick_la Montag, 26. Februar 2018 15:03
-
Fehler kann man mit TRY...CATCH (Transact-SQL) abfangen & auswerten
BEGIN TRY EXEC xp_logininfo 'DOMAIN\gibtesnicht'; END TRY BEGIN CATCH SELECT 'Ein Fehler beim Login Überpüfen' END CATCH;
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort markiert Cheaptrick_la Montag, 26. Februar 2018 15:03
-
Am 26.02.2018 schrieb Cheaptrick_la:
gibt es eine Möglichkeit des Abgleichs der Logins und User einer SQL Server 2008 R2 Datenbank gegen das Active Directory?
Der Hintergrund ist folgender, Wir haben in unserer Datenbank mitllerweoile User, die Das Unternehmen z.B. aufgrund Ihres Ruhestands verlassen haben.Nur Gruppen aus dem AD im SQL Server eintragen. Wird ein User im AD
gelöscht, verschwindet er auch aus den Gruppen im SQL Server.Servus
Winfried
WSUS Package Publisher: http://wsuspackagepublisher.codeplex.com/
HowTos zum WSUS Package Publisher http://www.wsus.de/wpp
GPO's: http://www.gruppenrichtlinien.de
NNTP-Bridge für MS-Foren: http://communitybridge.codeplex.com/ -
Hallo Cheapy,
auch wenn der Thread schon geschlossen ist, möchte ich gerne noch einen Hinweis geben.
Alternativ kannst Du Logins prüfen mit:
exec sp_validatelogins;
Hier bekommst Du dann nur die fehlerhaften als Output.
Wenn ein Account im AD umbenannt wurde, erscheint er natürlich in dieser Liste und auch in der von Olaf genannten Möglichkeit. Denn diese Accounts haben ja "Probleme". Welche, kannst Du hier leider nicht sehen.
Siehe auch: SQL Server security and renamed logins
Wobei dort einfach noch mal die Hintergründe erläutert werden. Eine einfache Lösung gibt es dort auch nicht!
Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu
- Als Antwort markiert Cheaptrick_la Dienstag, 6. März 2018 13:44
-
Ich hab mich da vielleicht etwas unglücklich ausgedrückt.
Die Änderungen im AD sind durchaus berechtigt, wie z.B. eine Namensänderung durch Heirat.
Was ich wissen möchte ist, ob ich die DB-Login entsprechend korrigieren kann.Die werden doch sicher auch in irgendwelchen Systemtabellen abgelegt sein, oder?
-
Ich habe es inzwischen heraus gefunden, wie ich den Login Namen ändern kann:
ALTER LOGIN [LoginName] WITH NAME = [neuerLoginName]
- Als Antwort markiert Cheaptrick_la Mittwoch, 7. März 2018 08:52
-
Via Powershell wohl relativ einfach. Ich sag nur dbatools:
https://dbatools.io/functions/test-dbavalidlogin/
Damit kann man schon mal auf die Schnelle ermitteln, welche Server Logins nicht mehr valide sind.
Wenn man das entsprechende dbatools powershell modul geladen hat, dann ist das nur noch ein Einzeiler mit:
Test-DbaValidLogin -SqlInstance "MeinSQLServer"
Man kann am Ende noch ein " | Out-Gridview" nutzen und filtert dann in der Gridview nach Found = False
Gruß
Dirk
May you never suffer the sentiment of spending a day without any purpose
- Bearbeitet Dirk Hondong Freitag, 16. März 2018 08:51 ergänzende Infos
-
Hallo Cheapy,
ich weiß, dass "man" auf die "Organisation" des ADs oft keinen direkten Einfluss hat, aber: wenn ich deine Problematik so lese, frage ich mich schon, ob es nicht sinnvoll wäre die Anmeldenamen auf abstraktere Namen wie z.B. Die Personalnummer umzustellen. Sehr viele Betriebe nutzen "Konstrukte" wie z.B. einem Kürzel des betroffenen ADs gefolgt von einer vier oder fünfstelligen Personalnummer, die sind dann auch nie ändert!
Grüße Volker
PS: Und diese Accounts dann in Gruppen zusammenfassen und nur die Gruppen einbinden...- Bearbeitet Volker Salzinger Donnerstag, 12. April 2018 08:00