安全和认证(postgresql.conf)
介绍设置客户端和服务器的安全认证方式的相关参数。
authentication_timeout
参数说明:完成客户端认证的最长时间。如果一个客户端没有在这段时间里完成与服务器端的认证,则服务器自动中断与客户端的连接,这样就避免了出问题的客户端无限制地占用连接数。
参数类型:SIGHUP
取值范围:整型,1~600,最小单位为秒(s)。
默认值:1min
auth_iteration_count
参数说明:认证加密信息生成过程中使用的迭代次数。
参数类型:SIGHUP
取值范围:整型,2048-134217728
默认值:50000
迭代次数设置过大会导致认证、用户创建等涉及口令加密的场景性能劣化,请根据实际硬件条件合理设置迭代次数。
session_timeout
参数说明:表明与服务器建立链接后,不进行任何操作的最长时间。
参数类型:USERSET
取值范围:整型,0-86400,最小单位为秒(s),0表示关闭超时设置。
默认值:10min
- GaussDB(DWS) gsql客户端中有自动重连机制,所以针对初始化用户本地连接,超时后gsql表现的现象为断开后重连。
- pooler连接池到其它CN和DN的连接,不受session_timeout参数控制。
ssl
参数说明:启用SSL连接。
参数类型:POSTMASTER
取值范围:布尔型
- on表示启用SSL连接。
- off表示不启用SSL连接。
GaussDB(DWS)目前支持SSL的场景为客户端连接CN场景,该参数目前建议只在CN中开启。
默认值:on
ssl_ciphers
参数说明:指定SSL支持的加密算法列表。
参数类型:POSTMASTER
取值范围:字符串,如果指定多个加密算法,加密算法之间需要以分号分割。
默认值:ALL
ssl_renegotiation_limit
参数说明:指定在会话密钥重新协商之前,通过SSL加密通道可以传输的流量。这个重新协商流量限制机制可以减少攻击者针对大量数据使用密码分析法破解密钥的几率,但是也带来较大的性能损失。流量是指发送和接受的流量总和。
参数类型:USERSET
参数建议保持默认设置,即禁用重协商机制。不建议通过gs_guc工具或其他方式直接在postgresql.conf文件中设置ssl_renegotiation_limit参数,即使设置也不会生效。
取值范围:整型,0~INT_MAX,单位为KB。其中0表示禁用重新协商机制。
默认值:0
password_policy
参数说明:在使用CREATE ROLE/USER或者ALTER ROLE/USER命令创建或者修改GaussDB(DWS)帐户时,该参数决定是否进行密码复杂度检查。
参数类型:SIGHUP
从安全性考虑,请勿关闭密码复杂度策略。
取值范围:整型,0、1
- 0表示不采用任何密码复杂度策略。
- 1表示采用默认密码复杂度校验策略。
默认值:1
password_reuse_time
参数说明:在使用ALTER USER或者ALTER ROLE修改用户密码时,该参数指定是否对新密码进行可重用天数检查。
参数类型:SIGHUP
修改密码时会检查配置参数password_reuse_time和password_reuse_max。
- 当password_reuse_time和password_reuse_max都为正数时,只要满足其中任一个,即可认为密码可以重用。
- 当password_reuse_time为0时,表示不限制密码重用天数,仅限制密码重用次数。
- 当password_reuse_max为0时,表示不限制密码重用次数,仅限制密码重用天数。
- 当password_reuse_time和password_reuse_max都为0时,表示不对密码重用进行限制。
取值范围:浮点型,0~3650,单位为天。
- 0表示不检查密码可重用天数。
- 正数表示新密码不能为该值指定的天数内使用过的密码。
默认值:60
password_reuse_max
参数说明:在使用ALTER USER或者ALTER ROLE修改用户密码时,该参数指定是否对新密码进行可重用次数检查。
参数类型:SIGHUP
修改密码时会检查配置参数password_reuse_time和password_reuse_max。
- 当password_reuse_time和password_reuse_max都为正数时,只要满足其中任一个,即可认为密码可以重用。
- 当password_reuse_time为0时,表示不限制密码重用天数,仅限制密码重用次数。
- 当password_reuse_max为0时,表示不限制密码重用次数,仅限制密码重用天数。
- 当password_reuse_time和password_reuse_max都为0时,表示不对密码重用进行限制。
取值范围:整型,0~1000
- 0表示不检查密码可重用次数。
- 正整数表示新密码不能为该值指定的次数内使用过的密码。
默认值:0
password_lock_time
参数说明:该参数指定帐户被锁定后自动解锁的时间。
参数类型:SIGHUP
password_lock_time和failed_login_attempts必须都为正数时锁定和解锁功能才能生效。
取值范围:浮点型,0~365,单位为天。
- 0表示密码验证失败时,自动锁定功能不生效。
- 正数表示帐户被锁定后,当锁定时间超过password_lock_time设定的值时,帐户将会被自行解锁。
默认值:1
failed_login_attempts
参数说明:在任意时候,如果输入密码错误的次数达到failed_login_attempts则当前帐户被锁定,password_lock_time秒后被自动解锁。 例如,登录时输入密码失败,ALTER USER时修改密码失败等。
参数类型:SIGHUP
取值范围:整型,0~1000
- 0表示自动锁定功能不生效。
- 正整数表示当错误密码次数达到failed_login_attempts设定的值时,当前帐户将被锁定。
默认值:10
- failed_login_attempts和password_lock_time必须都为正数时锁定和解锁功能才能生效。
- failed_login_attempts会与客户端SSL连接模式共同决定用户的密码错误次数。当PGSSLMODE取值是allow或prefer时,客户的一次密码连接请求会生成两次连接请求:一次是尝试SSL连接,另一次是尝试非SSL连接。此时,用户感知到的密码错误次数是failed_login_attempts除以2。
password_encryption_type
参数说明:该字段决定采用何种加密方式对用户密码进行加密存储。
参数类型:SIGHUP
取值范围:整型,0、1、2
- 0表示采用md5方式对密码加密。
- 1表示采用sha256方式对密码加密,兼容postgres客户端的MD5用户认证方式。
- 2表示采用sha256方式对密码加密。
- md5为不安全的加密算法,不建议用户使用。
- 如果当前集群为8.0.0及以下版本升级到当前版本,该参数的默认值为保持前向兼容和原低版本集群一致。例如,8.0.0版本的password_encryption_type默认值为1,在8.0.0集群升级到8.1.1版本后,password_encryption_type默认值保持向前兼容仍旧是1。
默认值:2
password_min_length
参数说明:该字段决定帐户密码的最小长度。
参数类型:SIGHUP
取值范围:整型,6~999
默认值:8
password_max_length
参数说明:该字段决定帐户密码的最大长度。
参数类型:SIGHUP
取值范围:整型,6~999
默认值:32
password_min_uppercase
参数说明:该字段决定帐户密码中至少需要包含大写字母个数。
参数类型:SIGHUP
取值范围:整型,0~999
- 0表示没有限制。
- 1~999表示创建账户所指定的密码中至少需要包含大写字母个数。
默认值:0
password_min_lowercase
参数说明:该字段决定帐户密码中至少需要包含小写字母的个数。
参数类型:SIGHUP
取值范围:整型,0~999
- 0表示没有限制。
- 1~999表示创建帐户所指定的密码中至少需要包含小写字母个数。
默认值:0
password_min_digital
参数说明:该字段决定帐户密码中至少需要包含数字的个数。
参数类型:SIGHUP
取值范围:整型,0~999
- 0表示没有限制。
- 1~999表示创建帐户所指定的密码中至少需要包含数字个数。
默认值:0
password_min_special
参数说明:该字段决定帐户密码中至少需要包含特殊字符个数。
参数类型:SIGHUP
取值范围:整型,0~999
- 0表示没有限制。
- 1~999表示创建帐户所指定的密码中至少需要包含特殊字符个数。
默认值:0
password_effect_time
参数说明:该字段决定帐户密码的有效时间。
参数类型:SIGHUP
取值范围:浮点型,0~999,单位为天。
- 0表示不开启有效期限制功能。
- 1~999表示创建帐户所指定的密码有效期,临近或超过有效期系统会提示用户修改密码。
默认值:90
password_notify_time
参数说明:该字段决定帐户密码到期前提醒的天数。
参数类型:SIGHUP
取值范围:整型,0~999,单位为天。
- 0表示不开启提醒功能。
- 1~999表示帐户密码到期前提醒的天数。
默认值:7