SID Aktualisierung von Microsoft SQL Server Datenbanken in anderer Domäne
Newsletter abonieren
| RSS Feed

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.
Hierfür kannst Du eine SID Aktualisierung von Microsoft SQL Server Datenbanken in anderer Domäne durch Wiederherstellung in eine anderer Umgebung durchführen.
Warum müssen die SIDs der Benutzer und Gruppen aktualisiert werden?
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.
T-SQL Script für die Aktualisierung der SIDs
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.
[userpro template=login force_redirect_uri=1]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.
Newsletter abonieren | RSS Feed