SQL Server 2005: Ein Benutzer wurde versehentlich aus der öffentlichen Rolle entfernt. Der Benutzer kann der Rolle nicht wieder hinzugefügt werden.

SQL Server 2005: Ein Benutzer wurde versehentlich aus der öffentlichen Rolle entfernt. Der Benutzer kann der Rolle nicht wieder hinzugefügt werden.

Ich versuche, ein DB-Benutzerkonto zu erstellen, das nur Zugriff auf eine bestimmte Datenbank hat und keine anderen Datenbanken lesen oder ändern und auch die Anmeldeinformationen für keine anderen Konten ändern kann.

Ich habe diesen Benutzer versehentlich aus der „öffentlichen“ Serverrolle entfernt, während ich ein Verbindungsproblem behoben habe, wodurch mein Zugriff auf den Server vom Management Studio für das Konto unterbrochen wurde.

Die einzige Möglichkeit, Zugriff zu erhalten, besteht darin, dem Benutzer die Rolle des Sysadmins zuzuweisen. Dies funktioniert jedoch nicht, da der Benutzer nun Zugriff auf alle Datenbanken hat.

Wenn ich jetzt versuche, den Benutzer wieder zur öffentlichen Serverrolle hinzuzufügen, erhalte ich eine Fehlermeldung, dass die Mitgliedschaft in der Rolle nicht geändert werden kann.

Wenn ich mit der rechten Maustaste auf den Benutzer klicke und die Eigenschaften ansehe, wird merkwürdigerweise behauptet, der Benutzer sei ein Mitglied der öffentlichen Rolle, und ich kann die Mitgliedschaft nicht ändern.

Fragen:

  • Wenn die öffentliche Rollenmitgliedschaft nicht geändert werden kann, wie konnte ich den Benutzer dann überhaupt aus der Rolle entfernen?
  • Wie füge ich den Benutzer wieder hinzu, damit ich für diesen Benutzer wieder Zugriff auf das Management Studio erhalten kann?

Antwort1

Um Ihnen mit weiteren Details zu helfen, sehen Sie hier, wie alles aussehen sollte, damit Sie genau sagen können, welcher Teil nicht korrekt ist. Sie haben einen Login für den Server und einen Benutzer für die Datenbank für das Konto, mit dem Sie Probleme haben. Auf Server- und Datenbankebene sehen Sie eine öffentliche Rolle (Serverrolle und Datenbankrolle). Die Eigenschaften der öffentlichen Serverrolle zeigen keine Benutzer an, aber die Eigenschaften des Logins zeigen die öffentliche Datenbankrolle für alle Datenbanken an (sie wird aktiviert und Sie können sie nicht deaktivieren). Die Eigenschaften der öffentlichen Datenbankrolle zeigen auch keine Mitglieder an, und die Eigenschaften des Datenbankbenutzers zeigen auch nicht die öffentliche Rolle an. Aus all diesen Gründen glaube ich nicht, dass Sie den Benutzer aus der öffentlichen Rolle entfernt haben.

Wenn Sie versuchen möchten, den Benutzer zu löschen und neu zu erstellen, können Sie zunächst versuchen, in die Datenbank zu gehen und einfach den Datenbankbenutzer zu löschen. Dadurch bleibt die Anmeldung erhalten, deren Eigenschaften Sie aufrufen können. Unter „Benutzerzuordnung“ sollte keine Datenbank markiert sein. Sie sollten jetzt in der Lage sein, die Datenbank zu überprüfen (da der Datenbankbenutzer gelöscht wurde) und die gewünschten Rollen auszuwählen. Wenn dies nicht funktioniert, können Sie auch die Anmeldung zusammen mit dem Datenbankbenutzer löschen, um zu versuchen, alles zu löschen. Für eine letzte Überprüfung des Benutzers können Sie dieses SQL ausführen:

use database_name
exec sp_change_users_login 'Report'

Hier werden Ihnen alle verwaisten Benutzer angezeigt. Das könnte bedeuten, dass mit Ihrem Benutzer noch ein Problem besteht. Dies kann normalerweise wie folgt behoben werden:

use database_name
exec sp_change_users_login 'Auto_Fix', 'username'

Um das Problem zu lösen, bevor es noch länger dauert, könnte es etwas ganz anderes geben, das das Verbindungsproblem für diesen Benutzer verursacht. Wenn nichts davon funktioniert, können Sie die Fehlermeldung posten, die Sie beim Anmelden erhalten?

verwandte Informationen