21.2. 角色属性

数据库角色可以具有许多属性,这些属性定义其特权并与 Client 端身份验证系统进行交互。

CREATE ROLE name LOGIN;
CREATE USER name;

(CREATE USER等效于CREATE ROLE,但CREATE USER默认包含LOGIN,而CREATE ROLE不包含.)

可以使用ALTER ROLE创建角色后修改其属性。 有关详细信息,请参见CREATE ROLEALTER ROLE命令的参考页。

Tip

优良作法是创建一个具有CREATEDBCREATEROLE特权但不是超级用户的角色,然后将此角色用于数据库和角色的所有常规 Management。这种方法避免了以超级用户身份执行不需要 true 执行任务的危险。

对于Chapter 19中描述的许多运行时配置设置,角色还可以具有特定于角色的默认设置。例如,如果由于某种原因您想在每次连接时禁用索引扫描(提示:不是一个好主意),则可以使用:

ALTER ROLE myname SET enable_indexscan TO off;

这将保存设置(但不会立即设置)。在通过此角色进行的后续 Connecting,将好像在会话开始之前已执行SET enable_indexscan TO off一样。您仍然可以在会话期间更改此设置;它只是默认值。要删除特定于角色的默认设置,请使用ALTER ROLE rolename RESET varname。请注意,附加到不具有LOGIN特权的角色的特定于角色的默认值是相当无用的,因为它们将永远不会被调用。

上一章 首页 下一章