2019/08/14

[postgres] 建立及移除 readonly 權限的帳號

在 postgres 建立 readonly 權限的帳號,該帳號只能讀取特定的 table,步驟如下。
經由 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;
Reference
https://www.postgresql.org/docs/9.6/sql-grant.html
https://tableplus.io/blog/2018/04/postgresql-how-to-create-read-only-user.html

沒有留言:

張貼留言