PostgreSQL的用户、角色和权限管理

Pg权限分为两部分,一部分是“系统权限”或者数据库用户的属性,可以授予role或user(两者区别在于login权限);一部分为数据库对象上的操作权限。 超级用户不做权限检查,其它走acl。 对于数据库对象,开始只有所有者和超级用户可以做任何操作,其它走acl。在pg里,对acl模型做了简化,组和角色都是role,用户和角色的区别是角色没有login权限。 pg_roles: 该视图提供访问数据库角色有关信息的接口。这个视图只是pg_authid表的公开可读部分的视图化,同时把口令字段用空白填充。 该视图提供访问数据库角色有关信息的接口。这个视图只是pg_authid表的公开可读部分的视图化,同时把口令字段用空白填充。 名字 类型 引用 描述rolname name   角色名。rolsuper bool   是否有超级用户权限的角色。rolcreaterole bool   是否可以创建更多角色的角色。rolcreatedb bool   是否可以创建数据库的角色。rolcatupdate bool   是否可以直接更新系统表的角色。rolcanlogin bool   如果为真,表示是可以登录的角色。rolpassword text  …

Continue Reading PostgreSQL的用户、角色和权限管理

PostgreSQL创建只读用户,带步骤和删除

Eg:现有数据postgres,mytest,当前用户为root,schema为public,范例为创建对mytest库public下所有表只有查询权限的readonly用户 一.创建 创建只读用户:CREATE USER readonly WITH ENCRYPTED PASSWORD 'readonly';设置默认事务只读:alter user readonly set default_transaction_read_only=on;赋予用户连接数据库mytest的权限:GRANT CONNECT ON DATABASE mytest to readonly;切换到指定库mytest:\c mytest赋予用户表、序列查看权限,进入指定db运行:5.1. 把当前库现有的所有在public这个schema下的表的使用权限赋给用户readonlyGRANT USAGE ON SCHEMA public to readonly; 5.2. 默认把当前库之后新建在public这个schema下的表的使用权限赋给readonlyALTER DEFAULT…

Continue Reading PostgreSQL创建只读用户,带步骤和删除