Berikan akses ke semua tabel database


13

Saya baru-baru ini ingin berbagi hak akses reguler dengan satu pengguna server dan saya menyadari bahwa perintah sederhana CREATE USERdan GRANT ALL ON DATABASEtidak membiarkannya menjalankan SELECTdata 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 publickarena saya tidak tahu apakah itu akan memberikan semacam hak istimewa. eskalasi. Apakah ada cara lain?


Kenapa kamu tidak bisa begitu saja GRANT SELECT ON TableName TO [Domain\User]? Saya biasanya hanya menetapkan pengguna ke db_datareaderperan jika yang mereka butuhkan adalah akses baca ke semua tabel tapi saya tidak yakin seberapa terperinci yang Anda inginkan.
Kris Gruttemeyer

Saya ingin memberikan semua CRUD ke semua tabel dalam database. Juga, MENGHENTIKAN dan MENCIPTAKAN bagian dalam basis data ini juga bisa terbukti bermanfaat.
d33tah

Jawaban:


19

Hak istimewa DATABASEhanya 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:

GRANT USAGE ON SCHEMA public TO myuser; -- more schemas?
GRANT SELECT ON ALL TABLES IN SCHEMA public TO myuser;

Anda mungkin juga ingin mengatur hak default untuk skema dan tabel di masa depan . Jalankan untuk setiap peran yang menciptakan objek di db Anda

ALTER DEFAULT PRIVILEGES FOR ROLE mycreating_user IN SCHEMA public
GRANT SELECT ON TABLES TO myuser;

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:


Apakah myusrsalah ketik? Bukankah seharusnya begitu myuser?
attomos

1
@attomos: Seharusnya pengguna yang berbeda dalam contoh. Saya mengklarifikasi.
Erwin Brandstetter
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.