PostgreSQL 使用 LDAP 认证方式

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介:

LDAP服务器的安装,参考此处:

http://www-06.ibm.com/jp/linux/tech/doc/attachments/openldap_install_v1.3.pdf#search='OpenLDAP'

 

而PostgreSQL中与LDAP相关的设置,可以参考:

https://secure.sqlmanager.net/en/articles/postgresql/654

 

在LDAP服务器端,建立一个用户user4,具体细节参考上述URL中的新用户登录一节,

建立用户user4时,使用的文件:

复制代码
dn: uid=user4,ou=People,o=System Support,dc=my-domain,dc=com
uid: user4
cn: user4
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:
loginShell: /bin/bash
uidNumber: 503
gidNumber: 500
homeDirectory: /home/user4
复制代码

还得使用slappasswd命令,个user4用户设置口令,然后把得到的加密口令拷贝到userPassword处。

然后使用ldapadd命令:

ldapadd -x -f useradd-list.ldif -D "cn=Manager,dc=my-domain,dc=com" -W 

然后再查询看看:

复制代码
[root@srv openldap]#  ldapsearch -x -b "ou=People,o=System Support,dc=my-domain,dc=com"
# extended LDIF
#
# LDAPv3
# base <ou=People,o=System Support,dc=my-domain,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# People, System Support, my-domain.com
dn: ou=People,o=System Support,dc=my-domain,dc=com
objectClass: organizationalUnit
ou: People

# user4, People, System Support, my-domain.com
dn: uid=user4,ou=People,o=System Support,dc=my-domain,dc=com
uid: user4
cn: user4
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
loginShell: /bin/bash
uidNumber: 503
gidNumber: 500
homeDirectory: /home/user4
userPassword:: e2NyeXB0fSQxJC9kbjVRL2dPJHNkamdMZm1iRngxRnVFSXczNk9xeTE=
shadowLastChange: 15971

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2
[root@srv openldap]# 
复制代码

 

LDAP服务器端准备完毕后,在postgresql中,还要建立同名的用户user4:

postgres>create user user4 password '!qaz2wsx';

至于口令是否和前述的相同并不重要。

 

为了登录后有数据库供user4使用,还需要创建数据库:

postgres>create database user4 owner user4;

 

然后,在postgresql所在机器上,进行ldap相关设置:

为了更加简化此问题,暂时不采用pam相关的认证方式,而是只采用单纯的LDAP方式。

根据刚才的LDAP服务器上的查询,给postgresql中的pg_hba.conf文件进行配置:

复制代码
-bash-3.2$ pwd
/opt/PostgreSQL/9.2
-bash-3.2$ cat ./data/pg_hba.conf
# PostgreSQL Client Authentication Configuration File
...


# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             user4                         ldap ldapserver=16.157.247.8 ldapprefix="uid=" ldapsuffix=",ou=People,o=System Support,dc=my-domain,dc=com"
#local   all             all                                     md5
# IPv4 local connections:
#host    all             user4                                   pam postgresql
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                md5
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5
-bash-3.2$ 
复制代码

然后,验证登录过程:

复制代码
-bash-3.2$ ./bin/psql -Uuser4
Password for user user4: 
psql.bin (9.2.4)
Type "help" for help.

No entry for terminal type "xterm";
using dumb terminal settings.
user4=> 
复制代码

此时LDAP服务器的log中有如下信息:

复制代码
Sep 24 13:19:54 srv slapd[2311]: conn=9 fd=12 ACCEPT from IP=16.157.245.74:44853 (IP=0.0.0.0:389) 
Sep 24 13:19:54 srv slapd[2311]: conn=9 op=0 BIND dn="uid=user4,ou=People,o=System Support,dc=my-domain,dc=com" method=128 
Sep 24 13:19:54 srv slapd[2311]: conn=9 op=0 BIND dn="uid=user4,ou=People,o=System Support,dc=my-domain,dc=com" mech=SIMPLE ssf=0 
Sep 24 13:19:54 srv slapd[2311]: conn=9 op=0 RESULT tag=97 err=0 text= 
Sep 24 13:19:54 srv slapd[2311]: conn=9 op=1 UNBIND 
Sep 24 13:19:54 srv slapd[2311]: conn=9 fd=12 closed 
复制代码

登录成功





本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/p/3336657.html,如需转载请自行联系原作者

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
4月前
|
关系型数据库 MySQL 数据安全/隐私保护
windows mysql8 安装后 提示密码不对,修改下密码认证方式就可以了
windows mysql8 安装后 提示密码不对,修改下密码认证方式就可以了
1118 3
|
29天前
|
存储 关系型数据库 MySQL
基于案例分析 MySQL 权限认证中的具体优先原则
【10月更文挑战第26天】本文通过具体案例分析了MySQL权限认证中的优先原则,包括全局权限、数据库级别权限和表级别权限的设置与优先级。全局权限优先于数据库级别权限,后者又优先于表级别权限。在权限冲突时,更严格的权限将被优先执行,确保数据库的安全性与资源合理分配。
|
6月前
|
关系型数据库 网络安全 数据安全/隐私保护
你会开启Postgresql 的SSL单向认证 配置?
你会开启Postgresql 的SSL单向认证 配置?
334 0
你会开启Postgresql 的SSL单向认证 配置?
|
存储 SQL Cloud Native
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(上)——一、产品概述
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(上)——一、产品概述
|
存储 SQL 弹性计算
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(上)——二、产品架构及原理
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(上)——二、产品架构及原理
|
SQL JSON Cloud Native
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(上)——三、产品相关概念(上)
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(上)——三、产品相关概念(上)
|
存储 固态存储 Cloud Native
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(上)——三、产品相关概念(下)
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(上)——三、产品相关概念(下)
|
存储 SQL Cloud Native
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(下)——一、弹性能力(资源池、分时弹性)
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(下)——一、弹性能力(资源池、分时弹性)
|
SQL 分布式计算 DataWorks
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(下)——二、数据导入导出与同步链路搭建(上)
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(下)——二、数据导入导出与同步链路搭建(上)
|
SQL 存储 分布式计算
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(下)——二、数据导入导出与同步链路搭建(下)
《阿里云认证的解析与实战-数据仓库ACP认证》——云原生数据仓库AnalyticDB MySQL版解析与实践(下)——二、数据导入导出与同步链路搭建(下)
下一篇
无影云桌面