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