Что можно сделать, если что-нибудь, когда специальный guest
пользователь осиротел (не связан ни с каким логином)?
Для одной из моих баз данных (SQL Server 2005) при выполнении следующего перечисляется гостевой пользователь как потерянный пользователь.
exec sp_change_users_login 'report'
Результаты:
UserName UserSID
guest 0x3C2E66759FFBC14F84127D6795C27FD3
Если я пытаюсь исправить гостевого пользователя с помощью этой процедуры, я получаю следующее:
exec sp_change_users_login 'update_one', 'guest', 'guest'
Прекращение этой процедуры. 'guest' - это запрещенное значение для параметра имени входа в этой процедуре.
Если я пытаюсь удалить пользователя, я получаю:
Пользователь 'guest' не может быть удален, его можно только отключить.
select * from sys.database_principals where name = 'guest'
Результаты в:
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
База данных, похоже, не понимает, является ли это специальный пользователь или нет. Есть ли что-нибудь, что можно сделать?
Terminating this procedure. 'guest' is a forbidden value for the login name parameter in this procedure.
0x3C2E66759FFBC14F84127D6795C27FD3
вместо0x00