Verwaiste Benutzer mit SQL SMO reparieren?

8

Gibt es eine Möglichkeit, einen verwaisten Benutzer in einer SQL 2005/2008-Datenbank mit SQL SMO zu reparieren?

Sie können verwaiste Benutzer relativ einfach finden, indem Sie über die Benutzer aufzählen und nach einer leeren Eigenschaft User.Login suchen:

%Vor%

Leider ist die Fehlerbehebung nicht so einfach, wie die Eigenschaft User.Login auf den übereinstimmenden Server-Login-Namen zu setzen. User.Login hat einen Setter, aber ich bin mir nicht bewusst, wie ich das zurück auf den Server propagieren kann. Es wird nur angezeigt, wenn Sie ein neues User erstellen.

Ich habe erwogen, den Benutzer aus der Datenbank zu entfernen und die Server-Anmeldung erneut an die Datenbank zu binden, aber das bringt zusätzliche Komplikationen mit sich. Komplikationen wie das Neuzuweisen von Standardschemas, Rollen und, wenn sie ein eigenes Schema in der Datenbank besitzen, gibt es mehr Probleme beim Durchlaufen dieser Änderungen. Es ist genug, um Sie dazu zu bringen, die SQL zu inline zu machen und damit fertig zu werden:

%Vor%

Ich würde es jedoch vorziehen, einen Aufruf an eine gespeicherte Systemprozedur nicht einzubinden.

Irgendwelche Vorschläge?

    
Yoopergeek 10.09.2009, 19:03
quelle

3 Antworten

5

Leider ist SMO nicht viel besser als SQL-DMO, um Methoden zur Verfügung zu stellen, sollte verfügbar sein. Du wirst Inline-SQL verwenden müssen:

%Vor%

oder

%Vor%     
C-Pound Guru 15.09.2009, 14:20
quelle
2

Von T-SQL ALTER LOGIN ... MIT LOGIN = ...

  

LOGIN = Anmeldename

     

Ordnet einen Benutzer neu zu   eine weitere Anmeldung durch Änderung des Benutzers   Sicherheits-ID (SID) zum Abgleich mit   Login-SID.

Jetzt habe ich es nicht ausprobiert, weil ich SIDs über Server hinweg synchronisieren würde (und heutzutage selten SQL-Logins verwende)

Dies entspricht jedoch der User.Alter-Methode .

Also, es könnte funktionieren ...

Wenn es nicht gefällt, den gleichen Login zu verwenden, denke ich, dass Sie einen anderen Login und zurück zuordnen könnten.

    
gbn 10.09.2009 19:58
quelle
0

Für mich funktionierte diese Syntax gut

%Vor%

Ich habe es hier gefunden: Ссылка

    
Mirek Michalak 22.04.2016 09:17
quelle

Tags und Links