CREATE USER - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CREATE USER

建立新資料庫使用者帳戶。您必須是資料庫超級使用者才能執行此命令。

必要的權限

以下是創建用户所需的權限:

  • 超級使用者

  • 具有「創建用户」權限的用户

Syntax (語法)

CREATE USER name [ WITH ] PASSWORD { 'password' | 'md5hash' | 'sha256hash' | DISABLE } [ option [ ... ] ] where option can be: CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | SYSLOG ACCESS { RESTRICTED | UNRESTRICTED } | IN GROUP groupname [, ... ] | VALID UNTIL 'abstime' | CONNECTION LIMIT { limit | UNLIMITED } | SESSION TIMEOUT limit | EXTERNALID external_id

參數

name

要建立的使用者帳戶名稱。使用者名稱不可以是 PUBLIC。如需有效名稱的詳細資訊,請參閱 名稱與識別符

WITH

選用的關鍵字。WITH 被 Amazon Redshift 忽略

密碼 {'密碼'|'MD5 哈希'|'沙 256 哈希'| 禁用}

設定使用者的密碼。

根據預設,使用者可以變更自己擁有的密碼,除非密碼遭到停用。若要停用使用者的密碼,請指定 DISABLE。當使用者的密碼停用時,該密碼會從系統中刪除,使用者只能使用臨時 AWS Identity and Access Management (IAM) 使用者登入資料登入。如需詳細資訊,請參閱使用 IAM 身分驗證產生資料庫使用者登入資料。只有超級使用者能夠啟用或停用密碼,您無法停用超級使用者的密碼。若要啟用密碼,請執行 ALTER USER 並指定密碼。

您可以指定純文字、MD5 散列字串或 SHA256 散列字串的密碼。

注意

當您使用新叢集啟動新叢集時AWS Management Console、AWS CLI或 Amazon Redshift API,您必須為初始資料庫使用者提供純文字密碼。您之後可以使用 ALTER USER 變更密碼。

若是純文字,密碼必須滿足下列限制條件:

  • 長度必須為 8 到 64 個字元。

  • 至少須包含一個大寫字母、一個小寫字母和一個數字。

  • 它可以使用任何 ASCII 字元 (ASCII 碼 33—126),但 '(單引號)、」(雙引號)、\、/或 @ 除外。

除了以純文字傳遞 CREATE USER 密碼參數之外,更安全的替代方法是指定包括密碼和使用者名稱的 MD5 雜湊字串。

注意

當您指定 MD5 雜湊字串時,CREATE USER 命令會檢查有效的 MD5 雜湊字串,但不會驗證字串的密碼部分。在此情況下可能會建立密碼,例如空字串,但此密碼無法用來登入資料庫。

若要指定 MD5 密碼,請依照下列步驟執行:

  1. 串連密碼和使用者名稱。

    例如,密碼 ez 和使用者 user1 的串連字串為 ezuser1

  2. 將串連字串轉換成 32 個字元的 MD5 雜湊字串。您可以使用任何 MD5 公用程式來建立雜湊字串。以下示例使用 Amazon RedshiftMD5 函數和串連運算子 (||) 以返回 32 個字元的 MD5 散列字符。

    select md5('ez' || 'user1'); md5 -------------------------------- 153c434b4b77c89e6b94f12c5393af5b
  3. 在 MD5 雜湊字串前方串連 'md5' 並提供串連字串做為 md5hash 引數。

    create user user1 password 'md5153c434b4b77c89e6b94f12c5393af5b';
  4. 使用使用者名稱和密碼登入資料庫。

    例如,以 user1 的身分和密碼 ez 登入。

另一種安全的替代方法是指定密碼字符串的 SHA-256 哈希; 或者您可以提供自己的有效 SHA-256 摘要和 256 位鹽,用於創建摘要。

  • 摘要 — 散列函數的輸出。

  • Salt — 隨機生成的數據,與密碼相結合,以幫助減少散列函數輸出中的模式。

'sha256|Mypassword'
'sha256|digest|256-bit-salt'

在以下示例中,Amazon Redshift 生成和管理鹽。

CREATE USER admin PASSWORD 'sha256|Mypassword1';

在以下示例中,提供了用於創建摘要的有效 SHA-256 摘要和 256 位鹽。

CREATE USER admin PASSWORD 'sha256|fe95f2bc7c4a111b6f0f7d0b60bfedd1935fb295f8dce1d62708ab8d2f564baf|c721bff5d9042cf541ff7b9d48fa8a6e545c19a763e3710151f9513038b0f6c6';

如果在沒有指定哈希函數的情況下以純文本設置密碼,則使用用户名作為鹽生成 MD5 摘要。

CREATEDB | NOCREATEDB

CREATEDB 選項可讓新使用者帳戶建立資料庫。預設值是 NOCREATEDB。

CREATEUSER | NOCREATEUSER

CREATEUSER 選項可建立具有所有資料庫權限的超級使用者,包括 CREATE USER。預設值為 NOCREATEUSER。如需詳細資訊,請參閱 superuser

SYSLOG ACCESS { RESTRICTED | UNRESTRICTED }

此子句會指定使用者對 Amazon Redshift 系統資料表和檢視的存取層級。

