本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
ldap2pg是一款自动化PostgreSQL角色和权限管理的工具,能够从YAML配置文件或LDAP目录同步角色信息,实现角色的创建、更新、删除以及权限的授予与撤销。它弥补了PostgreSQL原生LDAP密码验证功能的不足,为企业环境提供集中化、自动化的数据库访问控制管理解决方案。
ldapsearch(1)命令格式ldap2pg适用于需要集中管理PostgreSQL数据库访问权限的企业环境,特别适合以下场景:
已验证支持的LDAP服务包括:Samba Directory、OpenLDAP、FreeIPA、Oracle Internet Directory和Microsoft Active Directory。
ldap2pg必须使用配置文件(默认名为ldap2pg.yml)描述LDAP搜索规则和角色映射。可从项目仓库获取示例配置:
$ curl -LO [***] $ editor ldap2pg.yml # 根据实际需求修改
配置文件示例(版本6):
version: 6 rules: - role: name: nominal options: NOLOGIN comment: "Database owner" - ldapsearch: base: ou=people,dc=ldap,dc=ldap2pg,dc=docker filter: "(objectClass=organizationalPerson)" role: name: '{cn}' options: LOGIN: yes CONNECTION LIMIT: 5
docker run -it --rm \ -v $(pwd)/ldap2pg.yml:/etc/ldap2pg.yml:ro \ -e POSTGRES_URI="postgresql://user:password@postgres-host:5432/dbname" \ -e LDAP_URI="ldaps://ldap-host:636" \ -e LDAP_BIND_DN="cn=admin,dc=example,dc=com" \ -e LDAP_BIND_PASSWORD="secure-password" \ dalibo/ldap2pg --config /etc/ldap2pg.yml
docker run -it --rm \ -v $(pwd)/ldap2pg.yml:/etc/ldap2pg.yml:ro \ dalibo/ldap2pg --config /etc/ldap2pg.yml --real
| 参数 | 描述 |
|---|---|
--check | 检查模式,PostgreSQL实例未同步时退出码为1 |
--color | 强制彩色输出(默认启用) |
-c, --config string | YAML配置文件路径(使用-表示标准输入) |
-C, --directory string | 配置文件目录路径 |
-?, --help | 显示帮助信息并退出 |
-q, --quiet | 降低日志详细程度(可多次使用) |
-R, --real | 实际模式,应用变更到PostgreSQL实例 |
-P, --skip-privileges | 禁用权限同步功能 |
-v, --verbose | 增加日志详细程度(可多次使用) |
-V, --version | 显示版本信息并退出 |
预览变更效果,不实际修改数据库:
$ docker run -it --rm -v $(pwd)/ldap2pg.yml:/etc/ldap2pg.yml dalibo/ldap2pg --config /etc/ldap2pg.yml 08:25:12 INFO Starting ldap2pg version=v6.0-alpha5 runtime=go1.21.0 commit=<none> 08:25:12 INFO Using YAML configuration file. path=/etc/ldap2pg.yml 08:25:12 INFO Running as unprivileged user. user=ldap2pg super=false server="PostgreSQL 15.3" cluster=ldap2pg-dev database=nominal 08:25:12 INFO Connected to LDAP directory. uri=ldaps://ad.bridoulou.fr authzid="dn:cn=administrator,cn=users,dc=bridoulou,dc=fr" 08:25:12 INFO Dry run. No change will be applied. 08:25:12 CHANGE Create role. role=charles database=nominal 08:25:12 CHANGE Set role comment. role=charles database=nominal 08:25:12 CHANGE Inherit role for management. role=charles database=nominal
应用变更到数据库:
$ docker run -it --rm -v $(pwd)/ldap2pg.yml:/etc/ldap2pg.yml dalibo/ldap2pg --config /etc/ldap2pg.yml --real 08:25:12 INFO Starting ldap2pg version=v6.0-alpha5 runtime=go1.21.0 commit=<none> 08:25:12 INFO Using YAML configuration file. path=/etc/ldap2pg.yml 08:25:12 INFO Real mode. Postgres instance will modified. 08:25:12 CHANGE Create role. role=charles database=nominal 08:25:12 CHANGE Set role comment. role=charles database=nominal 08:25:12 CHANGE Inherit role for management. role=charles database=nominal 08:25:12 CHANGE Alter options. role=alain options="LOGIN CONNECTION LIMIT 5" database=nominal
ldap2pg采用PostgreSQL许可证授权。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429