MSSQL Server : Zugriffsrechte auf Datenbank
Hallo zusammen !
Ich habe ein Problem der unwirklichen Art. Ich habe auf 2 Servern A und B je eine MSSQL-Serverinstanz gehabt:
Server A : MSSQL 2000
[Datenbank], hatte 3 drei individuell angelegte Benutzer: writer, reader, php-user
User writer, reader, php-user sind in Rolle "Sicherheit" mit Zugriff auf [Datenbankname] angelegt (Checkboxen)
User writer, reader, php-user sind auf Datenbankebene / Berechtigungen als "berechtigt zum Verbinden sichtbar.
Server B : MSSQL 2008R2
Die Rolle Sicherheit hat dieselben 3 drei individuell angelegten Benutzer: writer, reader, php-user, Passwörter identisch.
Das Problem: Server A kolabierte mit Festplattenschaden. Es gelang aber, auf Server B die [Datenbank] wieder hochzuziehen. Der SA ist derselbe => Zugriff per SA möglich.
=> wir arbeiten nun auf Server B : MSSQL 2008R2
Es sollen aber auch die besagten Benutzer writer, reader, php-user zugreifen können ! => also rein in die "Rolle Sicherheit" und dort bei den Usern User writer, reader, php-user die Checkboxen für den Zugriff auf [Datenbank] anchecken und speichern !
Eigentlich ganz einfach, aber denkste ! Beim Versuch, diese Änderungen zu speichern erscheint ein Fehler mit der Meldung, die Änderung sei nicht möglich, da der jeweilige Benutzer bereits Zugriff auf die Datenbank habe.
... was korrekt ist, aber bloss auf Ebene der Datenbank-Eigenschaften. In der Rolle Sicherheit -und diese wird beim Zugriff abgefragt eben nicht. Ausschlaggebend ist eben das Setzen des Hakens in der Siicherheit und genau das wird verweigert.
Jetzt habe ich natürlich versucht, den als bereits vorhanden angemeckerten Eintrag des Benutzers auf Datenbankebene zu löschen, damit ihn die Rolle Sicherheit wieder neu schreiben kann. Aber das geht auch nicht, weil eine Bearbeitung dieser Datensätze (angezeigte Benutzer auf Datenbankeben) anscheinend nicht vorgesehen ist.
Was nun ? Es muss ja einen Weg (SQL-Kommando ?) geben, diese berechtigten Benutzer da rauszuhauen, damit sie von der Sicherheit wieder zugeweisen werden können.
Vielen Dank im Voraus für Eure Hilfe !
Gruss Walter
Ich habe ein Problem der unwirklichen Art. Ich habe auf 2 Servern A und B je eine MSSQL-Serverinstanz gehabt:
Server A : MSSQL 2000
[Datenbank], hatte 3 drei individuell angelegte Benutzer: writer, reader, php-user
User writer, reader, php-user sind in Rolle "Sicherheit" mit Zugriff auf [Datenbankname] angelegt (Checkboxen)
User writer, reader, php-user sind auf Datenbankebene / Berechtigungen als "berechtigt zum Verbinden sichtbar.
Server B : MSSQL 2008R2
Die Rolle Sicherheit hat dieselben 3 drei individuell angelegten Benutzer: writer, reader, php-user, Passwörter identisch.
Das Problem: Server A kolabierte mit Festplattenschaden. Es gelang aber, auf Server B die [Datenbank] wieder hochzuziehen. Der SA ist derselbe => Zugriff per SA möglich.
=> wir arbeiten nun auf Server B : MSSQL 2008R2
Es sollen aber auch die besagten Benutzer writer, reader, php-user zugreifen können ! => also rein in die "Rolle Sicherheit" und dort bei den Usern User writer, reader, php-user die Checkboxen für den Zugriff auf [Datenbank] anchecken und speichern !
Eigentlich ganz einfach, aber denkste ! Beim Versuch, diese Änderungen zu speichern erscheint ein Fehler mit der Meldung, die Änderung sei nicht möglich, da der jeweilige Benutzer bereits Zugriff auf die Datenbank habe.
... was korrekt ist, aber bloss auf Ebene der Datenbank-Eigenschaften. In der Rolle Sicherheit -und diese wird beim Zugriff abgefragt eben nicht. Ausschlaggebend ist eben das Setzen des Hakens in der Siicherheit und genau das wird verweigert.
Jetzt habe ich natürlich versucht, den als bereits vorhanden angemeckerten Eintrag des Benutzers auf Datenbankebene zu löschen, damit ihn die Rolle Sicherheit wieder neu schreiben kann. Aber das geht auch nicht, weil eine Bearbeitung dieser Datensätze (angezeigte Benutzer auf Datenbankeben) anscheinend nicht vorgesehen ist.
Was nun ? Es muss ja einen Weg (SQL-Kommando ?) geben, diese berechtigten Benutzer da rauszuhauen, damit sie von der Sicherheit wieder zugeweisen werden können.
Vielen Dank im Voraus für Eure Hilfe !
Gruss Walter
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7243300001
Url: https://administrator.de/contentid/7243300001
Ausgedruckt am: 24.11.2024 um 10:11 Uhr
12 Kommentare
Neuester Kommentar
Hi
Ihr migriert jetzt also von Urzeit auf Steinzeit...
Das ist immer so wenn man eine DB woanders einhängt.
Mit
https://www.sqlservergeeks.com/sql-server-error-15023-user-already-exist ...
solltest du das wieder Gerade biegen können
Ihr migriert jetzt also von Urzeit auf Steinzeit...
Das ist immer so wenn man eine DB woanders einhängt.
Mit
https://www.sqlservergeeks.com/sql-server-error-15023-user-already-exist ...
solltest du das wieder Gerade biegen können
Zitat von @MeinGottWalter:
Da der Fehler bzw. das Problem ja bekannt ist, hätte Microsoft ja auch reagieren können. Dieser Fehlerzustand wäre nicht notwendig, wenn von der Rolle Sicherheit aus die entsprechenden bereits vorhandenen Einträge einfach mit den richtigen Schlüsseln überschrieben würden.
Ja und nein.Da der Fehler bzw. das Problem ja bekannt ist, hätte Microsoft ja auch reagieren können. Dieser Fehlerzustand wäre nicht notwendig, wenn von der Rolle Sicherheit aus die entsprechenden bereits vorhandenen Einträge einfach mit den richtigen Schlüsseln überschrieben würden.
Das ist kein Fehler sondern gewollt.
Aber das Problem ist lange bekannt und seit 2012 gibt es den Containment Mode.
(Nicht Isolation wie ich ihn oben genannte hatte. Bekomme den richtigen Begriff einfach nicht in meinen Schädel...)
Damit existieren User dann nur noch in der DB und können beim migrieren auf einen anderen Server einfach mitgenommen werden.
Und es ist außerdem sicherer.
Du redest von DTS?
Das ist später in SSIS integriert bzw damit ersetzt worden.
IMHO gab es da auch converter die einem die Migration leicht bis automatisch gemacht haben
Update:
http://www.sqlcircuit.com/2017/12/sql-server-dts-to-ssis-migration.html ...
Das ist später in SSIS integriert bzw damit ersetzt worden.
IMHO gab es da auch converter die einem die Migration leicht bis automatisch gemacht haben
Update:
http://www.sqlcircuit.com/2017/12/sql-server-dts-to-ssis-migration.html ...