当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PostgreSQL CREATE ROLE用法及代码示例


PostgreSQL的使用角色来表示用户帐户。它不像其他数据库系统那样使用用户概念。通常,可以登录的角色称为登录角色。它们相当于其他数据库系统中的用户。当角色包含其他角色时,它们被称为组角色。创建角色时,它在数据库服务器(或集群)中的所有数据库中都有效。

要创建新角色,您可以使用创建角色声明如下:

用法:CREATE ROLE role_name;

要获取当前 PostgreSQL 数据库服务器中的所有角色,可以从pg_roles 系统目录如下:

用法: SELECT rolname FROM pg_roles;

这将导致以下结果:



如果一个人使用 查询语句工具,可以使用\杜命令列出当前 PostgreSQL 数据库服务器中的所有现有角色:

用法: \du

它的行为如下所示:

角色属性

角色的属性定义了该角色的权限,包括登录、超级用户、数据库创建、角色创建、密码等:

用法: CREATE ROLE name WITH option;

在这个语法中,WITH关键字是可选的。而选项可以是一个或多个属性,包括SUPERCREATEDBCREATEROLE, 等等。

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

这将显示如下所示的结果:

相关用法


注:本文由纯净天空筛选整理自RajuKumar19大神的英文原创作品 PostgreSQL – CREATE ROLE。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。