外观
GaussDB 认证方式
密码认证
密码加密算法
md5
- 基于 MD5 哈希算法的密码认证
- 客户端发送加密后的密码,而非明文
- 兼容性好,但安全性相对较低
scram-sha-256
- 基于 SCRAM-SHA-256 算法的密码认证
- 提供双向认证,安全性更高
- 支持密码变更和撤销
- 推荐使用的认证方式
密码策略配置
密码复杂度
# 密码最小长度
password_min_length = 8
# 密码必须包含大小写字母、数字和特殊字符
password_policy = 2
# 密码有效期(天)
password_effect_time = 90登录失败处理
# 登录失败次数限制
password_max_try_times = 10
# 登录失败锁定时间(分钟)
password_lock_time = 10LDAP 认证
LDAP 认证配置
服务器配置
# LDAP 服务器地址
ldap_server = ldap://ldap.example.com
# LDAP 服务器端口
ldap_port = 389
# LDAP 搜索基 DN
ldap_search_base = dc=example,dc=com
# LDAP 搜索属性
ldap_search_attribute = uid
# LDAP 绑定 DN
ldap_bind_dn = cn=admin,dc=example,dc=com
# LDAP 绑定密码
ldap_bind_password = password认证映射
- 将 LDAP 用户映射到 GaussDB 数据库用户
- 支持基于组的映射
- 可配置默认数据库和权限
LDAP 认证使用
sql
-- 创建 LDAP 认证的用户
CREATE USER ldap_user IDENTIFIED BY 'password' PASSWORD EXPIRE;
-- 配置用户使用 LDAP 认证
ALTER USER ldap_user CONNECTION LIMIT 10;SSL 认证
SSL 配置
服务器配置
# 启用 SSL
ssl = on
# SSL 证书文件
ssl_cert_file = 'server.crt'
# SSL 私钥文件
ssl_key_file = 'server.key'
# SSL CA 证书文件
ssl_ca_file = 'root.crt'客户端配置
- 配置客户端使用 SSL 连接
- 验证服务器证书
- 支持客户端证书认证
SSL 认证使用
bash
# 使用 SSL 连接数据库
gsql -h hostname -p 5432 -U username -d dbname -sslmode requireKerberos 认证
Kerberos 配置
服务器配置
# Kerberos 认证开关
krb_server_keyfile = '/path/to/krb5.keytab'
krb_srvname = 'postgres'客户端配置
- 配置 Kerberos 客户端
- 获取和管理 Kerberos 票据
- 配置 GaussDB 客户端使用 Kerberos 认证
Kerberos 认证使用
bash
# 获取 Kerberos 票据
kinit username@REALM
# 使用 Kerberos 连接数据库
gsql -h hostname -p 5432 -U username@REALM -d dbname -GPAM 认证
PAM 配置
PAM 服务配置
# /etc/pam.d/gaussdb
auth required pam_unix.so
account required pam_unix.soGaussDB 配置
# pg_hba.conf 配置
local all all pam
host all all 127.0.0.1/32 pam
host all all ::1/128 pamPAM 认证使用
sql
-- 创建 PAM 认证的用户
CREATE USER pam_user WITH PASSWORD 'password';
-- 配置 PAM 服务名称
ALTER SYSTEM SET pam_service_name = 'gaussdb';认证方式选择
认证方式比较
| 认证方式 | 安全性 | 配置复杂度 | 适用场景 |
|---|---|---|---|
| 密码认证 | 中 | 低 | 小型部署、开发环境 |
| LDAP 认证 | 高 | 中 | 企业级部署、集中管理 |
| SSL 认证 | 高 | 中 | 需要加密通信的场景 |
| Kerberos 认证 | 高 | 高 | 大型企业、SSO 环境 |
| PAM 认证 | 高 | 中 | 复杂认证场景 |
最佳实践
- 生产环境推荐使用 LDAP 或 Kerberos 认证
- 启用 SSL 加密通信
- 配置强密码策略
- 定期审计认证日志
- 根据业务需求选择合适的认证方式
认证日志和审计
认证日志配置
# 启用认证日志
log_connections = on
log_disconnections = on
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '认证审计
- 记录用户登录和退出信息
- 监控异常登录尝试
- 审计认证失败原因
- 生成认证报告
常见问题(FAQ)
Q1: 如何选择合适的认证方式?
A1: 选择认证方式时需要考虑以下因素:
- 安全性要求:根据数据敏感性选择合适的认证方式
- 部署规模:小型部署可以使用密码认证,大型部署推荐 LDAP 或 Kerberos
- 现有基础设施:考虑与现有身份管理系统的集成
- 管理复杂度:评估配置和维护成本
- 性能要求:某些认证方式可能会影响性能
Q2: 如何配置强密码策略?
A2: 配置强密码策略的方法:
-- 设置密码最小长度
ALTER SYSTEM SET password_min_length = 12;
-- 设置密码复杂度要求
ALTER SYSTEM SET password_policy = 2;
-- 设置密码有效期
ALTER SYSTEM SET password_effect_time = 60;
-- 设置登录失败限制
ALTER SYSTEM SET password_max_try_times = 5;Q3: 如何启用 SSL 认证?
A3: 启用 SSL 认证的步骤:
- 生成 SSL 证书和私钥
- 配置 postgresql.conf 中的 SSL 参数
- 更新 pg_hba.conf,要求使用 SSL 连接
- 重启数据库服务
- 客户端使用 SSL 连接数据库
Q4: 如何配置 LDAP 认证?
A4: 配置 LDAP 认证的步骤:
- 配置 LDAP 服务器连接参数
- 配置 pg_hba.conf,使用 ldap 认证方式
- 重启数据库服务
- 创建或映射 LDAP 用户
- 测试 LDAP 认证
Q5: 如何处理认证失败问题?
A5: 处理认证失败的方法:
- 检查用户名和密码是否正确
- 查看认证日志,分析失败原因
- 检查 pg_hba.conf 配置是否正确
- 检查认证服务器(如 LDAP、Kerberos)是否正常运行
- 检查网络连接是否正常
- 检查 SSL 证书是否过期或无效
