PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Berikan semua pada skema tertentu di db ke peran grup di PostgreSQL

Anda menemukan singkatan untuk menyetel hak istimewa untuk semua yang ada tabel dalam skema yang diberikan. Manual menjelaskan:

(tetapi perhatikan bahwa ALL TABLES dianggap menyertakan tampilan dan tabel asing ).

Penekanan saya yang berani. serial kolom diimplementasikan dengan nextval() pada urutan sebagai kolom default dan, mengutip manual:

Untuk urutan, hak istimewa ini memungkinkan penggunaan currval dan nextval fungsi.

Jadi jika ada serial kolom, Anda juga ingin memberikan USAGE (atau ALL PRIVILEGES ) pada urutan

GRANT USAGE ON ALL SEQUENCES IN SCHEMA foo TO mygrp;

Catatan:kolom identitas di Postgres 10 atau yang lebih baru menggunakan urutan implisit yang tidak memerlukan hak istimewa tambahan. (Pertimbangkan untuk meningkatkan serial kolom.)

Bagaimana dengan baru objek?

Anda juga akan tertarik dengan DEFAULT PRIVILEGES untuk pengguna atau skema:

ALTER DEFAULT PRIVILEGES IN SCHEMA foo GRANT ALL PRIVILEGES ON TABLES TO staff;
ALTER DEFAULT PRIVILEGES IN SCHEMA foo GRANT USAGE          ON SEQUENCES TO staff;
ALTER DEFAULT PRIVILEGES IN SCHEMA foo REVOKE ...;

Ini menetapkan hak istimewa untuk objek yang dibuat di masa mendatang secara otomatis - tetapi tidak untuk objek yang sudah ada sebelumnya.

Hak istimewa default hanya diterapkan ke objek yang dibuat oleh pengguna yang ditargetkan (FOR ROLE my_creating_role ). Jika klausa itu dihilangkan, defaultnya adalah pengguna saat ini yang menjalankan ALTER DEFAULT PRIVILEGES . Lebih jelasnya:

ALTER DEFAULT PRIVILEGES FOR ROLE my_creating_role IN SCHEMA foo GRANT ...;
ALTER DEFAULT PRIVILEGES FOR ROLE my_creating_role IN SCHEMA foo REVOKE ...;

Perhatikan juga bahwa semua versi pgAdmin III memiliki bug halus dan tampilan hak istimewa default di panel SQL, meskipun tidak berlaku untuk peran saat ini. Pastikan untuk menyesuaikan FOR ROLE klausa secara manual saat menyalin skrip SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara terbaik untuk menginstal hstore pada banyak skema dalam database Postgres?

  2. Apakah kueri jenis SELECT satu-satunya jenis yang dapat disarangkan?

  3. Tuple tidak dimasukkan secara berurutan dalam tabel database?

  4. Mengacu pada variabel sesi (\set var='value') dari PL/PGSQL

  5. kesalahan perintah util alembic tidak dapat menemukan pengidentifikasi