ALTER USER
更改用户帐户参数和用户级别配置参数。
语法
ALTER USER user‑name {
account‑parameter value[,...]
| SET [PARAMETER] cfg‑parameter=value[,...]
| CLEAR [PARAMETER] cfg‑parameter[,...]
}
参数
-
user‑name
- 用户名。包含特殊字符的名称必须加上双引号。要强制区分大小写,请使用双引号。
有关名称要求的详细信息,请参阅创建数据库名称和密码。
-
account‑parameter value
- 指定用户帐户设置(见下文)。
注意
对用户帐户的更改仅适用于当前会话,以及该用户启动的所有后续会话。 SET [PARAMETER]
- 设置指定的配置参数。新设置仅适用于当前会话,以及该用户启动的所有后续会话。并发用户会话不受新设置的影响,除非它们调用元函数 RESET_SESSION。
CLEAR [PARAMETER]
- 将指定的配置参数重置为其默认值。
重要
SET | CLEAR PARAMETER 只能指定用户级别配置参数,否则 Vertica 将返回错误。有关详细信息,请参阅下文的设置用户级别配置参数。用户帐户参数
以逗号分隔列表的形式指定一个或多个用户帐户参数及其设置:
account‑parameter value[,...]
重要
对于使用 LDAPLink 服务添加到 Vertica 数据库的用户,以下用户帐户参数无效:
-
IDENTIFIED BY
-
PROFILE
-
SECURITY ALGORITHM
参数 |
设置 |
---|---|
ACCOUNT |
锁定或解锁用户对数据库的访问,可以用以下操作之一:
提示要自动锁定帐户,可使用 CREATE PROFILE 设置登录尝试失败的最大次数。 |
DEFAULT ROLE |
指定哪些角色是此用户的默认角色,设置为以下之一:
当用户登录时,会自动激活默认角色。此参数指定的角色将取代之前分配的任何角色。 注意
|
GRACEPERIOD |
指定用户查询可以被任何会话套接字拦截多长时间,可以是以下值之一:
有关详细信息,请参阅处理会话套接字阻止。 |
IDENTIFIED BY |
更改用户密码:
|
['hashed-password' SALT 'hash-salt'] [REPLACE 'current-password']
有关详细信息,请参阅“密码指导原则”和“创建数据库名称和密码”。 |
|
IDLESESSIONTIMEOUT |
系统在断开空闲会话之前所等待的时间长度,可以为以下值之一:
有关详细信息,请参阅管理客户端连接。 |
MAXCONNECTIONS |
设置用户可以与服务器建立的最大连接数,可以为以下值之一:
有关详细信息,请参阅管理客户端连接。 |
MEMORYCAP |
设置可以为用户请求分配的内存量,可以为下之值一:
|
PASSWORD EXPIRE |
强制用户密码立即到期。用户必须在下次登录时更改密码。 注意
|
PROFILE |
分配一个配置文件来控制此用户的密码要求,可以为以下值之一:
|
|
为用户分配新的用户名。分配给用户的所有权限保持不变。 注意
|
RESOURCE POOL |
将默认资源池文件分配给该用户。还必须对用户授予此池的权限,除非该池的权限设置为 PUBLIC 。 |
RUNTIMECAP |
设置此用户的查询可以执行多长时间,可以为以下值之一:
查询的运行时限制可以在三个级别设置:用户的运行时限制、用户的资源池和会话设置。有关详细信息,请参阅为查询设置运行时限制。 |
SEARCH_PATH |
指定用户默认搜索路径,此路径会指示 Vertica 在哪个架构中搜索引用的未限定表和 UDF,可以是以下值之一:
有关详细信息,请参阅设置搜索路径。 |
SECURITY_ALGORITHM 'algorithm' |
设置哈希身份验证的用户级别安全算法,其中 algorithm 为以下之一:
当您更改 |
TEMPSPACECAP |
设置用户请求可用的临时文件存储量,可以为下之值一:
|
特权
非超级用户可以在自己的用户帐户上更改以下选项:
-
IDENTIFIED BY
-
RESOURCE POOL
-
SEARCH_PATH
-
SECURITY_ALGORITHM
将另一个用户的默认资源池更改为 PUBLIC 架构之外的资源池时,用户必须至少通过以下途径之一获得资源池的 USAGE 权限:
设置用户级别配置参数
SET | CLEAR PARAMETER 只能指定用户级别配置参数,否则 Vertica 将返回错误。只有超级用户可以设置和清除用户级别参数,除非它们在会话级也受支持。
要获取用户级别参数的名称,请查询系统表 CONFIGURATION_PARAMETERS。例如:
=> SELECT parameter_name, allowed_levels FROM configuration_parameters
WHERE allowed_levels ilike '%USER%' AND parameter_name ilike '%depot%' ORDER BY parameter_name;
parameter_name | allowed_levels
-----------------------------+-------------------------
BackgroundDepotWarming | SESSION, USER, DATABASE
DepotOperationsForQuery | SESSION, USER, DATABASE
EnableDepotWarmingFromPeers | SESSION, USER, DATABASE
UseDepotForReads | SESSION, USER, DATABASE
UseDepotForWrites | SESSION, USER, DATABASE
(5 rows)
以下示例为两个用户 Yvonne 和 Ahmed 设置用户级别配置参数 UseDepotForWrites:
=> SHOW USER Yvonne PARAMETER ALL;
user | parameter | setting
--------+-------------------------+---------
Yvonne | DepotOperationsForQuery | Fetches
(1 row)
=> ALTER USER Yvonne SET PARAMETER UseDepotForWrites = 0;
ALTER USER
=> SHOW USER Yvonne PARAMETER ALL;
user | parameter | setting
--------+-------------------------+---------
Yvonne | DepotOperationsForQuery | Fetches
Yvonne | UseDepotForWrites | 0
(2 rows)
=> ALTER USER Ahmed SET PARAMETER DepotOperationsForQuery = 'Fetches';
ALTER USER
=> SHOW USER ALL PARAMETER ALL;
user | parameter | setting
--------+-------------------------+---------
Ahmed | DepotOperationsForQuery | Fetches
Yvonne | DepotOperationsForQuery | Fetches
Yvonne | UseDepotForWrites | 0
(3 rows)
示例
设置用户密码
=> CREATE USER user1;
=> ALTER USER user1 IDENTIFIED BY 'newpassword';
设置用户的安全算法和密码
此示例将用户的安全算法和密码分别设置为 SHA-512
和 newpassword
。执行 ALTER USER
语句时,Vertica 会使用 SHA-512 算法对密码进行哈希处理,并保存哈希:
=> CREATE USER user1;
=> ALTER USER user1 SECURITY_ALGORITHM 'SHA512' IDENTIFIED BY 'newpassword'
为用户分配默认角色
此示例使用户的已分配角色成为用户的默认角色。用户登录时会自动设置(启用)默认角色:
=> CREATE USER user1;
CREATE USER
=> GRANT role1, role2, role3 to user1;
=> ALTER USER user1 DEFAULT ROLE ALL;
您可以将 ALL 与 EXCEPT 配对以排除某些角色:
=> CREATE USER user2;
CREATE USER
=> GRANT role1, role2, role3 to user2;
=> ALTER USER user2 DEFAULT ROLE ALL EXCEPT role1;