1
我有一個PostgreSQL數據庫。我創造新的只讀用戶如下:在創建角色上創建觸發器
$ sudo -upostgres psql postgres
postgres=# CREATE ROLE readonly;
postgres=# GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
postgres=# BEGIN;
postgres=# CREATE ROLE "<PUT_READONLY_USERNAME_HERE>" WITH LOGIN ENCRYPTED PASSWORD '<USE_A_NICE_STRONG_PASSWORD_PLEASE' IN ROLE readonly;
postgres=# COMMIT;
而且我有一個表「is_admin」在那裏我手動添加新用戶(碰巧真的很少)。如果它是隻讀用戶users.is_admin = false
,並且它是全部用戶的用戶users.is_admin = tru
e。
users.oid users.is_admin (bool) 1 true 2 false 3 false ... ...
然後在代碼中,我檢查,如果用戶是管理員或不與此查詢:
SELECT users.is_admin
FROM users.users
JOIN pg_authid ON pg_authid.oid = users.oid::oid
WHERE rolname = "PUT_ROLNAME";
所以,主要的問題是如何自動添加新用戶「is_admin」表?我讀過這樣的觸發器或者像這樣可以幫助我(例如,觸發ON CREATE ROLE)。
非常感謝! – 2015-02-10 18:16:53