CREATE ROLE name [ [ WITH ] option [ ... ] ]where option can be:SUPERUSER | NOSUPERUSER| CREATEDB | NOCREATEDB| CREATEROLE | NOCREATEROLE| INHERIT | NOINHERIT| LOGIN | NOLOGIN| REPLICATION | NOREPLICATION| BYPASSRLS | NOBYPASSRLS| CONNECTION LIMIT connlimit| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL| VALID UNTIL 'timestamp'| IN ROLE role_name [, ...]| IN GROUP role_name [, ...]| ROLE role_name [, ...]| ADMIN role_name [, ...]| USER role_name [, ...]| SYSID uid
角色 | 允许的操作 |
pg_execute_server_program | 允许通过部分能够执行操作语句的函数或者功能去执行相应的操作系统语句。 |
pg_monitor | 读取和执行与监控相关的函数或视图的权限,这个角色包含 pg_read_all_settings、 pg_read_all_stats 和 pg_stat_scan_tables。 |
pg_read_all_settings | 读取所有配置信息,包括部分 superuser 才能看到的信息。 |
pg_read_all_stats | 阅读所有 pg_stat_* 视图并使用各种与统计相关的扩展,包括部分 superuser 才可见的信息。 |
pg_read_server_files | 允许通过 copy 或者文件访问的函数读取数据库所在服务器的一些拥有权限的文件。 |
pg_signal_backend | 可以通过向后端发出指令使某一个会话启动或者停止。 |
pg_stat_scan_tables | 执行可能需要长时间锁定表(ACCESS SHARE 锁)的监控功能。 |
pg_write_server_files | 允许通过 copy 或者文件访问的函数写入数据库所在服务器的一些拥有权限的文件。 |
public | 隐藏角色,代表所有人,如果赋予一个权限给 public,那么所有角色就拥有了此权限。有一些对象是有赋予给 public 角色默认权限的。 |
权限 | 缩写 | 支持的对象 |
SELECT | r (“read”) | LARGE OBJECT、SEQUENCE、TABLE (and table-like objects)、table column |
INSERT | a (“append”) | TABLE、table column |
UPDATE | w (“write”) | LARGE OBJECT、SEQUENCE、TABLE、table column |
DELETE | d | TABLE |
TRUNCATE | D | TABLE |
REFERENCES | x | TABLE、table column |
TRIGGER | t | TABLE |
CREATE | C | DATABASE、SCHEMA、TABLESPACE |
CONNECT | c | DATABASE |
TEMPORARY | T | DATABASE |
EXECUTE | X | FUNCTION、PROCEDURE |
USAGE | U | DOMAIN、FOREIGN DATA WRAPPER、FOREIGN SERVER、LANGUAGE、SCHEMA、SEQUENCE、TYPE |
对象类型 | 所有权限 | 默认角色 Pubilc 的权限 | psql 查看权限的命令 |
DATABASE | CTc | Tc | \\l |
DOMAIN | U | U | \\dD+ |
FUNCTION or PROCEDURE | X | X | \\df+ |
FOREIGN DATA WRAPPER | U | none | \\dew+ |
FOREIGN SERVER | U | none | \\des+ |
LANGUAGE | U | U | \\dL+ |
LARGE OBJECT | rw | none | - |
SCHEMA | UC | none | \\dn+ |
SEQUENCE | rwU | none | \\dp |
TABLE (and table-like objects) | arwdDxt | none | \\dp |
Table column | arwx | none | \\dp |
TABLESPACE | C | none | \\db+ |
TYPE | U | U | \\dT+ |
postgres=# \\dpAccess privilegesSchema | Name | Type | Access privileges | Column privileges | Policies--------+------+-------+-------------------+-------------------+----------public | t1 | table | test1=arwdDxt/test1 | |(1 rows)postgres=# grant select on t1 to normal_user;GRANTpostgres=# grant insert on t1 to normal_user with grant option;GRANTpostgres=# grant update on t1 to public;GRANTpostgres=# grant select (a) on t1 to test2;GRANTpostgres=# \\dpAccess privilegesSchema | Name | Type | Access privileges | Column privileges | Policies--------+------+-------+-----------------------+-------------------+----------public | t1 | table | test1=arwdDxt/test1 +| a: +|| | | normal_user=a*r/test1+| test2=r/test1 || | | =w/test1 | |(1 rows)-- =w/test1 表示 test1 授予了 public 角色 UPDATE 权限
本页内容是否解决了您的问题?