none
Prüfen ob Datenbank Login/User noch im Active Directory RRS feed

  • 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

    Montag, 26. Februar 2018 12:51

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
    Montag, 26. Februar 2018 14:52
  • 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
    Dienstag, 6. März 2018 08:37
    Beantworter
  • 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
    Montag, 26. Februar 2018 14: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
    Mittwoch, 7. März 2018 08:51

Alle Antworten

  • Hallo,

    Windows Logins und Windows Gruppen kannst Du mithilfe von xp_logininfo überprüfen; gibt es den Login, bekommt man ein paar Informationen dazu, gibt es ihn nicht, wird ein Fehler geworfen.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Montag, 26. Februar 2018 13:06
  • 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
    Montag, 26. Februar 2018 14: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
    Montag, 26. Februar 2018 14:52
  • 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/

    Montag, 26. Februar 2018 16:42
  • 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
    Dienstag, 6. März 2018 08:37
    Beantworter
  • Das ist ein sehr guter Tipp!
    Die Geschichte mit den umbenannten im AD ist mir auch schon aufgefallen

    Gibt es eine Möglichkeit die zu korrigieren?

    Dienstag, 6. März 2018 13:45
  • Keine Ahnung, da müsste man evtl. mal jemand mit Powershell Kenntnissen und den nötigen Berechtigungen ranlassen. ;-)

    Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu

    Dienstag, 6. März 2018 14:23
    Beantworter
  • 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?

    Mittwoch, 7. März 2018 07:51
  • 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
    Mittwoch, 7. März 2018 08:51
  • 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
    Dienstag, 13. März 2018 10:01
  • 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...
    Donnerstag, 12. April 2018 07:56