Saya baru-baru ini ingin berbagi hak akses reguler dengan satu pengguna server dan saya menyadari bahwa perintah sederhana CREATE USER
dan GRANT ALL ON DATABASE
tidak membiarkannya menjalankan SELECT
data sederhana .
Saya ingin memberikan hak ke semua tabel dari database yang diberikan kepada pengguna tertentu, tetapi saya tidak yakin apakah itu ide terbaik untuk memberinya akses ke seluruh skema public
karena saya tidak tahu apakah itu akan memberikan semacam hak istimewa. eskalasi. Apakah ada cara lain?
GRANT SELECT ON TableName TO [Domain\User]
? Saya biasanya hanya menetapkan pengguna kedb_datareader
peran jika yang mereka butuhkan adalah akses baca ke semua tabel tapi saya tidak yakin seberapa terperinci yang Anda inginkan.Jawaban:
Hak istimewa
DATABASE
hanya pada pemberian hak koneksi umum ke database dan tidak lebih. Seorang pengguna dengan hak istimewa itu hanya bisa melihat apa yang masyarakat umum boleh lihat.Untuk memberikan akses baca ke semua tabel , Anda juga memerlukan hak istimewa pada semua skema dan tabel:
Anda mungkin juga ingin mengatur hak default untuk skema dan tabel di masa depan . Jalankan untuk setiap peran yang menciptakan objek di db Anda
Tetapi Anda benar-benar perlu memahami keseluruhan konsep terlebih dahulu.
Dan hampir selalu lebih baik untuk menggabungkan hak istimewa dalam peran grup dan kemudian memberikan / mencabut peran grup ke / dari peran pengguna. Terkait:
sumber
myusr
salah ketik? Bukankah seharusnya begitumyuser
?