数据库角色在概念上已经完全与操作系统用户独立开来。事实上可能维护一个对应关系会比较方便,但是这并非必需。数据库角色在一个数据库集簇安装范围内是全局的(而不是独立数据库内)。要创建一个角色,可使用CREATE ROLE SQL 命令:
CREATE ROLE name
;
name
遵循 SQL 标识符的规则:或是未经装饰没有特殊字符,或是用双引号包围(实际上,你将总是给该命令要加上额外选项,例如LOGIN
。更多细节可见下文)。要移除一个已有的角色,使用相似的DROP ROLE命令:
DROP ROLE name
;
为了方便,createuser和dropuser程序被提供作为这些 SQL 命令的包装器,它们可以从 shell 命令行调用:
createuser name
dropuser name
要决定现有角色的集合,检查pg_roles
系统目录,例如:
SELECT rolname FROM pg_roles;
psql程序的du
元命令也可以用来列出现有角色。
为了引导数据库系统,一个刚刚被初始化好的系统总是包含一个预定义角色。这个角色总是一个“superuser”,并且默认情况下(除非在运行initdb
时修改)它的名字和初始化数据库集簇的操作系统用户相同。习惯上,这个角色将被命名为postgres
。为了创建更多角色,你首先必须以初始角色的身份连接。
每一个到数据库服务器的连接都是使用某个特定角色名建立的,并且这个角色决定发起连接的命令的初始访问权限。要使用一个特定数据库连接的角色名由客户端指示,该客户端以一种应用相关的风格发起连接请求。例如,psql
程序使用-U
命令行选项来指定要以哪个角色连接。很多应用假定该名字默认是当前操作系统用户(包括createuser
和
psql
)。因此在角色和操作系统用户之间维护一个名字对应关系通常是很方便的。
一个给定客户端连接能够用来连接的数据库角色的集合由该客户端的认证设置决定,这些在第 20 章中有解释(因此,一个客户端不止限于以匹配其操作系统用户的角色连接,就像一个人的登录名不需要匹配她的真实名字一样)。因为角色身份决定一个已连接客户端可用的权限集合,在设置一个多用户环境时要小心地配置权限。
为了创建一个数据库,PostgreSQL服务器必须启动并运行(见第18.3节)。数据库用 SQL 命令CREATE DATABASE创建:CREATE DATABASE ...
23.3.1. 被支持的字符集23.3.2. 设置字符集23.3.3. 服务器和客户端之间的自动字符集转换23.3.4. 可用的字符集转换23.3.5. 进一步...
Input Date name 属性 Input Date 对象实例获取 date 字段的名称:var x =document.getElementById("myDate").name;x输出结果为:...
Submit value 属性 Submit 对象定义和用法value 属性可设置或者返回提交按钮的 value 属性值。.value 指定显示在确认按钮上的文...
Input Text placeholder属性 Input Text 对象实例修改文本域的提示文本:document.getElementById("myText").placeholder = "在...