

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

# ALTER USER
<a name="r_ALTER_USER"></a>

變更資料庫使用者。

## 所需權限
<a name="r_ALTER_USER-privileges"></a>

以下是 ALTER USER 所需的權限：
+ 超級使用者
+ 具有 ALTER USER 權限的使用者
+ 想要變更自己密碼的目前使用者

## 語法
<a name="r_ALTER_USER-synopsis"></a>

```
ALTER USER username [ WITH ] option [, ... ]

where option is

CREATEDB | NOCREATEDB
| CREATEUSER | NOCREATEUSER
| SYSLOG ACCESS { RESTRICTED | UNRESTRICTED }
| PASSWORD { 'password' | 'md5hash' | 'sha256hash' | 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
```

## Parameters
<a name="r_ALTER_USER-parameters"></a>

 *username*   
使用者的名稱。

WITH   
選用的關鍵字。

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

CREATEUSER \| NOCREATEUSER   
CREATEUSER 選項可建立具有所有資料庫權限的超級使用者，包括 CREATE USER。預設值為 NOCREATEUSER。如需詳細資訊，請參閱[超級使用者](r_superusers.md)。

SYSLOG ACCESS { RESTRICTED \| UNRESTRICTED }  <a name="alter-user-syslog-access"></a>
此子句會指定使用者對 Amazon Redshift 系統資料表和檢視的存取層級。  
具有 SYSLOG ACCESS RESTRICTED 許可的一般使用者，只能看見該使用者在使用者可見的系統資料表和檢視中產生的列。預設值為 RESTRICTED。  
具有 SYSLOG ACCESS UNRESTRICTED 許可的一般使用者，可以看見使用者可見的系統資料表和檢視中的所有列，包括其他使用者產生的列。UNRESTRICTED 並不會讓一般使用者存取超級使用者可查看的資料表。只有超級使用者可看見超級使用者可查看的資料表。  
若使用者擁有不受限制的系統資料表存取權限，該使用者就能查看其他使用者產生的資料。例如，STL\_QUERY 和 STL\_QUERYTEXT 包含 INSERT、UPDATE 和 DELETE 陳述式的全文，當中可能包含使用者產生的敏感資料。
所有使用者皆可看到 SVV\_TRANSACTIONS 中的所有資料列。  
如需詳細資訊，請參閱[系統資料表和檢視中資料的可見性](cm_chap_system-tables.md#c_visibility-of-data)。

PASSWORD { '*password*' \| '*md5hash*' \| '*sha256hash*' \| DISABLE }  
設定使用者的密碼。  
根據預設，使用者可以變更自己擁有的密碼，除非密碼遭到停用。若要停用使用者的密碼，請指定 DISABLE。當使用者的密碼停用時，密碼會從系統中刪除，而且使用者只能使用暫時 AWS Identity and Access Management (IAM) 使用者登入資料登入。如需詳細資訊，請參閱[使用 IAM 身分驗證產生資料庫使用者登入資料](https://docs.aws.amazon.com/redshift/latest/mgmt/generating-user-credentials.html)。只有超級使用者能夠啟用或停用密碼，您無法停用超級使用者的密碼。若要啟用密碼，請執行 ALTER USER 並指定密碼。  
如需使用 PASSWORD 參數的詳細資訊，請參閱 [CREATE USER](r_CREATE_USER.md)。

VALID UNTIL '*expiration\_date*'  
指定密碼有過期日期。使用 `'infinity'` 值就不會有過期日期。此參數的有效資料類型為時間戳記。  
只有超級使用者可以使用此參數。

RENAME TO   
重新命名使用者。

 *new\_name*   
使用者的新名稱。如需有效名稱的相關資訊，請參閱 [名稱與識別碼](r_names.md)。  
重新命名使用者時，您也必須重設使用者的密碼。重設密碼不一定要與先前的密碼不同。使用者名稱會做為密碼加密的一部分使用，因此使用者重新命名時，密碼也會遭到清除。在密碼重設前，使用者將無法登入。例如：  

```
alter user newuser password 'EXAMPLENewPassword11'; 
```

CONNECTION LIMIT { *limit* \| UNLIMITED }   
允許使用者同時開啟的資料庫連線數目上限。超級使用者不受此限制規範。使用 UNLIMITED 關鍵字可允許同時連線的最大數目。另外也可能限制每個資料庫的連線數目。如需詳細資訊，請參閱[CREATE DATABASE](r_CREATE_DATABASE.md)。預設值為 UNLIMITED。若要檢視目前連線數目，請查詢 [STV\_SESSIONS](r_STV_SESSIONS.md) 系統畫面。  
如果同時套用使用者和資料庫連線數目限制，則必須在使用者嘗試連線時，在不超過這兩項限制的情況下提供一個未使用的連線位置。

SESSION TIMEOUT *limit* \| RESET SESSION TIMEOUT  
工作階段保持非作用中或閒置的時間上限 (以秒為單位)。範圍是 60 秒 (一分鐘) 到 1,728,000 秒 (20 天)。如果未為使用者設定工作階段逾時，則會套用叢集設定。如需詳細資訊，請參閱《Amazon Redshift 管理指南》**中的 [Amazon Redshift 中的配額和限制](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)。  
當您設定工作階段逾時時，只會套用至新的工作階段。  
若要檢視有關作用中使用者工作階段的資訊 (包括開始時間、使用者名稱和工作階段逾時)，請查詢 [STV\_SESSIONS](r_STV_SESSIONS.md) 系統檢視。若要檢視有關使用者工作階段歷史記錄的資訊，請查詢 [STL\_SESSIONS](r_STL_SESSIONS.md) 檢視。若要擷取有關資料庫使用者的資訊 (包括工作階段逾時值)，請查詢 [SVL\_USER\_INFO](r_SVL_USER_INFO.md) 檢視。

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

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

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

 *value*   
參數的新值。

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

EXTERNALID *external\_id*   
與身分提供者相關聯的使用者識別碼。使用者必須停用密碼。如需詳細資訊，請參閱 [Amazon Redshift 的原生身分提供者 (IdP) 聯合合](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-native-idp.html)。

## 使用須知
<a name="r_ALTER_USER_usage_notes"></a>
+ **嘗試修改 rdsdb** - 您不能修改名為 `rdsdb` 的使用者。
+ **建立未知密碼** – 使用 AWS Identity and Access Management (IAM) 身分驗證建立資料庫使用者憑證時，您可能想要建立只能使用臨時憑證登入的超級使用者。您無法停用超級使用者的密碼，但是可以使用隨機產生的 MD5 雜湊字串建立未知的密碼。

  ```
  alter user iam_superuser password 'md51234567890123456780123456789012';
  ```
+ **設定 search\_path** – 當您使用 ALTER USER 命令設定 [search\_path](r_search_path.md) 參數時，修改會在指定使用者下次登入時生效。若您想要變更目前使用者和工作階段的 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 權限的使用者才能設定這些組態選項。如需有關資料列層級安全性詳細資訊，請參閱 [資料列層級安全性](t_rls.md)。如需動態資料遮罩的詳細資訊，請參閱 [動態資料遮罩](t_ddm.md)。

## 範例
<a name="r_ALTER_USER-examples"></a>

下列範例會將建立資料庫的權限提供給使用者 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 中的配額和限制](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html)。

```
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';
```

下列範例會設定使用者 `bob` 允許開啟的資料庫連線數目上限。

```
ALTER USER bob CONNECTION LIMIT 10;
```