Was kann getan werden, wenn der spezielle guest
Benutzer verwaist ist (nicht mit einem Login verknüpft)?
Für eine meiner Datenbanken (SQL Server 2005), die folgenden Listen der Ausführung Gast Benutzer als verwaiste Benutzer.
exec sp_change_users_login 'report'
Ergebnisse:
UserName UserSID
guest 0x3C2E66759FFBC14F84127D6795C27FD3
Wenn ich versuche , das zu beheben Gast Benutzer unter Verwendung dieses Verfahrens, erhalte ich die folgende:
exec sp_change_users_login 'update_one', 'guest', 'guest'
Beenden dieses Vorgangs. 'guest' ist ein verbotener Wert für den Parameter login name in diesem Verfahren.
Wenn ich versuche, den Benutzer zu löschen, erhalte ich:
Der Benutzer 'Gast' kann nicht gelöscht, sondern nur deaktiviert werden.
select * from sys.database_principals where name = 'guest'
Ergebnisse in:
name guest
principal_id 2
type S
type_desc SQL_USER
default_schema_name guest
create_date 11/13/98 2:58 AM
modify_date 10/16/01 4:31 PM
owning_principal_id NULL
sid 0x3C2E66759FFBC14F84127D6795C27FD3
is_fixed_role 0
Die Datenbank scheint verwirrt zu sein, ob dies ein spezieller Benutzer ist oder nicht. Gibt es etwas, das getan werden kann?
sql-server
sql-server-2005
JustinStolle
quelle
quelle
0x3C2E66759FFBC14F84127D6795C27FD3
anstelle von0x00
Terminating this procedure. 'guest' is a forbidden value for the login name parameter in this procedure.
Antworten:
Der Benutzer "Gast" wird niemals einem Server-Login zugewiesen, selbst bei einer Neuinstallation wird er als SQL-Benutzer ohne Login klassifiziert. Da Sie nur die SID eines Logins (bei der Erstellung) und nicht eines Benutzers festlegen können, glaube ich nicht, dass dies möglich ist. sp_change_users_login funktioniert nicht genau aus dem Grund, dass das Gastkonto niemals einem Server-Login zugeordnet werden sollte. Infolgedessen ist der Benutzer "Gast" immer ein verwaister Benutzer. Wahrscheinlich nicht die Antwort, die Sie wollten :)
quelle
sp_change_users_login
Bericht zu ignorieren ?Meine Gedanken ... Der Grund
sp_change_users_login
für diesen Fehler ist, dass MS ihn auch geschrieben hat. [Hin und wieder das Durchsuchen des Systemprozedurcodes kann Spaß machen. :)] Die Tatsache, dass es beim Ausführen des Berichts angezeigt wird, zeigt jedoch an, dass jemand / ein Prozess mit dem Konto in Konflikt geraten ist oder dass ein möglicher Hotfix von MS dies hätte tun können (Sie wissen es nie).Das Gastkonto soll vorhanden sein. Es ist in jeder Datenbank vorhanden, die erstellt wird, da das Konto standardmäßig im Modell vorhanden ist. Wenn es nicht im Bericht angezeigt wird, muss die SID wahrscheinlich wieder auf "
0x00
Ich denke" geändert werden . Solange das Konto deaktiviert ist, würde ich es in Ruhe lassen und ignorieren. Wenn es mich wirklich störte, würde ich das Geld herausgeben und einen Anruf beim Microsoft-Support tätigen.quelle
guest
in diesem Fall kein Problem ist, das in den Ergebnissen auftaucht.Es gibt also eine Abfolge von Aufgaben, denen Sie folgen müssen
Ich habe hier ein Beispiel gegeben, hoffe es wird helfen:
quelle
guest
Benutzer nicht. Siehe Antwort oben von Mr. Brownstone.