创建用户

创建一个用户。

注意事项

  • 通过CREATE USER创建的用户,默认具有LOGIN权限;
  • 通过CREATE USER创建用户的同时系统会在执行该命令的数据库中,为该用户创建一个同名的SCHEMA;其他数据库中,则不自动创建同名的SCHEMA;用户可使用CREATE SCHEMA命令,分别在其他数据库中,为该用户创建同名SCHEMA。
  • 系统管理员在普通用户同名schema下创建的对象,所有者为schema的同名用户(非系统管理员)。

语法格式

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

其中option子句用于设置权限及属性等信息。

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

示例

  1. --创建用户jim,登录密码为Bigdata@123
  2. postgres=# CREATE USER jim PASSWORD 'Bigdata@123';
  3. --下面语句与上面的等价。
  4. postgres=# CREATE USER kim IDENTIFIED BY 'Bigdata@123';
  5. --如果创建有“创建数据库”权限的用户,则需要加CREATEDB关键字。
  6. postgres=# CREATE USER dim CREATEDB PASSWORD 'Bigdata@123';
  7. --将用户jim的登录密码由Bigdata@123修改为Abcd@123
  8. postgres=# ALTER USER jim IDENTIFIED BY 'Abcd@123' REPLACE 'Bigdata@123';
  9. --为用户jim追加CREATEROLE权限。
  10. postgres=# ALTER USER jim CREATEROLE;
  11. --将enable_seqscan的值设置为on 设置成功后,在下一会话中生效。
  12. postgres=# ALTER USER jim SET enable_seqscan TO on;
  13. --重置jimenable_seqscan参数。
  14. postgres=# ALTER USER jim RESET enable_seqscan;
  15. --锁定jim帐户。
  16. postgres=# ALTER USER jim ACCOUNT LOCK;
  17. --删除用户。
  18. postgres=# DROP USER kim CASCADE;
  19. postgres=# DROP USER jim CASCADE;
  20. postgres=# DROP USER dim CASCADE;