PostgreSQL的使用角色来表示用户帐户。它不像其他数据库系统那样使用用户概念。通常,可以登录的角色称为登录角色。它们相当于其他数据库系统中的用户。当角色包含其他角色时,它们被称为组角色。创建角色时,它在数据库服务器(或集群)中的所有数据库中都有效。
要创建新角色,您可以使用创建角色声明如下:
用法:CREATE ROLE role_name;
要获取当前 PostgreSQL 数据库服务器中的所有角色,可以从pg_roles 系统目录如下:
用法: SELECT rolname FROM pg_roles;
这将导致以下结果:
如果一个人使用 查询语句工具,可以使用\杜命令列出当前 PostgreSQL 数据库服务器中的所有现有角色:
用法: \du
它的行为如下所示:
角色属性
角色的属性定义了该角色的权限,包括登录、超级用户、数据库创建、角色创建、密码等:
用法: CREATE ROLE name WITH option;
在这个语法中,WITH关键字是可选的。而选项可以是一个或多个属性,包括SUPER,CREATEDB,CREATEROLE, 等等。
1. 创建登录角色
以下语句创建一个名为“Raju”的角色,该角色具有登录权限和初始密码:
CREATE ROLE raju LOGIN PASSWORD 'mypassword1';
注意:需要将密码放在单引号中 (’)。
现在使用以下命令验证角色:
\du
角色创建成功如下图:
2.创建超级用户角色
以下语句创建了一个名为“Nikhil”的具有超级用户属性的角色:
CREATE ROLE Nikhil SUPERUSER LOGIN PASSWORD 'mypassword1';
这将导致以下情况:
超级用户可以覆盖数据库中的所有访问限制,因此您应该仅在需要时创建此角色。
注意:必须是超级用户才能创建另一个超级用户角色。
3.创建可以创建数据库的角色
如果要创建具有数据库创建权限的角色,请使用 CREATEDB 属性:
CREATE ROLE dba CREATEDB LOGIN PASSWORD 'Abcd1234';
这将导致以下情况:
4.创建有有效期的角色
要设置角色密码不再有效的日期和时间,请使用 valid until 属性:
VALID UNTIL 'timestamp'
例:
CREATE ROLE dev_api WITH LOGIN PASSWORD 'securePass1' VALID UNTIL '2030-01-01';
输出:
5.创建有连接限制的角色
要指定角色可以建立的并发连接数,请使用 CONNECTION LIMIT 属性:
CONNECTION LIMIT connection_count
下面创建了一个名为的新角色API可以建立 1000 个并发连接:
CREATE ROLE api LOGIN PASSWORD 'securePass1' CONNECTION LIMIT 1000;
这将创建一个新角色,如下所示:
以下查询语句命令显示到目前为止我们创建的所有角色:
\du
这将显示如下所示的结果:
相关用法
- PostgreSQL ALTER ROLE用法及代码示例
- PostgreSQL DROP ROLE用法及代码示例
- PostgreSQL CREATE DOMAIN用法及代码示例
- PostgreSQL CREATE TABLE用法及代码示例
- PostgreSQL CREATE SEQUENCE用法及代码示例
- PostgreSQL CREATE SCHEMA用法及代码示例
- PostgreSQL CREATE PROCEDURE用法及代码示例
- PostgreSQL CREATE TRIGGER用法及代码示例
- PostgreSQL CREATE INDEX用法及代码示例
- PostgreSQL CREATE TABLESPACE用法及代码示例
注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 PostgreSQL – CREATE ROLE。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。