Secara default, di SQL Server, [public]
peran memiliki EXECUTE
hak aktif sp_executesql
.
Namun, saya telah mewarisi server database di mana DBA sebelumnya telah mencabut EXECUTE
haknya sp_executesql
.
Sebagai solusi sementara, saya telah memberikan EXECUTE
hak sp_executesql
atas dasar yang diperlukan (melalui peran dalam database master). Tapi ini mulai menjadi sakit pemeliharaan.
Jika saya memberikan EXECUTE
kembali kepada publik, apakah ada dampak yang perlu saya ketahui?
sql-server
security
permissions
AlexLostDba
sumber
sumber
sp_executesql
. Dengan asumsi persyaratan SQL dinamis maka penonaktifansp_executesql
sebenarnya dapat meningkatkan risiko sebagai setidaknya yang memungkinkan Anda untuk parameterisasi pertanyaan (tidak sepertiEXEC
)sp_executesql
bukanlah mitigasi yang tepat. Mayoritas kesalahan injeksi SQL terjadi pada klien ketika pernyataan SQL dibuat 'dengan tangan' dengan menggabungkan potongan-potongan SQL dengan variabel input dan kemudian mengeksekusi 'apa adanya'. Untuk semua kasussp_executesql
yang dinonaktifkan tidak membantu.