ALTER USER - Amazon Redshift

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

ALTER USER

變更資料庫使用者。

所需權限

以下是 ALTER USER 所需的權限:

  • 超級使用者

  • 具有 ALTER USER 權限的使用者

  • 想要變更自己密碼的目前使用者

語法

ALTER USER username [ WITH ] option [, ... ] where option is CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | SYSLOG ACCESS { RESTRICTED | UNRESTRICTED } | PASSWORD { 'password' | 'md5hash' | DISABLE } [ VALID UNTIL 'expiration_date' ] | RENAME TO new_name | | CONNECTION LIMIT { limit | UNLIMITED } | SESSION TIMEOUT limit | RESET SESSION TIMEOUT | SET parameter { TO | = } { value | DEFAULT } | RESET parameter | EXTERNALID external_id

參數

username

使用者的名稱。

WITH

選用的關鍵字。

CREATEDB | NOCREATEDB

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

CREATEUSER | NOCREATEUSER

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

SYSLOG ACCESS { RESTRICTED | UNRESTRICTED }

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

具有 SYSLOG ACCESS 受限制權限的一般使用者只能在使用者可見的系統資料表和檢視中看到該使用者所產生的資料列。預設值為 RESTRICTED。

具有 SYSLOG ACCESS UNCONCTED 權限的一般使用者可以看到使用者可見系統資料表和檢視中的所有資料列,包括其他使用者產生的資料列。UNRESTRICTED 並不會讓一般使用者存取超級使用者可查看的資料表。只有超級使用者可看見超級使用者可查看的資料表。

注意

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

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

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

PASSWORD { 'password' | 'md5hash' | DISABLE }

設定使用者的密碼。

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

如需使用 PASSWORD 參數的詳細資訊,請參閱 CREATE USER

VALID UNTIL 'expiration_date'

指定密碼有過期日期。使用 'infinity' 值就不會有過期日期。此參數的有效資料類型為時間戳記。

只有超級使用者可以使用此參數。

RENAME TO

重新命名使用者。

new_name

使用者的新名稱。如需有效名稱的相關資訊,請參閱 名稱與識別碼

重要

重新命名使用者時,您也必須重設使用者的密碼。重設密碼不一定要與先前的密碼不同。使用者名稱會做為密碼加密的一部分使用,因此使用者重新命名時,密碼也會遭到清除。在密碼重設前,使用者將無法登入。例如:

alter user newuser password 'EXAMPLENewPassword11';
CONNECTION LIMIT { limit | UNLIMITED }

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

注意

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

SESSION TIMEOUT limit | RESET SESSION TIMEOUT

工作階段保持非作用中或閒置的時間上限 (以秒為單位)。範圍是 60 秒 (一分鐘) 到 1,728,000 秒 (20 天)。如果未為使用者設定工作階段逾時,則會套用叢集設定。如需詳細資訊,請參閱《Amazon Redshift 管理指南》中的 Amazon Redshift 中的配額和限制

當您設定工作階段逾時時,只會套用至新的工作階段。

若要檢視有關作用中使用者工作階段的資訊 (包括開始時間、使用者名稱和工作階段逾時),請查詢 STV_SESSIONS 系統檢視。若要檢視有關使用者工作階段歷史記錄的資訊,請查詢 STL_SESSIONS 檢視。若要擷取有關資料庫使用者的資訊 (包括工作階段逾時值),請查詢 SVL_USER_INFO 檢視。

SET

將指定使用者執行之所有工作階段的組態參數設定為新的預設值。

RESET

將指定使用者的組態參數重設為原始預設值。

parameter

要設定或重設的參數名稱。

參數的新值。

DEFAULT

將指定使用者執行之所有工作階段的組態參數設定為預設值。

EXTERNALID external_id

與身分提供者相關聯的使用者識別碼。使用者必須停用密碼。如需詳細資訊,請參閱 Amazon Redshift 的原生身分提供者 (IdP) 聯合合

使用須知

  • 嘗試修改 rdsdb - 您不能修改名為 rdsdb 的使用者。

  • 建立未知密碼 — 使用 AWS Identity and Access Management (IAM) 身份驗證建立資料庫使用者登入資料時,您可能想要建立僅能使用臨時登入資料登入的超級使用者。您無法停用超級使用者的密碼,但是可以使用隨機產生的 MD5 雜湊字串建立未知的密碼。

    alter user iam_superuser password 'md51234567890123456780123456789012';
  • 設定 search_path – 當您使用 ALTER USER 命令設定 search_path 參數時,修改會在指定使用者下次登入時生效。若您想要變更目前使用者和工作階段的 search_path 值,請使用 SET 命令。

  • 設定時區 – 當您搭配 ALTER USER 命令使用 SET TIMEZONE 時,修改會在指定使用者下次登入時生效。

  • 使用動態資料遮罩和資料列層級安全性政策 — 當您佈建的叢集或無伺服器命名空間具有任何動態資料遮罩或資料列層級安全性政策時,一般使用者會無法使用下列命令:

    ALTER <current_user> SET enable_case_sensitive_super_attribute/enable_case_sensitive_identifier/downcase_delimited_identifier

    只有超級使用者和具有 ALTER USER 權限的使用者才能設定這些組態選項。如需有關資料列層級安全性詳細資訊,請參閱 資料列層級安全性。如需動態資料遮罩的詳細資訊,請參閱 動態資料遮罩

範例

下列範例會將建立資料庫的權限提供給使用者 ADMIN:

alter user admin createdb;

下面範例會將使用者 ADMIN 的密碼設為 adminPass9,以及為密碼設定過期日期和時間:

alter user admin password 'adminPass9' valid until '2017-12-31 23:59';

以下範例會將使用者 ADMIN 重新命名為 SYSADMIN:

alter user admin rename to sysadmin;

下列範例會將使用者的閒置工作階段逾時更新為 300 秒。

ALTER USER dbuser SESSION TIMEOUT 300;

重設使用者的閒置工作階段逾時。重設時會套用叢集設定。您必須是資料庫超級使用者才能執行此命令。如需詳細資訊,請參閱《Amazon Redshift 管理指南》中的 Amazon Redshift 中的配額和限制

ALTER USER dbuser RESET SESSION TIMEOUT;

下列範例會更新名為 bob 之使用者的外部 ID。命名空間為 myco_aad。如果命名空間未與已註冊的身分提供者相關聯,則會導致錯誤。

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

下列範例會為特定資料庫使用者執行的所有工作階段設定時區。這會變更後續工作階段的時區,但不會變更目前工作階段的時區。

ALTER USER odie SET TIMEZONE TO 'Europe/Zurich';