SID Aktualisierung im Microsoft SQL Server von Benutzer und Gruppen nach einer Datenbank Wiederherstellung in eine anderer Umgebung (Domäne)


Wenn man eine Microsoft SQL Server Datenbank aus einer Entwicklungs -bzw. Testumgebung sichert (Backup) und wiederherstellt (Restore), sind die Namen der Benutzer bzw. Gruppen von der Bezeichnung gleich.

Dies liegt daran, das man Sie wahrscheinlich im Active Directory (Domäne) oder im Microsoft SQL Server (lokal) für die Datenbanken bzw. Anwendung zur Rechteverwaltung verwenden möchte.

Und von der Bezeichnung sind sie im Microsoft SQL Server Management Studio auch gleich. Aber der Schein trügt, denn die eigentlichen Schlüssel die sogenannten SIDs sind für Benutzer und Gruppen in den Windows Domänen und Micorsoft SQL Servern unterschiedlich.

Denn beim Anlegen der Konten bzw. Gruppen werden diese explizit generiert und sind damit nur innerhalb einer Umgebung eindeutig.

Aus diesem Grund habe ich ein kleines T-SQL Skript geschrieben was diesem Sachverhalt Rechnung trägt.
Dieses Skript kannst du nach dem Restore in der SQL Datenbank auf dem Server der Wiederherstellung ausführen, um die entsprechende Aktualisierung für die Benutzer und Gruppen ausgeben zu lassen.

Die Ausgabe besteht dann aus einer Ausgabezeile pro Benutzer und Gruppe :

ALTER USER [Benutzername] WITH LOGIN = [Benutzer]

Dabei werden System Benutzer oder Gruppen des Microsoft SQL Servers nicht beachtet und können durch andere nicht zu beachtende Benutzer und Gruppen angepasst werden.

Zur Erzeugung der Ausgabe ersetze im T-SQL Skript den Platzhalter „Name der Datenbank“ mit dem Namen deiner gewünschten Microsoft SQL Server Datenbank.

1
2
3
4
5
6
7
DECLARE @USERNAME VARCHAR(1024)

DECLARE USERCURSOR CURSOR FOR  
SELECT name FROM [Name der Datenbank].dbo.sysusers
OPEN USERCURSOR FETCH NEXT FROM USERCURSOR INTO @USERNAME  
WHILE @@FETCH_STATUS = 0  
BEGIN ...

Wenn du das komplette T-SQL Skript sehen möchtest, melde dich mit deinem Konto auf centralblogger an oder registriere dich jetzt und werde Mitglied der Community.

Schließen

Die Ausgabe kannst du in einem neuen Abfragefenster im SQL Management Studio ausführen, um die Zuordnung von Bezeichnung der Benutzer und Gruppen zu deren passenden SIDs wieder zu aktualisieren.

Wie immer zum Schluss der Hinweis, das ich keine Verantwortung für die Richtigkeit des Codes übernehme. Der Gebrauch ist deshalb auf eigene Gefahr.

Happy Coding und Gruß Totti

RSS Feed   RSS Feed: Keinen Beitrag auf centralblogger verpassen!

Facebook:

Twitter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Bei Kommentaren auf centralblogger werden zum Kommentartext zusätzlich Erstellungszeitpunkt und E-Mail-Adresse gespeichert.

blank