Ident 身份验证
RFC 1413 中定义的 Ident 协议使用系统用户名对数据库用户进行身份验证。要查看该系统用户是否可以在不指定密码的情况下登录,您需要将 Vertica 客户端身份验证配置为查询 Ident 服务器。借助此功能,DBADMIN 用户可以运行自动化脚本以在 Vertica 服务器上执行任务。
当心
Ident 响应很容易被不受信任的服务器欺骗。请仅对本地连接使用 Ident 身份验证,其中 Ident 服务器与 Vertica 数据库服务器安装在相同的计算机上。按照以下主题中的说明为您的数据库安装、设置和配置 Ident 身份验证:
示例
以下示例显示了配置 Ident 身份验证的几种方法。
允许 system_user1
以 Vertica vuser1
的身份连接到数据库:
=> CREATE AUTHENTICATION v_ident METHOD 'ident' LOCAL;
=> ALTER AUTHENTICATION v_ident SET system_users='system_user1';
=> GRANT AUTHENTICATION v_ident to vuser1;
=> ALTER AUTHENTICATION v_ident ENABLE;
允许 system_user1
、system_user2
和 system_user3
以 vuser1
的身份连接到数据库。使用冒号 (:) 分隔用户名:
=> CREATE AUTHENTICATION v_ident METHOD 'ident' LOCAL;
=> ALTER AUTHENTICATION v_ident SET system_users='system_user1:system_user2:system_user3';
=> GRANT AUTHENTICATION v_ident TO vuser1;
=> ALTER AUTHENTICATION v_ident ENABLE;
使用 GRANT AUTHENTICATION 语句将身份验证与 Public
相关联。用户 system_user1
、system_user2
和 system_user3
现在可以以任意数据库用户身份连接到数据库:
=> CREATE AUTHENTICATION v_ident METHOD 'ident' LOCAL;
=> ALTER AUTHENTICATION v_ident SET system_users='system_user1:system_user2:system_user3';
=> GRANT AUTHENTICATION v_ident to Public;
=> ALTER AUTHENTICATION v_ident ENABLE;
将 system_users
参数设置为 *
,以允许任何系统用户以 vuser1
的身份连接到数据库:
=> CREATE AUTHENTICATION v_ident METHOD 'ident' LOCAL;
=> ALTER AUTHENTICATION v_ident SET system_users='*';
=> GRANT AUTHENTICATION v_ident TO vuser1;
=> ALTER AUTHENTICATION v_ident ENABLE;
使用 GRANT 语句,将 v_ident
身份验证与 Public
相关联,以允许 system_user1
以任意数据库用户身份登录数据库:
=> CREATE AUTHENTICATION v_ident METHOD 'ident' LOCAL;
=> ALTER AUTHENTICATION v_ident SET system_users='system_user1';
=> GRANT AUTHENTICATION v_ident to Public;
=> ALTER AUTHENTICATION v_ident ENABLE;