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?
sql-server
sql-server-2005
JustinStolle
sumber
sumber
0x3C2E66759FFBC14F84127D6795C27FD3
ganti0x00
Terminating this procedure. 'guest' is a forbidden value for the login name parameter in this procedure.
Jawaban:
Pengguna "tamu" tidak pernah ditugaskan untuk login server, bahkan pada instalasi baru itu diklasifikasikan sebagai pengguna SQL tanpa login. Karena Anda hanya dapat mengatur SID dari login (saat pembuatan), dan bukan pengguna, saya tidak percaya bahwa ini mungkin; sp_change_users_login tidak berfungsi dengan tepat karena akun tamu tidak boleh dipetakan ke login server. Akibatnya, pengguna "tamu" selalu menjadi pengguna yatim. Mungkin bukan jawaban yang Anda inginkan :)
sumber
sp_change_users_login
laporan?Pikiranku ... Alasannya
sp_change_users_login
melemparkan kesalahan itu adalah karena MS juga menulisnya. [Melihat-lihat kode prosedur sistem sesekali bisa menyenangkan. :)] Namun fakta bahwa itu muncul ketika menjalankan laporan menunjukkan bahwa seseorang / beberapa proses mengacaukan akun, atau kemungkinan perbaikan terbaru dari MS bisa melakukannya (Anda tidak pernah tahu).Akun tamu seharusnya ada di sana, itu ada di setiap basis data yang dibuat karena akun ada dalam model secara default. Membuatnya tidak muncul dalam laporan mungkin akan memerlukan mendapatkan bahwa SID diubah kembali ke
0x00
saya kira. Selama akun dinonaktifkan, saya akan membiarkannya dan mengabaikannya. Jika itu benar-benar mengganggu saya, saya akan mengeluarkan uang dan menelepon dengan dukungan Microsoft.sumber
guest
muncul dalam hasil dalam kasus ini.Jadi ada urutan tugas yang harus Anda ikuti
Saya memberi contoh di sini berharap ini akan membantu:
sumber
guest
pengguna. Lihat jawaban di atas oleh Mr.Brownstone.