一个数据库角色可以有一系列属性,这些属性定义他的权限,以及与客户认证系统的交互。
登陆权限
只有具有LOGIN属性的角色才可以用作数据库连接的初始角色名。 一个带有LOGIN属性的角色可以认为 是和”数据库用户”相同的事物。 要创建一个具有登录权限的角色,可以用下列命令之一:
CREATE ROLE name LOGIN; CREATE USER name;
除了CREATE USER默认赋予登陆权限之外,CREATE USER 等价于CREATE ROLE(CREATE ROLE默认不 赋予)。
超级用户状态
数据库超级用户超越所有权限检查。这是一个需要谨慎使用的权限,建议大家最好使用非超级用户来完
成大多数工作
要创建数据库超级用户, 可用 CREATE ROLE name SUPERUSER 命令。 要执行这条命令,我们必须登 录已经是超级用户的角色来创建。
创建数据库
除超级用户以外,角色要想拥有创建数据库的权限,则必须明确给出。 我们可以用CREATE ROLE name
CREATEDB这样的命令来创建角色。 创建角色
除超级用户以外,一个角色要想拥有创建角色的权限,在创建这样的角色时,需要使用CREATE ROLE name CREATEROLE 命令。
一个带有CREATEROLE权限的角色也可以更改和删除其它角色, 以及给其它角色赋予或者撤销成员关 系。不过,要创建、更改、删除一个超级用户角色的成员关系, 需要具有超级用户属性,只有 CREATEROLE还不够。
createuser name dropuser name SELECT rolname FROM pg_roles; DROP ROLE name;
口令
只有在客户认证方法要求与数据库建立连接必须使用口令的时候,口令才比较重要。口令拥有 password, md5和crypt等不同的认证方法。在创建角色的时候可以这样声明一个口令:CREATE ROLE name PASSWORD 'string'。
一个角色的属性可以在创建后用ALTER ROLE 修改。例如,一些常见的操作如下: 让一个角色能够创建其他角色和新的数据库:
更改一个角色的口令:
移除一个角色的口令:
更多的内容,大家可以参考手册中的讲解页面。