若指定 RESTRICTED,使用者只能看見該使用者在使用者可查看的系統資料表和檢視中所產生的資料列。預設值為 RESTRICTED。

若指定 UNRESTRICTED,則使用者可看見使用者可查看的系統資料表和檢視中的所有資料列,包括其他使用者所產生的資料列。UNRESTRICTED 並不會讓一般使用者存取超級使用者可查看的資料表。只有超級使用者可看見超級使用者可查看的資料表。

注意

若使用者擁有不受限制的系統資料表存取權限,該使用者就能查看其他使用者產生的資料。例如,STL_QUERY 和 STL_QUERYTEXT 包含 INSERT、UPDATE 和 DELETE 陳述式的全文,當中可能包含使用者產生的敏感資料。

所有使用者皆可看到 SVV_TRANSACTIONS 中的所有資料列。

如需詳細資訊,請參閱 系統資料表和檢視中資料的可見性

IN GROUP groupname

指定使用者所屬現有群組的名稱。可列出多個群組名稱。

VALID UNTIL abstime

VALID UNTIL 選項會設定絕對時間,在這段時間過後使用者帳戶密碼就會失效。根據預設,密碼沒有時間限制。

CONNECTION LIMIT { limit | UNLIMITED }

允許使用者同時開啟的資料庫連線數目上限。超級使用者不受此限制規範。使用 UNLIMITED 關鍵字可允許同時連線的最大數目。另外也可能限制每個資料庫的連線數目。如需詳細資訊,請參閱 CREATE DATABASE。預設值為 UNLIMITED。若要檢視目前連線數目,請查詢 STV_SESSIONS 系統畫面。

注意

如果同時套用使用者和資料庫連線數目限制,則必須在使用者嘗試連線時,在不超過這兩項限制的情況下提供一個未使用的連線位置。

工作階段逾時限制

會話保持非活動或空閒狀態的最長時間(以秒為單位)。範圍為 60 秒(一分鐘)到 1728 萬秒(20 天)。如果沒有為用户設置會話超時,則應用集羣設置。如需詳細資訊,請參閱「」Amazon Redshift 中的配額和限制中的Amazon Redshift 叢集管理指南

設置會話超時時,它僅應用於新會話。

要查看有關活動用户會話的信息,包括開始時間、用户名和會話超時,請查詢STV_SESSIONS系統檢視。要查看有關用户會話歷史記錄的信息,請查詢STL_SESSIONS檢視。要檢索有關數據庫用户的信息(包括會話超時值),請查詢SVL_USER_INFO檢視。

EXTERNALIDexternal_id

與身份提供程序關聯的用户的標識符。用户必須禁用其密碼。如需詳細資訊,請參閱「」Amazon Redshift 的本地身分供應商 (IdP) 聯合體

使用須知

根據預設,所有使用者對 PUBLIC 結構描述都具有 CREATE 和 USAGE 權限。若要不允許使用者在資料庫的 PUBLIC 結構描述內建立物件,請使用 REVOKE 命令來移除該權限。

使用 IAM 身份驗證建立資料庫使用者登入資料時,您可能會希望建立只能使用臨時登入資料登入的超級使用者。您無法停用超級使用者的密碼,但是可以使用隨機產生的 MD5 雜湊字串建立未知的密碼。

create user iam_superuser password 'md5A1234567890123456780123456789012' createuser;

的情況下用戶名用雙引號括起來始終保留,而不管enable_case_sensitive_identifier配置選項。如需詳細資訊,請參閱 啟用案例敏感標識符

範例

以下命令會建立名為 dbuser 的使用者帳戶與密碼 "abcD1234"、建立資料庫的權限,以及 30 個連線限制。

create user dbuser with password 'abcD1234' createdb connection limit 30;

查詢 PG_USER_INFO 目錄資料表以檢視有關資料庫使用者的詳細資訊。

select * from pg_user_info; usename | usesysid | usecreatedb | usesuper | usecatupd | passwd | valuntil | useconfig | useconnlimit -----------+----------+-------------+----------+-----------+----------+----------+-----------+------------- rdsdb | 1 | true | true | true | ******** | infinity | | adminuser | 100 | true | true | false | ******** | | | UNLIMITED dbuser | 102 | true | false | false | ******** | | | 30

在以下範例中,帳戶密碼的有效期限至 2017 年 6 月 10 日。

create user dbuser with password 'abcD1234' valid until '2017-06-10';

以下範例會建立使用者,以及包含特殊字元且區分大小寫的密碼。

create user newman with password '@AbC4321!';

若要在 MD5 密碼中使用反斜線 ('\'),請使用來源字串中的反斜線逸出反斜線。以下範例會建立名為 slashpass 的使用者,並使用單一反斜線 ('\') 做為密碼。

select md5('\\'||'slashpass'); md5 -------------------------------- 0c983d1a624280812631c5389e60d48c create user slashpass password 'md50c983d1a624280812631c5389e60d48c';

下列範例會建立名為dbuser,並將空閒會話超時設定為 120 秒。

CREATE USER dbuser password 'abcD1234' SESSION TIMEOUT 120;

下列範例會建立名為bob。命名空間為myco_aad

CREATE USER myco_aad:bob EXTERNALID "ABC123" PASSWORD DISABLE;