PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

LỖI:quyền bị từ chối đối với tên bảng quan hệ trên Postgres trong khi thử SELECT với tư cách người dùng chỉ đọc

Đây là giải pháp hoàn chỉnh cho PostgreSQL 9+, được cập nhật gần đây.

CREATE USER readonly  WITH ENCRYPTED PASSWORD 'readonly';
GRANT USAGE ON SCHEMA public to readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly;

-- repeat code below for each database:

GRANT CONNECT ON DATABASE foo to readonly;
\c foo
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly; --- this grants privileges on new tables generated in new database "foo"
GRANT USAGE ON SCHEMA public to readonly; 
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;

Cảm ơn https://jamie.curle.io/creating-a-read-only-user-in-postgres/ về một số khía cạnh quan trọng

Nếu bất kỳ ai tìm thấy mã ngắn hơn và tốt nhất là mã có thể thực hiện điều này cho tất cả các cơ sở dữ liệu hiện có, hãy bổ sung thêm kudo.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo đối tượng `DataSource` cho Postgres JDBC, theo chương trình

  2. Cách sao lưu và khôi phục cơ sở dữ liệu PostgreSQL qua DBeaver

  3. Có thể thay đổi thứ tự tự nhiên của các cột trong Postgres không?

  4. Làm cách nào để tôi có thể nhập dữ liệu từ ASCII (ISO / IEC 8859-1) vào cơ sở dữ liệu Rails / PGSQL của mình?

  5. tệp postgres db - tệp nào đại diện cho bảng / chỉ mục cụ thể?