postgresql 权限设置

2020-06-17 00:00:00 专区 这条 名字 如果没有 疑问

疑问1:关于postgresql中系统表在什么地方

疑问2:还有那些常用的系统表和好玩的权限设置,

疑问3:还有下面有什么错误,请各位指出

数据库权限创建user和role

create role cxl password '123456';

这条数据的记录存在于表:select * from pg_roles,对应的删除drop role cxl

create user cxl password '123456';

这条记录存在于 :select * from pg_user,对应删除drop user cxl

区别是:默认建立的user 可以登录到数据库中,默认建立的role是无法登陆数据库的。不过可以给role添加登陆的权限

可以:alter role cxl with login;

或在创建的时候:create role cxl with login password '123456'

不过有时候为了后期项目的扩展,需要添加search_path给role或者user,这样在再连接数据库的时候就可以不用写成 schema.table这种形式的名字, 以后对于项目切schema会很多方便。

所以如果没有写成schema.table的形式,如果没有grant给用户设置search_path就会出现明明有数据库,但是就是报错not exist问题,此时就需要授权给用户管理的schema。命令如下。

grant all on all tables in schema (schema名字参数) to cxl

alter user cxl set search_path to database名字。

补充:grant all privileges on database database名字 to user名字。

相关文章