The TRUSTWORTHY
Pengaturan bisa lebih berbahaya jika Anda tidak hati-hati dan kecuali untuk keadaan tertentu rekomendasinya adalah untuk tetap dimatikan. Namun secara default MSDB
database telah TRUSTWORHTY
ditetapkan ON
secara default. Saya penasaran kenapa?
Saya sudah membaca entri ini di BOL
Catatan Secara default, pengaturan TRUSTWORTHY diatur ke AKTIF untuk database MSDB. Mengubah pengaturan ini dari nilai defaultnya dapat mengakibatkan perilaku yang tidak terduga oleh komponen SQL Server yang menggunakan database MSDB.
Tapi saya ingin tahu tentang spesifikasinya. Mengapa secara khusus MSDB
perlu TRUSTWORTHY
dihidupkan? Fungsi apa yang menggunakannya?
sql-server
sql-server-2008-r2
sql-server-2012
sql-server-2014
security
Kenneth Fisher
sumber
sumber
TRUSTWORTHY
ke OFF untukmsdb
melihat apa yang berhenti berfungsi dan Anda akan memiliki setidaknya sebagian dari jawabannya :). Saya pikir CADANGAN akan memiliki masalah tetapi saya hanya mencoba dan berhasil.Jawaban:
Ada lusinan objek dalam
msdb
referensi itumaster
database.Jika msdb tidak ditandai
TRUSTWORTHY
, maka pengguna akan memerlukan izin untuk keduamsdb
objek yang berinteraksi dengan mereka, ditambahmaster
objek yang sedang direferensikan.Sebagai contoh, pengguna msdb yang mendapatkan izin melalui peran database SQLAgentUserRole diberikan untuk dieksekusi
msdb.dbo.sp_enum_sqlagent_subsystems
. Tumpukan panggilan untuk prosedur itu akhirnya mengenaimaster
:Jika
msdb
tidak ditandai sebagaiTRUSTWORTHY
, maka pengguna yang merupakan bagian dari peran basis data SQLAgentUserRole JUGA perlu mengeksekusimaster.dbo.xp_instance_regread
.Secara teknis, mungkin untuk menghapus
TRUSTWORTHY
pengaturanmsdb
dan bukannya memberikan izin khusus dimaster
. Namun, izin yang diperlukan itu tidak didokumentasikan atau didukung.sumber