PostgreSQL使用角色来管理数据库的访问权限,数据库角色跟操作系统用户是不相关的,数据库角色只是用来管理数据库。
根据角色不同,一个角色可以看做是一个用户,或者一组用户。角色可以有数据库对象,例如表,视图,也可以把这些对象上的访问权限赋予其他角色,这样其他角色也可以访问不属于他自身的其他对象。
一、数据库角色
1.创建角色:
CREATE ROLE role_name;
2.删除角色:
DROP ROLE role_name;
3.查询角色:
检查系统表pg_roles,如:
SELECT * FROM pg_roles;
也可以在psql中执行\du
命令列出所有角色。
二、角色属性
一个数据库角色可以有一系列属性,这些属性定义他的权限,以及与客户认证系统的交互。
1.登录权限:
只有具有LOGIN属性的角色才可以用于数据库连接,因此我们可以将具有该属性的角色视为登录用户,创建方法有如下两种:
CREATE ROLE role_name LOGIN PASSWORD '123‘;
CREATE USER user_name PASSWORD '123';
2.超级用户:
数据库的超级用户拥有该数据库的所有权限,为了安全起见,我们最好使用非超级用户完成我们的正常工作。和创建普通用户不同,创建超级用户必须是以