登录命令行
sudo su - postgres #默认创建了postgres用户
psql
创建用户
CREATE USER qinyi WITH PASSWORD '123456';
创建数据库
create DATABASE test OWNER qinyi;
创建模式
CREATE schema api OWNER qinyi;
查看帮助
\?
查看数据库列表
\l
查看模式列表
\dn
public模式实际上是指pg_catalog,information_schema
查看模式下的表列表
\dt *.* #查看所有模式下的所有表
\dt pg_catalog.* #查看pg_catalog下面的所有表
\dt publice.* 会报错,原因是没有这个模式
查看当前模式
show search_path;
切换当前模式
set search_path=api;
show search_path;
查询所有角色
select * from pg_roles;
查询所有用户
select * from pg_user;
查看某用户有哪些权限
select * from information_schema.role_table_grants where grantee='qinyi';
查看某个表被哪些用户拥有哪些权限
\z api.book;
Access privileges 代表的含义如下
授予权限
# 给用户 qinyi 授予 api.book 表的 select 权限
grant select on api.book to qinyi;
# 给用户 qinyi 授予 api.book 表的 insert,update,delete 权限
grant insert,update,delete on api.book to qinyi;
# 给用户 qinyi 授予 api.book 表的 所有 权限
grant all on api.book to qinyi;
# 给用户 qinyi 授予 api.book 表的 主键自增的 select 权限
grant usage, select on sequence api.book_id_seq to qinyi;
撤销权限
# 撤销用户 qinyi 对于 api.book 表的 select 权限
revoke select on api.book from qinyi;
# 撤销用户 qinyi 对于 api.book 表的 所有 权限
revoke all on api.book from qinyi;
查看表结构
\d api.book;
退出
\q