创建角色

创建角色。

角色是拥有数据库对象和权限的实体。在不同的环境中角色可以认为是一个用户,一个组或者兼顾两者。

注意事项

  • 在数据库中添加一个新角色,角色无登录权限。
  • 创建角色的用户必须具备CREATE ROLE的权限或者是系统管理员。

语法格式

  1. CREATE ROLE role_name [ [ WITH ] option [ ... ] ] [ ENCRYPTED | UNENCRYPTED ] { PASSWORD | IDENTIFIED BY } { 'password' | DISABLE };

其中角色信息设置子句option语法为:

  1. {SYSADMIN | NOSYSADMIN}
  2. | {AUDITADMIN | NOAUDITADMIN}
  3. | {CREATEDB | NOCREATEDB}
  4. | {USEFT | NOUSEFT}
  5. | {CREATEROLE | NOCREATEROLE}
  6. | {INHERIT | NOINHERIT}
  7. | {LOGIN | NOLOGIN}
  8. | {REPLICATION | NOREPLICATION}
  9. | {INDEPENDENT | NOINDEPENDENT}
  10. | {VCADMIN | NOVCADMIN}
  11. | CONNECTION LIMIT connlimit
  12. | VALID BEGIN 'timestamp'
  13. | VALID UNTIL 'timestamp'
  14. | RESOURCE POOL 'respool'
  15. | PERM SPACE 'spacelimit'
  16. | TEMP SPACE 'tmpspacelimit'
  17. | SPILL SPACE 'spillspacelimit'
  18. | IN ROLE role_name [, ...]
  19. | IN GROUP role_name [, ...]
  20. | ROLE role_name [, ...]
  21. | ADMIN rol e_name [, ...]
  22. | USER role_name [, ...]
  23. | SYSID uid
  24. | DEFAULT TABLESPACE tablespace_name
  25. | PROFILE DEFAULT
  26. | PROFILE profile_name
  27. | PGUSER

示例

  1. --创建一个角色,名为manager,密码为Bigdata@123
  2. postgres=# CREATE ROLE manager IDENTIFIED BY 'Bigdata@123';
  3. --创建一个角色,从201511日开始生效,到202611日失效。
  4. postgres=# CREATE ROLE miriam WITH LOGIN PASSWORD 'Bigdata@123' VALID BEGIN '2015-01-01' VALID UNTIL '2026-01-01';
  5. --修改角色manager的密码为abcd@123
  6. postgres=# ALTER ROLE manager IDENTIFIED BY 'abcd@123' REPLACE 'Bigdata@123';
  7. --修改角色manager为系统管理员。
  8. postgres=# ALTER ROLE manager SYSADMIN;
  9. --删除角色manager
  10. postgres=# DROP ROLE manager;
  11. --删除角色miriam
  12. postgres=# DROP ROLE miriam;