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?
sql-server
sql-server-2005
JustinStolle
fonte
fonte
0x3C2E66759FFBC14F84127D6795C27FD3
vez de0x00
Terminating this procedure. 'guest' is a forbidden value for the login name parameter in this procedure.
Respostas:
O usuário "convidado" nunca é atribuído a um login do servidor, mesmo em uma nova instalação, é classificado como um usuário SQL sem um login. Como você só pode definir o SID de um login (na criação), e não um usuário, não acredito que isso seja possível; sp_change_users_login não funciona exatamente porque a conta de convidado nunca deve ser mapeada para um logon do servidor. Como resultado, o usuário "convidado" é sempre um usuário órfão. Provavelmente não é a resposta que você queria :)
fonte
sp_change_users_login
relatório?Meus pensamentos ... A razão
sp_change_users_login
está lançando esse erro é porque a Microsoft também o escreveu. [Examinar o código de procedimento do sistema de vez em quando pode ser divertido. :)] No entanto, o fato de ele aparecer ao executar o relatório indica que alguém / algum processo mexeu com a conta ou um possível hotfix da MS poderia ter feito isso (você nunca sabe).A conta de convidado deve estar lá, existe em todos os bancos de dados criados, pois a conta existe no modelo por padrão. Fazer com que ele não apareça no relatório provavelmente exigiria que o SID fosse alterado novamente para,
0x00
eu acho. Enquanto a conta estiver desativada, eu a deixaria em paz e a ignoraria. Se realmente estivesse me incomodando, eu pagaria o dinheiro e ligaria com o suporte da Microsoft.fonte
guest
aparece nos resultados nesse caso.Portanto, há uma sequência de tarefas que você deve seguir
Eu coloquei um exemplo aqui espero que ajude:
fonte
guest
usuário. Veja a resposta acima por Mr.Brownstone.