身份验证记录优先级
每个身份验证记录都分配了优先级。如果用户获授多个身份验证记录,Vertica 会尝试使用优先级最高的身份验证记录对用户进行身份验证,并在身份验证失败时拒绝该用户。
如果启用身份验证 fallthrough(默认情况下禁用),当所选身份验证记录失败时,Vertica 将尝试使用下一个优先级最高的记录对用户进行身份验证。有关 fallthrough 身份验证的详细信息,请参阅 Fallthrough 身份验证。
确定身份验证优先级
以下因素会影响身份验证记录的优先级,如 CLIENT_AUTH 系统表中所示:
=> SELECT auth_name, auth_method, auth_priority, method_priority, address_priority FROM client_auth;
auth_name | auth_method | auth_priority | method_priority | address_priority
---------------+-------------+---------------+-----------------+------------------
ldap_auth | LDAP | 5 | 5 | 96
hash_auth | HASH | 5 | 2 | 126
tls_auth | TLS | 0 | 5 | 96
oauth_auth | OAUTH | 0 | 5 | 96
gss_auth | GSS | 0 | 5 | 96
trust_auth | TRUST | 0 | 0 | 96
reject_auth | REJECT | 0 | 10 | 96
(7 rows)
注意
值越大表示优先级越高。例如:
-
优先级 10 比优先级 5 高。
-
优先级 0 为最低的值。
优先级按层级划分并按重要性顺序列出;如果在某个优先级层级上的优先级相同,Vertica 会检查下一个优先级层级。例如,如果用户同时拥有 ldap
和 hash
身份验证记录,且 auth_priority
均为 5,Vertica 将尝试使用 ldap
身份验证记录,因为其 method_priority
值更大:
-
auth_priority
:使用 ALTER AUTHENTICATION 显式设置的优先级(默认值:0)。 -
method_priority
:特定于身份验证方法的优先级。这些优先级如下所示:-
trust
:0 -
hash
:2 -
ldap
:5 -
tls
:5 -
oauth
:5 -
gss
:5 -
reject
:10
-
-
address_priority
:HOST [ TLS | NO TLS ] 'host-ip-address'
中指定的 IP 地址的优先级。此优先级由地址的网络掩码大小决定;0 越少表示越具体,因此优先级越高。LOCAL
具有最低的优先级:0。
设置身份验证优先级
要设置身份验证优先级:
=> ALTER AUTHENTICATION authentication_name PRIORITY value;