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 |
更改用户密码:
|
特权
非超级用户可以在自己的用户帐户上更改以下选项:
-
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;