Mittendrin.

Zurück

Flurfunk der eXperts.

Hier erfahren Sie mehr über eXperts, Technologien und das wahre Leben in der SDX.

Reparatur der Login/User Zuordnung im SQL Server

18.04.201208:45 Uhr , Matthias Malsy

Bei einem Restore einer SQL Server Datenbank aus einem Fremdsystem werden User und somit die Berechtigungen der Datenbank mit eingespielt. Diese Benutzer sind in der Regel mit keinem Login des Servers verknüpft, auch wenn Login und der Benutzer den gleichen Namen tragen. In der Konsequenz hat der Login keine Berechtigung auf der Datenbank.

Die Zuordnung von User und Login erfolgt über die sogenannte SID (Secure Identifier). Nur wenn diese bei Login und User gleich sind erfolgt sie automatisch. Dies ist in der Regel nur der Fall, wenn Login und User im gleichen System erstellt worden sind. Nachfolgender Artikel zu "SQL Server Logins and Users" beschreibt die Zusammenhänge im Detail.

Für die Praxis helfen zwei kleine Stored Procedures:

Auflisten der User die keine Verknüpfung zu Logins haben:

sp_change_users_login 'report'

 User einer Datenbank einem Login zuordnen:

sp_change_users_login 'update_one', '[Username]', '[Login]'
-- oder auch (Danke an Frank für den Tipp) 
ALTER USER [Username] WITH Login = [Login]

Tags: Dev SQL Server

1 Kommentar

18.04.201214:50 Uhr
Daniel Tonagel

In SQL 2012 kann man die ganze Problematik (neben User/Login-Zuordnungen spielen auch noch Collations eine Rolle) mit dem sog. Datebase Containment umgehen.

Damit kann man Logins direkt in der DB anlegen (sowohl User/Pwd als auch Windows-User). Diese User können dann nur in dieser DB eingeloggt werden, sie haben keinen entsprechenden Server-Login.

Dein Kommentar wartet auf Freischaltung.

Artikel kommentieren

Zurück

Tag Cloud


Kontakt aufnehmen


Anrufen

Gerne beantworten wir Ihre Fragen in einem persönlichen Gespräch!


Kontakt aufnehmen

Schreiben Sie uns eine E-Mail mit Ihren Fragen und Kommentaren!