Apakah ada satu-liner yang memberikan izin SELECT ke pengguna baru postgresql?
Sesuatu yang akan mengimplementasikan pseudo-code berikut:
GRANT SELECT ON TABLE * TO my_new_user;
permissions
sql
postgresql
user-management
Adam Matan
sumber
sumber
default privileges
skema, di mana Anda membuat tabel: postgresql.org/docs/current/static/…public
untuk DB saat ini yang terhubung dengan Anda.Solusi (non-satu-liner) saya:
Jalankan dari pengguna istimewa, itu bekerja seperti pesona.
sumber
Ini dapat dilakukan dengan proses dua langkah.
Jalankan kueri ini:
Penggantian:
$foo
= nama pengguna tempat Anda ingin memberikan izin$bar
,$baz
= skema tempat Anda ingin memberikan izin (bisa berupa "publik")Itu akan memberi Anda daftar pertanyaan yang akan menghasilkan izin yang diperlukan. Salin output, rekatkan ke kueri lain, dan jalankan.
sumber
Inilah yang saya gunakan:
Saya merasa lebih alami untuk melakukan pemformatan dan di mana-klausa dalam sql ..
sumber
Saya akhirnya melakukan ini , dan berhasil:
sumber
Saya bekerja dengan postgres 8.4 dan untuk memberikan semua hak istimewa kepada pengguna, lakukan hal berikut:
sumber
salah satu cara untuk memperbaikinya adalah dengan menulis prosedur tersimpan. sayangnya tidak ada perintah "berikan segalanya untuk semua tabel" atau lebih. Anda benar-benar memerlukan prosedur atau skrip shell eksternal mungkin untuk membuat ini berfungsi.
sumber
Skrip (solusi satu baris) oleh Adam Matan sangat bagus ketika ada banyak skema, tetapi tidak berfungsi di mana nama skema atau nama tabel berisi huruf besar atau karakter khusus.
Versi yang dimodifikasi:
sumber