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;
大连人流医院 http://mobile.dlrlyy.net/
大连哪家男科医院好 http://mobile.nk0411.com/
大连正规妇科医院 http://mobile.bhyy0411.com/