zoukankan      html  css  js  c++  java
  • Greenplum身份验证方式-LDAP

    本文记述Greenplum使用LDAP做身份验证的过程。

    略过搭建LDAP服务器部分

    gpdb master做设置

        Gpdb master 实际是作为ldap客户端,需要安装 # yum install -y openldap-clients

        Gpdb创建数据库用户user4,并对testdb.test1表有权限。

    在LDAP服务器上向ldap中增加账户

    创建ldif文件内容为

    dn:dc=gp1,dc=idap

    objectClass:top

    objectClass:dcObject

    objectClass:organization

    dc:gp1

    o:gp1

     

    dn:ou=users,dc=gp1,dc=idap

    objectClass:organizationalUnit

    ou:users

     

    dn:uid=user4-2,ou=users,dc=gp1,dc=idap

    objectClass:inetOrgPerson

    userid:user4

    cn:user4-2

    sn:user4-2

    userPassword:passwd4-2

     

        调用命令 # ldapadd -x -W -D "cn=ldapadm,dc=idap" -f ./b.ldif

     

    pg_hba.conf 配置文件

    在pg_hba.conf里面有两种配置方式,

    一种是将登录用户名作为dn的一部分,

    host all user4 0.0.0.0/0 ldap ldapserver=idap-66 ldapprefix="uid=" ldapsuffix=",ou=users,dc=gp1,dc=idap"

     

    另一种是用户名可以不在dn里面,这样更灵活一些(采用这种)

    host all user4 10.47.0.153/32 ldap ldapserver=idap-66 ldapbasedn="uid=user4-2,ou=users,dc=gp1,dc=idap" ldapbinddn="cn=ldapadm,dc=idap" ldapbindpasswd="WOH/BJryZ1cdeG4dRpHyc9vS5dl70DYw" ldapsearchattribute="userid"

     

    JDBC客户端代码

          Class.forName("org.postgresql.Driver");

          String url = "jdbc:postgresql://10.110.18.241/testdb";

          String pwd = "password123";

          Connection conn = DriverManager.getConnection(url, "user4", pwd);

     

    身份验证的逻辑

        客户端将user4发送到greenplum,找到对应的配置项,即 host all user4 ** 。

        发现验证方式是ldap,即通过属性ldapserver dn binddn passwd等连接ldap,查找到user4-2条目(属性userid=user4) 则成功了第一步,第二步验证密码,即将jdbc客户端的密码与user4-2.userPassword 进行比较。

      数据库用户登录的密码不再是保存在数据库了。

      数据库用户登录的密码可以在ldap 上通过命令ldappasswd修改,即修改了属性userPassword的值

     

    注意 这里密码从客户端到GPmaster是通过明文传输的。使用SSL通道更好些。

     

  • 相关阅读:
    Python random模块下的常用函数小结
    MySQL 数据库连接
    LeetCode 376. 摆动序列 做题小结
    LeetCode 1005. K 次取反后最大化的数组和 做题小结
    LeetCode 455. 分发饼干 做题小结
    完美解决Python与anaconda之间的冲突问题
    LeetCode 122. 买卖股票的最佳时机 II 做题小结
    LeetCode 714. 买卖股票的最佳时机含手续费 做题小结
    如何去除有道云笔记广告(windows)
    baby web
  • 原文地址:https://www.cnblogs.com/fangjx/p/6396134.html
Copyright © 2011-2022 走看看