这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

Ident 身份验证

RFC 1413 中定义的 Ident 协议使用系统用户名对数据库用户进行身份验证。要查看该系统用户是否可以在不指定密码的情况下登录,您需要将 Vertica 客户端身份验证配置为查询 Ident 服务器。借助此功能,DBADMIN 用户可以运行自动化脚本以在 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_user1system_user2system_user3vuser1 的身份连接到数据库。使用冒号 (:) 分隔用户名:

=> 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_user1system_user2system_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;

1 - 安装和设置 Ident 服务器

若要使用 Ident 身份验证,您必须安装一个或多个包,具体取决于您的操作系统,并在 Vertica 服务器上启用 Ident 服务器。oidentd是兼容 Vertica 并符合 RFC 1413 标准的 Ident 守护程序。

要安装和配置 Ident 身份验证以用于 Vertica 数据库,请按照适用于您的操作系统的相应步骤进行操作。

Red hat 7.x/CentOS 7.x

通过安装 authdxinetd 包,在 Red Hat 7.x 或 CentOS 7.x 上安装 Ident 服务器:

$ yum install authd
$ yum install xinetd

Ubuntu/debian

通过运行此命令,在 Ubuntu 或 Debian 上安装 oidentd

$ sudo apt-get install oidentd

SUSE Linux Enterprise Server

从以下位置安装 pidentdxinetd RPM:

ubuntu/debian 的安装后步骤

在 Ubuntu/Debian 系统上安装 oidentd 后,请继续执行以下步骤:

  1. 验证 Ident 服务器接受 IPv6 地址,以防止身份验证失败。若要执行此操作,必须启用此功能。在脚本 /etc/init.d/oidentd 中,更改行:

    exec="/usr/sbin/oidentd"
    

    exec="/usr/sbin/oidentd -a ::"
    

    然后,在 Linux 提示中,使用 oidentd 启动 -a ::

  2. 使用以下命令重新启动服务器:

    $ /etc/init.d/oidentd restart
    

Red Hat 7.x/CentOS 7.x 和 SUSE Linux Enterprise Server 的安装后步骤

在 Red Hat 7.x/CentOS 7.x 或 SUSE Linux Enterprise Server 系统上安装所需的包之后,继续执行以下步骤:

  1. 通过在配置文件 /etc/xinetd.d/auth 中设置 disable = no 来启用 auth 服务。如果此文件不存在,请创建该文件。以下是一个示例配置文件:

    service auth
    {
            disable = no
            socket_type = stream
            wait = no
            user = ident
            cps = 4096 10
            instances = UNLIMITED
            server = /usr/sbin/in.authd
            server_args = -t60 --xerror --os
    }
    
  2. 使用以下命令重新启动 xinetd 服务:

    $ service xinetd restart
    

2 - 为数据库用户配置 Ident 身份验证

要配置 Ident 身份验证,请执行以下步骤:

  1. 创建使用 Ident 的身份验证方法。

    Ident 服务器必须和您的数据库安装在相同的计算机上,所以请指定关键字 LOCAL。Vertica 要求 Ident 服务器和数据库始终与您的数据库位于相同的计算机上。

    => CREATE AUTHENTICATION v_ident METHOD 'ident' LOCAL;
    
  2. 设置 Ident 身份验证参数,指定允许连接到您的数据库的系统用户。

    => ALTER AUTHENTICATION v_ident SET system_users='user1:user2:user3';
    
  3. 将身份验证方法与 Vertica 用户相关联。使用 GRANT 语句,允许系统用户 user1 使用 Ident 身份验证登录:

    => GRANT AUTHENTICATION v_ident TO user1;