經由 psql 用有 CREATEROLE 權限的使用者或是超級使用者登入,連線至資料庫後,開始操作。
-- 新增一角色,名為 readonly
CREATE ROLE readonly WITH LOGIN PASSWORD 'readonly';
-- 用 GRANT 來建立權限給該 readonly
-- 給予連線到資料庫及 schema 的權限
GRANT CONNECT ON DATABASE example TO readonly;
GRANT USAGE ON SCHEMA public TO readonly;
-- 給予在 TABLE ex 有 SELECT 權限
GRANT SELECT ON ex TO readonly;
若要移除該帳號或權限時,使用 REVOKE。-- 移除權限
-- 移除在 TABLE ex 的所有權限
REVOKE ALL ON TABLE ex FROM readonly;
-- 移除連線到資料庫及 schema 的權限
REVOKE ALL ON SCHEMA public FROM readonly;
REVOKE ALL ON DATABASE example FROM readonly;
-- 移除該 USER
DROP USER readonly;
Referencehttps://www.postgresql.org/docs/9.6/sql-grant.html
https://tableplus.io/blog/2018/04/postgresql-how-to-create-read-only-user.html
沒有留言:
張貼留言