postgres 数据库 创建用户与权限配置
–首先使用超级用户,比如postgres登录数据库
[root@postgres-01 ~]# su - postgres
上一次登录:二 11月 16 10:51:01 CST 2021pts/1 上
-bash-4.2$ psql
psql (11.5)
输入 "help" 来获取帮助信息.
postgres=#
一 创建用户
CREATE USER testuser WITH PASSWORD 'Asdfg12345';
create user cs password 'Asdfg12345';
授权全部
1.将数据库所有权限授权于 testuser
GRANT ALL PRIVILEGES ON DATABASE 数据库名 TO testuser;
2.将schema cs 的 使用权限给用户 usre
GRANT USAGE ON SCHEMA cs to usre;
3.将schema下所有表权限授权于 testuser
GRANT ALL PRIVILEGES ON all tables in schema public TO testuser;
4.给css用户授予cs2库下css模块下所有表和视图的默认权限
ALTER DEFAULT PRIVILEGES IN SCHEMA css GRANT all ON TABLES TO css;
授权部分权限
- 将数据库连接权限授权于 testuser
GRANT CONNECT ON DATABASE 数据库名 to testuser;
- 将schema的usage权限授权于 testuser(具体其他权限需要添加看权限说明)
GRANT USAGE ON SCHEMA public to testuser;
- 将schema为public下的某个表的查询权限授权于 testuser(具体其他权限需要添加看权限说明)
GRANT SELECT on public.tb_base_cs_表名 to testuser;
- 给cs用户授予库下cs模块下所有表和视图的全部权限
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA cs TO cs;
- 给cs用户授予库下cs模块下所有表和视图的默认权限
ALTER DEFAULT PRIVILEGES IN SCHEMA cs GRANT all ON TABLES TO cs;
- 给cs用户授予库下cs模块下所有表的查询权限
grant select ON ALL TABLES IN SCHEMA cs to cs;
权限移除
1.移除testuser用户对于public下所有表的所有权限
REVOKE ALL PRIVILEGES ON all tables in schema public FROM testuser;
2.移除testuser用户对于public的使用权限
REVOKE Usage ON SCHEMA "public" FROM "testuser";
3.移除testuser用户对于cs数据库所有权限
REVOKE ALL PRIVILEGES ON DATABASE cs FROM testuser;
4.移除testuser用户对于tb_base_cs_表名 表的查询权限
REVOKE SELECT ON public.tb_base_cs_表名 FROM testuser;