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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。