SQL Server 2012: gelöschten Benutzer neu anlegen funktioniert nicht
Hallo,
habe einen neu angelegten Benutzer wegen falschen Kennwortrichtlinien gelöscht (auch manuell aus allen Datenbanken). Wollten ihn nun neu anlegen, doch dann kam die Fehlermeldung "Der Serverprinzipal 'Benutername' ist bereits vorhanden (Fehler 15025). Hab nach langem googeln nun erfahren, dass der Name noch in verschiedenen sys-Tabellen (z.B. sys.server_principals) noch vorhanden ist. Hab mal nachgeschaut und es stimmt. Nun will ich also diese Zeile in der der Name noch steht löschen habe aber keine Ahnung wie. Falsche Daten zu löschen wäre fatal, da die Datenbank sehr aktiv im Betrieb läuft. Hab bisher immer nur Nutzer angelegt und Berechtigungen eingestellt und hab keine Ahnung von SQL-Abfragen etc. Kann man den Datensatz auch irgendwie mithilfe der einfachen Oberfläche löschen. Wenn nicht bitte ich um möglichst genaue Beschreibung wie man das sonst machen soll.
Mfg
Rico
habe einen neu angelegten Benutzer wegen falschen Kennwortrichtlinien gelöscht (auch manuell aus allen Datenbanken). Wollten ihn nun neu anlegen, doch dann kam die Fehlermeldung "Der Serverprinzipal 'Benutername' ist bereits vorhanden (Fehler 15025). Hab nach langem googeln nun erfahren, dass der Name noch in verschiedenen sys-Tabellen (z.B. sys.server_principals) noch vorhanden ist. Hab mal nachgeschaut und es stimmt. Nun will ich also diese Zeile in der der Name noch steht löschen habe aber keine Ahnung wie. Falsche Daten zu löschen wäre fatal, da die Datenbank sehr aktiv im Betrieb läuft. Hab bisher immer nur Nutzer angelegt und Berechtigungen eingestellt und hab keine Ahnung von SQL-Abfragen etc. Kann man den Datensatz auch irgendwie mithilfe der einfachen Oberfläche löschen. Wenn nicht bitte ich um möglichst genaue Beschreibung wie man das sonst machen soll.
Mfg
Rico
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 601257
Url: https://administrator.de/contentid/601257
Ausgedruckt am: 26.11.2024 um 07:11 Uhr
6 Kommentare
Neuester Kommentar
Zitat von @Enr.Mue:
Hi,
in diesem Fall bin ich der Systembetreuer. Mein Kollege der sich besser auskennt ist länger nicht im Hause. Es muss doch eine einfache Möglichkeit geben einen Benutzer zu löschen oder sehe ich das falsch?
Hi,
in diesem Fall bin ich der Systembetreuer. Mein Kollege der sich besser auskennt ist länger nicht im Hause. Es muss doch eine einfache Möglichkeit geben einen Benutzer zu löschen oder sehe ich das falsch?
so wie sich deine Erklärung anhört, ja. Oder das ist einfach nicht dein Bereich. Normalerweise muss man in der DB aber auch keine Benutzer aus o.g. Grund löschen...
das ist ein Bug, den SQL Server bis heute haben.
a) sql login anlegen ohne die Checkbox der Kennwortrichtlinie
b) später die Kennwortrichtlinie aktivieren, entweder per Checkbox im SSMS oder per GPO
c) beim ersten Loginversuch des Benutzers gibts einen Fehler 28000, schaut man genauer nach in den Server Logs dann steht da daß der Benutzer deaktiviert ist
d) login im SSMS löschen
e) neues Login anlegen scheitert.
unser Workaround ist: anderen SQL Benutzer anlegen, ggf in der oder den Datenbanken berechtigen wenn er nicht sowieso sysadm kriegt, und fertig. Oder einen Login per Windows-Berechtigungen erzeugen, dann kommt das Kennwort aus dem AD und interleigt dann auch dessen Richtlinien
a) sql login anlegen ohne die Checkbox der Kennwortrichtlinie
b) später die Kennwortrichtlinie aktivieren, entweder per Checkbox im SSMS oder per GPO
c) beim ersten Loginversuch des Benutzers gibts einen Fehler 28000, schaut man genauer nach in den Server Logs dann steht da daß der Benutzer deaktiviert ist
d) login im SSMS löschen
e) neues Login anlegen scheitert.
unser Workaround ist: anderen SQL Benutzer anlegen, ggf in der oder den Datenbanken berechtigen wenn er nicht sowieso sysadm kriegt, und fertig. Oder einen Login per Windows-Berechtigungen erzeugen, dann kommt das Kennwort aus dem AD und interleigt dann auch dessen Richtlinien
Probier mal die Verknüpfungen für den User zu reparieren
und dann den alten User-Eintrag umzubenennen
Um ihn anschließend zu löschen.
EXEC sp_change_users_login 'Auto_Fix','NameDesUsers'
ALTER LOGIN "oldname" WITH name="newname"