我可以在 postgresql 中创建一个角色。
CREATE ROLE myname WITH LOGIN PASSWORD 'pass';我可以为该用户设置数据库模式的权限。
GRANT USAGE ON SCHEMA public TO myname;并选择用户的权限。
GRANT SELECT ON ALL TABLES IN SCHEMA public TO myname;但是我的数据库中有很多用户。我不想为我的所有用户设置这些权限。其实我想创建角色组名:
并将
viewer在所有表上选择特权,在所有表
editor上选择、插入和更新特权。
我的用户将在这些组中。
我怎样才能做到这一点?
Vao*_*sun 13
CREATE ROLE viewer;
CREATE ROLE editor;
CREATE ROLE admin;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO viewer;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO viewer;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT,INSERT,UPDATE ON TABLES TO editor;
GRANT some_other_privs_to_admin_group
Run Code Online (Sandbox Code Playgroud)
之后,只需将组授予用户:
GRANT editor TO your_user;
Run Code Online (Sandbox Code Playgroud)
等等
https://www.postgresql.org/docs/current/static/sql-alterdefaultprivileges.html https://www.postgresql.org/docs/current/static/sql-createrole.html
CREATE ROLE 向 PostgreSQL 数据库集群添加一个新角色。角色是可以拥有数据库对象并拥有数据库权限的实体;角色可以被视为“用户”、“组”或两者,具体取决于它的使用方式。
和
可以将具有 LOGIN 属性的角色视为用户。没有此属性的角色对于管理数据库权限很有用
正是出于这个原因,建议使用“组”,即NOLOGIN您向其中添加用户(通过向他们授予角色)的角色(通常带有 )。
在你的情况下:
CREATE ROLE viewer;
GRANT <whatever> TO viewer;
GRANT viewer TO myname;
Run Code Online (Sandbox Code Playgroud)
然后myname将享受授予 的所有权限viewer,并且您不必为每个用户授予和撤销权限而烦恼。
| 归档时间: |
|
| 查看次数: |
8316 次 |
| 最近记录: |