博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
postgresql 角色 用户区别
阅读量:6588 次
发布时间:2019-06-24

本文共 3946 字,大约阅读时间需要 13 分钟。

hot3.png

1、CREATE ROLE创建的用户默认不带LOGIN属性,而CREATE USER创建的用户默认带有LOGIN属性,如下:

postgres=# CREATE ROLE pg_test_user_1; /*默认不带LOGIN属性*/  CREATE ROLE  postgres=# CREATE USER pg_test_user_2; /*默认具有LOGIN属性*/  CREATE ROLE  postgres=# \du                 List of roles     Role name    |  Attributes  | Member of  ----------------+--------------+-----------   pg_test_user_1 | Cannot login | {}   pg_test_user_2 |              | {}   postgres       | Superuser    | {}                  : Create role                  : Create DB

2、在创建用户时赋予角色属性

postgres=# CREATE  ROLE pg_test_user_3 CREATEDB;   /*具有创建数据库的属性*/  CREATE ROLE  postgres=# \du                 List of roles     Role name    |  Attributes  | Member of  ----------------+--------------+-----------   pg_test_user_1 | Cannot login | {}   pg_test_user_2 |              | {}   pg_test_user_3 | Create DB    | {}                  : Cannot login   postgres       | Superuser    | {}                  : Create role                  : Create DB    postgres=# CREATE ROLE pg_test_user_4 CREATEDB PASSWORD '123456'; /*具有创建数据库及带有密码登陆的属性 */    CREATE ROLE  postgres=# \du                 List of roles     Role name    |  Attributes  | Member of  ----------------+--------------+-----------   pg_test_user_1 | Cannot login | {}   pg_test_user_2 |              | {}   pg_test_user_3 | Create DB    | {}                  : Cannot login   pg_test_user_4 | Create DB    | {}                  : Cannot login   postgres       | Superuser    | {}                  : Create role                  : Create DB

3、给已存在用户赋予各种权限

     使用ALTER ROLE即可。

postgres=# \du                 List of roles     Role name    |  Attributes  | Member of  ----------------+--------------+-----------   pg_test_user_3 | Create DB    | {}                  : Cannot login   pg_test_user_4 | Create DB    | {}                  : Cannot login   postgres       | Superuser    | {}                  : Create role                  : Create DB    postgres=# ALTER ROLE pg_test_user_3 WITH LOGIN; /*赋予登录权限*/  ALTER ROLE  postgres=# \du                 List of roles     Role name    |  Attributes  | Member of  ----------------+--------------+-----------   pg_test_user_3 | Create DB    | {}   pg_test_user_4 | Create DB    | {}                  : Cannot login   postgres       | Superuser    | {}                  : Create role                  : Create DB    postgres=# ALTER ROLE pg_test_user_4 WITH CREATEROLE;/*赋予创建角色的权限*/  ALTER ROLE  postgres=# \du                 List of roles     Role name    |  Attributes  | Member of  ----------------+--------------+-----------   pg_test_user_3 | Create DB    | {}   pg_test_user_4 | Create role  | {}                  : Create DB                  : Cannot login   postgres       | Superuser    | {}                  : Create role                  : Create DB    postgres=# ALTER ROLE pg_test_user_4 WITH PASSWORD '654321';/*修改密码*/  ALTER ROLE  postgres=# ALTER ROLE pg_test_user_4 VALID UNTIL 'JUL 7 14:00:00 2012 +8'; /*设置角色的有效期*  ALTER ROLE

4、查看角色表中的信息:

postgres=# SELECT * FROM pg_roles;      rolname     | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcatupdate | rolcanlogin | rolconnlimit | rolpassword |     rolvaliduntil      | rol  config |  oid  ----------------+----------+------------+---------------+-------------+--------------+-------------+--------------+-------------+------------------------+----  -------+-------   postgres       | t        | t          | t             | t           | t            | t           |           -1 | ********    |                        |         |    10   pg_test_user_3 | f        | t          | f             | t           | f            | t           |           -1 | ********    |                        |         | 16390   pg_test_user_4 | f        | t          | t             | t           | f            | f           |           -1 | ********    | 2012-07-07 14:00:00+08 |         | 16391  (3 rows)

转载于:https://my.oschina.net/u/1452657/blog/205610

你可能感兴趣的文章
Python的条件判断与循环样例
查看>>
C++用new来创建对象和非new来创建对象的区别
查看>>
mybaties中通用mapper的基本使用
查看>>
RDMA参考
查看>>
几维安全:千锤百炼,锻造移动游戏安全防护黄金铠甲
查看>>
把巧克力球送上天,玛氏用Uni Marketing 打造网红零食
查看>>
JVM 规范小结
查看>>
gatling系列教程(翻译)-第三节(快速开始)
查看>>
新一代视频AI服务 —— 阿里云智能视觉重磅发布
查看>>
阿里小二的日常工作要被TA们“接管”了!
查看>>
数据结构与算法14-栈和队列练习题
查看>>
JEESZ-SSO解决方案
查看>>
RS-232、RS422和RS-485的区别和各自的实现方式
查看>>
Java程序员面试失败的5大原因
查看>>
深入理解Java的分级引用模型
查看>>
PyCharm入门教程——在编辑器中选择文本
查看>>
2.2 流程控制-for序列 2.3 流程控制-for字典 2.4 循环退出 2.5 流程控制-while
查看>>
多币种钱包开发:什么是工作量证明(POW)?
查看>>
kotlin使用mapstruct(二)
查看>>
树形结构的数据库表Schema设计
查看>>