PostgreSQL Role Management

PostgreSQL 数据库管理

首先需要知道Pg的数据库逻辑分层1. Database -> 2. Schema -> 3. Table; Pg 的用户有1.Superuser 2. User Group 3. User

1. 创建用户

create role name (create role 后面可以有很多options, 下面举一些例子 )

  1. create role name login (用户可以connect database, default create cannot login; CREATE USER is equivalent to CREATE ROLE WITH LOGIN)

  2. create role name with login createdb createrole (用户可以create role and create db )

  3. create role name with login password 'string'

  4. alter role name password string

2. 创建Group

(这里我们创建group:test, 以及两个role: dev1, dev2)

  1. create role user_group

  2. create role dev1 with login

  3. create role dev2 with login

  4. grant test to dev1 (向test添加成员)

  5. grant test to dev2

lmy=# \du                                   List of roles Role name |                         Attributes                         | Member of -----------+------------------------------------------------------------+----------- dev1      |                                                            | {test} dev2      |                                                            | {test} lmy       | Superuser, Create role, Create DB, Replication, Bypass RLS | {} test      | Cannot login                                               | {}
  1. revoke test from dev2 (从test移出成员)
lmy=# revoke test from dev2;REVOKE ROLElmy=# \du                                   List of roles Role name |                         Attributes                         | Member of -----------+------------------------------------------------------------+----------- dev1      |                                                            | {test} dev2      |                                                            | {} lmy       | Superuser, Create role, Create DB, Replication, Bypass RLS | {} test      | Cannot login
  1. Group 的设计就是为了方便权限的管理, 所以成员可以继承group的一些权限

属性: superuser createdb createrole login password 是不会被继承的

grant all on schema.table to role

  1. grant all on all tables in schema schema to role

  2. revoke all on schema.table to role

  3. revoke all on all tables in schema schema to role

Database 管理
  1. Pg的database 默认是任意可以login 的role 都可以access, 若要进行限制
    REVOKE connect ON DATABASE database FROM PUBLIC;

关键字:产品经理

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部