O que pode ser feito, se houver alguma coisa, quando o guest
usuário especial fica órfão (não está vinculado a nenhum login)?
Para um dos meus bancos de dados (SQL Server 2005), a execução do seguinte lista o usuário convidado como um usuário órfão.
exec sp_change_users_login 'report'
Resultados:
UserName UserSID
guest 0x3C2E66759FFBC14F84127D6795C27FD3
Se eu tentar corrigir o usuário convidado usando esse procedimento, obtenho o seguinte:
exec sp_change_users_login 'update_one', 'guest', 'guest'
Terminando este procedimento. 'guest' é um valor proibido para o parâmetro de nome de login neste procedimento.
Se eu tentar excluir o usuário, recebo:
O usuário 'convidado' não pode ser descartado, apenas pode ser desativado.
select * from sys.database_principals where name = 'guest'
Resulta em:
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
O banco de dados parece estar confuso quanto a se este é um usuário especial ou não. Existe algo que possa ser feito?
Terminating this procedure. 'guest' is a forbidden value for the login name parameter in this procedure.
0x3C2E66759FFBC14F84127D6795C27FD3
vez de0x00