暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

HDP+Postgresql Ldap认证配置

Python大数据与SQL优化笔记 2019-03-25
650

LDAP的搭建大家可以自行百度


最近项目上需要把Postgresql的认证方式通过LDAP来实现,所以就有了这篇文章的记录,如下:


LDAP入门

  • 首先要先理解什么是LDAP,当时我看了很多解释,也是云里雾里,弄不清楚。在这里给大家稍微捋一捋。

  • 首先LDAP是一种通讯协议,LDAP支持TCP/IP。协议就是标准,并且是抽象的。在这套标准下,AD(Active Directory)是微软出的一套实现。
    那AD是什么呢?暂且把它理解成是个数据库。也有很多人直接把LDAP说成数据库(可以把LDAP理解成存储数据的数据库)。像是其他数据库一样,LDAP也是有client端和server端。server端是用来存放资源,client端用来操作增删改查等操作。

  • 而我们通常说的LDAP是指运行这个数据库的服务器。

  • 可以简单理解AD =LDAP服务器+LDAP应用。



作者:消失er
链接:https://www.jianshu.com/p/7e4d99f6baaf
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


配置:

/var/lib/pgsql/data/pg_hba.conf

查找Postgresql 的权限配置文件


在host栏下加上下面的内容,具体的根据实际环境来定


host  all    all  0.0.0.0/0  ldap ldapserver=xxxx ldapprefix="uid=" ldapsuffix=",ou=users,dc=xxxxchina,dc=cloud"


记得重启postgresql,重要


然后Postgresql  

create user test; #test为LDAP里面的用户


那么用户test就可以用LDAP的密码登录了


下面是一个SP自动创建用户


CREATE or REPLACE FUNCTION sp_dp_role_assgin(user_name varchar(20),role_name varchar(50)) RETURNS void AS $$

declare

query text;

begin

if exists (select * from pg_user where usename = user_name) then

raise notice 'User:% existed!!!',user_name;

else

query='create user '||quote_ident(user_name)||' in role '||role_name;

raise notice '%', query;

raise notice 'log_info';

execute query;

end if;

EXCEPTION

WHEN others THEN

RAISE EXCEPTION '(%)', SQLERRM;

end;

$$ LANGUAGE plpgsql;


文章转载自Python大数据与SQL优化笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论