17.2. 用户属性

一个数据库用户可以有一系列属性,这些属性定义他的权限,以及与客户认证系统的交互。

超级用户

数据库超级用户超越所有权限检查。同样,只有超级用户才能创建新的用户。 要创建数据库超级用户,用 CREATE USER name CREATEUSER

创建数据库

用户要想创建数据库,必须明确给出权限(对于超级用户是例外,因为他们超越所有权限检查)。 要创建这样的用户,用 CREATE USER name CREATEDB

口令

只有在对客户认证方法要求客户在与数据库建立连接是使用口令的时候,口令才比较重要。 passwordmd5,和 crypt 认证方法使用口令。 数据库口令与操作系统口令是无关的。在创建用户的时候声明一个口令是这样: CREATE USER name PASSWORD 'string'

一个用户的属性可以在创建后用 ALTER USER 修改。 参考 CREATE USERALTER USER 的手册获取细节。

一个用户也可以为许多运行时配置设置个人缺省, 那些配置在 Section 16.4 里描述。 比如,如果出于某种原因你想在所有你做的连接中关闭索引扫描(提示:不是个好主意), 你可以用

ALTER USER myname SET enable_indexscan TO off;

这样就会保存该设置(但是不是立即设置)。 这么做后,在随后的连接中就好像在会话开始之后都马上 SET enable_indexscan TO off;了一样。 你也可以在会话中修改这个设置;它只是缺省。要撤销任何这样的设置, 使用 ALTER USER username RESET varname;