ALTER USER - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

参数

username

用户账户的名称。

WITH

可选关键字。

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 中的所有行都对所有用户可见。

有关更多信息,请参阅 系统表和视图中的数据可见性

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

设置用户的密码。

默认情况下,用户可以更改自己的密码,除非密码被禁用。要禁用用户的密码,请指定 DISABLE。禁用某个用户的密码后,将从系统中删除该密码,而此用户只能使用临时 Amazon 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 分钟)到 1,728,000 秒(20 天)之间。如果没有为用户设置会话超时,则应用集群设置。想要了解有关信息,请参阅 Amazon Redshift 集群管理指南中的 Amazon Redshift 中的配额和限制

设置会话超时时,它仅应用于新会话。

要查看有关活动用户会话的信息,包括开始时间、用户名和会话超时,请查询 STV_SESSIONS 系统视图。要查看有关用户会话历史记录的信息,请查询 STL_SESSIONS 视图。要检索有关数据库用户的信息(包括会话超时值),请查询 SVL_USER_INFO 视图。

SET

针对指定用户运行的所有会话,将某个配置参数设置为新的默认值。

RESET

为指定用户将某个配置参数重置为原始默认值。

参数

要设置或重置的参数的名称。

参数的新值。

DEFAULT

针对指定用户运行的所有会话,将配置参数设置为默认值。

使用说明

使用 Amazon Identity and Access Management (IAM) 身份验证创建数据库用户凭证时,您可能希望创建能够仅使用临时凭证登录的超级用户。您不能禁用超级用户的密码,但可以使用随机生成的 MD5 哈希字符串创建一个未知密码。

alter user iam_superuser password 'mdA51234567890123456780123456789012';

当您使用 ALTER USER 命令设置 search_path 参数时,所做修改将在指定的用户下次登录时生效。如果您希望更改当前用户和会话的 search_path 值,请使用 SET 命令。

示例

以下示例为用户 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;