Pg數據庫添加只讀用戶。


今天pg數據庫需要添加一個只讀用戶,由於在pgAdmin4中無法添加,遂用sql添加,遇到了一個大坑,很基礎的問題,只怪自己學藝不精,一次提醒自己;

注意;postgresql數據庫對大小寫不敏感!!!

CREATE USER test2 WITH ENCRYPTED PASSWORD 'test2';
alter user test2 set default_transaction_read_only=on;
GRANT USAGE ON SCHEMA public to test2;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO test2;

GRANT USAGE ON SCHEMA public to test2;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO test2;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO test2;

參考 內容;

創建用戶及指定密碼:

CREATE USER readonly WITH ENCRYPTED PASSWORD 'ropass';
設置用戶默認事務只讀:

alter user readonly set default_transaction_read_only=on;
賦予用戶權限,查看public模式下所有表:

GRANT USAGE ON SCHEMA public to readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly;
賦予用戶連接數據庫權限:

GRANT CONNECT ON DATABASE foo to readonly;
切換到指定數據庫:

\c 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;
postgresql創建只讀用戶
1.創建一個用戶名為readonly密碼為ropass的用戶
CREATE USER readonly WITH ENCRYPTED PASSWORD 'ropass';
 
2.用戶只讀事務
alter user readonly set default_transaction_read_only=on;
 
3.把所有庫的語言的USAGE權限給到readonly
GRANT USAGE ON SCHEMA public to readonly;      
 
4.授予select權限(這句要進入具體數據庫操作在哪個db環境執行就授予那個db的權)
 grant select on all tables in schema public to readonly;

這個是如何刪除的

https://blog.csdn.net/qq_37568918/article/details/85339277?utm_medium=distribute.pc_relevant_right.none-task-blog-OPENSEARCH-3.nonecase&depth_1-utm_source=distribute.pc_relevant_right.none-task-blog-OPENSEARCH-3.nonecase

https://www.cnblogs.com/liuyanerfly/p/10731271.html

https://blog.csdn.net/dhiivgzni65686145/article/details/101870382


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM