Cosa si può fare, se non altro, quando l' guest
utente speciale è orfano (non collegato a nessun accesso)?
Per uno dei miei database (SQL Server 2005), l'esecuzione di seguito elenca l' utente guest come utente orfano.
exec sp_change_users_login 'report'
risultati:
UserName UserSID
guest 0x3C2E66759FFBC14F84127D6795C27FD3
Se provo a riparare l' utente guest usando quella procedura, ottengo quanto segue:
exec sp_change_users_login 'update_one', 'guest', 'guest'
Terminare questa procedura. 'guest' è un valore proibito per il parametro del nome di accesso in questa procedura.
Se provo a eliminare l'utente, ottengo:
L'utente "ospite" non può essere eliminato, può solo essere disabilitato.
select * from sys.database_principals where name = 'guest'
Risultati 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
Il database sembra essere confuso sul fatto che si tratti di un utente speciale o meno. c'è qualcosa che si può fare?
Terminating this procedure. 'guest' is a forbidden value for the login name parameter in this procedure.
0x3C2E66759FFBC14F84127D6795C27FD3
anziché0x00