postgresql 权限设置
疑问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名字。
相关文章