登录命令行

  1. sudo su - postgres #默认创建了postgres用户
  2. psql

创建用户

  1. CREATE USER qinyi WITH PASSWORD '123456';

创建数据库

  1. create DATABASE test OWNER qinyi;

创建模式

  1. CREATE schema api OWNER qinyi;

查看帮助

  1. \?

image.png

查看数据库列表

  1. \l

image.png

查看模式列表

  1. \dn

image.png

public模式实际上是指pg_catalog,information_schema

查看模式下的表列表

  1. \dt *.* #查看所有模式下的所有表
  2. \dt pg_catalog.* #查看pg_catalog下面的所有表

image.png

\dt publice.* 会报错,原因是没有这个模式

image.png

查看当前模式

  1. show search_path;

image.png

切换当前模式

  1. set search_path=api;
  2. show search_path;

image.png

查询所有角色

  1. select * from pg_roles;

image.png

查询所有用户

  1. select * from pg_user;

image.png

查看某用户有哪些权限

  1. select * from information_schema.role_table_grants where grantee='qinyi';

image.png

查看某个表被哪些用户拥有哪些权限

  1. \z api.book;

image.png

Access privileges 代表的含义如下

image.png

授予权限

  1. # 给用户 qinyi 授予 api.book 表的 select 权限
  2. grant select on api.book to qinyi;
  3. # 给用户 qinyi 授予 api.book 表的 insert,update,delete 权限
  4. grant insert,update,delete on api.book to qinyi;
  5. # 给用户 qinyi 授予 api.book 表的 所有 权限
  6. grant all on api.book to qinyi;
  7. # 给用户 qinyi 授予 api.book 表的 主键自增的 select 权限
  8. grant usage, select on sequence api.book_id_seq to qinyi;

撤销权限

  1. # 撤销用户 qinyi 对于 api.book 表的 select 权限
  2. revoke select on api.book from qinyi;
  3. # 撤销用户 qinyi 对于 api.book 表的 所有 权限
  4. revoke all on api.book from qinyi;

查看表结构

  1. \d api.book;

image.png

退出

  1. \q