Apa yang dapat dilakukan, jika ada, ketika guest
pengguna khusus menjadi yatim (tidak tertaut ke info masuk mana pun)?
Untuk salah satu database saya (SQL Server 2005), mengeksekusi daftar berikut pengguna tamu sebagai pengguna yatim.
exec sp_change_users_login 'report'
Hasil:
UserName UserSID
guest 0x3C2E66759FFBC14F84127D6795C27FD3
Jika saya mencoba memperbaiki pengguna tamu menggunakan prosedur itu, saya mendapatkan yang berikut:
exec sp_change_users_login 'update_one', 'guest', 'guest'
Mengakhiri prosedur ini. 'guest' adalah nilai terlarang untuk parameter nama login dalam prosedur ini.
Jika saya mencoba menghapus pengguna, saya mendapatkan:
Pengguna 'tamu' tidak dapat dijatuhkan, itu hanya dapat dinonaktifkan.
select * from sys.database_principals where name = 'guest'
Hasil dalam:
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
Basis data tampaknya bingung apakah ini pengguna khusus atau bukan. Adakah yang bisa dilakukan?
Terminating this procedure. 'guest' is a forbidden value for the login name parameter in this procedure.
0x3C2E66759FFBC14F84127D6795C27FD3
ganti0x00