安全和认证(postgresql.conf)
介绍设置客户端和服务器的安全认证方式的相关参数。
authentication_timeout
参数说明:完成客户端认证的最长时间。如果一个客户端没有在这段时间里完成与服务器端的认证,则服务器自动中断与客户端的连接,这样就避免了出问题的客户端无限制地占用连接数。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,最小值为1,最大值为600,最小单位为s。
默认值:1min
auth_iteration_count
参数说明:认证加密信息生成过程中使用的迭代次数。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,2048-134217728。
默认值:10000
迭代次数设置过小会降低口令存储的安全性,设置过大会导致认证、用户创建等涉及口令加密的场景性能劣化,请根据实际硬件条件合理设置迭代次数,推荐采用默认迭代次数。
session_authorization
参数说明:当前会话的用户标识。
该参数属于USERSET类型参数,只能通过《开发者指南》中“SQL参考 > SQL语法 > SET SESSION AUTHORIZATION”章节语法设置,不支持直接设置。
取值范围:字符串。
默认值:NULL
session_timeout
参数说明:表明与服务器建立链接后,不进行任何操作的最长时间。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0-86400,最小单位为s,0表示关闭超时设置。
默认值:1800
GaussDB gsql客户端中有自动重连机制,所以针对初始化用户本地连接,超时后gsql表现的现象为断开后重连。
ssl
参数说明:启用SSL连接。请在使用这个选项之前阅读《开发者指南》中“数据库使用入门 > 连接数据库 > 使用gsql连接”章节。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示启用SSL连接。
- off表示不启用SSL连接。
GaussDB目前支持SSL的场景为客户端连接CN场景,该参数目前建议只在CN中开启,DN默认值为off。开启此参数需要同时确保ssl_cert_file、ssl_key_file和ssl_ca_file参数配置正确,如果使用国密认证,还需要确保ssl_enc_cert_file和ssl_enc_key_file参数配置正确,不正确的配置可能会导致集群无法正常启动。
默认值:on(CN实例);off(DN实例)
comm_ssl
参数说明:启用主DN之间SSL连接。请在使用这个选项之前阅读《开发者指南》中“数据库使用入门 > 连接数据库 > 使用gsql连接”章节。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示主DN之间启用SSL连接。
- off表示主DN之间不启用SSL连接。
- 该参数目前建议只在DN中开启,CN默认值为off。
- 开启此参数需要同时确保ssl_cert_file、ssl_key_file和ssl_ca_file参数配置正确,不正确的配置可能会导致集群无法正常启动。
默认值:off
require_ssl
参数说明:设置服务器端是否强制要求SSL连接,该参数只有当参数ssl为on时才有效。请在使用这个选项之前阅读《开发者指南》中“数据库使用入门 > 连接数据库 > 使用gsql连接”章节。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示服务器端强制要求SSL连接。
- off表示服务器端对是否通过SSL连接不作强制要求。
GaussDB目前支持SSL的场景为客户端连接CN场景,该参数目前建议只在CN中开启。
默认值:off
ssl_ciphers
参数说明:指定SSL支持的加密算法列表,仅sysadmin用户可以访问。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串,如果指定多个加密算法,加密算法之间需要以分号分割。
ssl_ciphers设置错误会导致集群不能正常启动。
默认值:ALL
ssl_renegotiation_limit
参数说明:指定在会话密钥重新协商之前,通过SSL加密通道可以传输的流量。这个重新协商流量限制机制可以减少攻击者针对大量数据使用密码分析法破解密钥的几率,但是也带来较大的性能损失。流量是指发送和接受的流量总和。使用SSL重协商机制可能引入其他风险,因此已禁用SSL重协商机制,为保持版本兼容保留此参数,修改参数配置不再起作用。
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,最小值为0,最大值为2147483647。单位为KB。其中0表示禁用重新协商机制。
默认值:0
ssl_cert_file
参数说明:指定包含SSL服务器证书的文件的名称,其相对路径是相对于数据目录的。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串
默认值:server.crt
ssl_key_file
参数说明:指定包含SSL私钥的文件名称,其相对路径是相对于数据目录的。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串
默认值:server.key
ssl_enc_cert_file
参数说明:指定包含SSL服务器国密加密证书的文件的名称,其相对路径是相对于数据目录的。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串
默认值:server_enc.crt
ssl_enc_key_file
参数说明:指定包含SSL私钥的文件名称,其相对路径是相对于数据目录的。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串
默认值:server_enc.key
ssl_ca_file
参数说明:指定包含CA信息的根证书名称,其相对路径是相对于数据目录的。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串,其中空字符串表示没有CA文件被加载,不进行客户端证书验证。
默认值:cacert.pem
ssl_crl_file
参数说明:证书吊销列表,如果客户端证书在该列表中,则当前客户端证书被视为无效证书,其相对路径是相对于数据目录的。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串,空字符串表示没有吊销列表。
默认值:空字符串
ssl_cert_notify_time
参数说明:SSL服务器证书到期前提醒的天数。建立连接初始化ssl证书时,若当前时间距离证书到期时间小于设定值,则在日志中打印过期提醒。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,最小值为7,最大值为180,单位为天。
默认值:90
krb_server_keyfile
参数说明:指定Kerberos服务主配置文件的位置,仅sysadmin用户可以访问。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串
默认值:空字符串
krb_caseins_users
参数说明:设置Kerberos用户名是否大小写敏感。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示大小写不敏感
- off表示大小写敏感
默认值:off
modify_initial_password
参数说明:当GaussDB安装成功后,数据库中仅存在一个初始用户(UID为10的用户)。客户通过该账户初次登录数据库进行操作时,该参数决定是否要对该初始账户的密码进行修改。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
如果安装过程中未指定初始用户密码,则安装后初始用户密码默认为空,执行其他操作前需要先通过gsql客户端设置初始用户的密码。此参数功能不再生效,保留此参数仅为兼容升级场景。
取值范围:布尔型
- on表示集群安装成功后初始用户首次登录操作前需要修改初始密码。
- off表示集群安装成功后初始用户无需修改初始密码即可进行操作。
默认值:off
password_policy
参数说明:在使用CREATE ROLE/USER或者ALTER ROLE/USER命令创建或者修改GaussDB账户时,该参数决定是否进行密码复杂度检查。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
从安全性考虑,请勿关闭密码复杂度策略。
取值范围:0、1
- 0表示不采用密码复杂度校验策略。
- 1表示采用默认密码复杂度校验策略。
默认值:1
password_reuse_time
参数说明:在使用ALTER USER或者ALTER ROLE修改用户密码时,该参数指定是否对新密码进行可重用天数检查。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
修改密码时会检查配置参数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表示不检查密码可重用的天数。
- 正数表示新密码不能为该值指定的天数内使用过的密码。
password_reuse_max
参数说明:在使用ALTER USER或者ALTER ROLE修改用户密码时,该参数指定是否对新密码进行可重用次数检查,仅sysadmin用户可以访问。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
修改密码时会检查配置参数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类型参数,请参考表1中对应设置方法进行设置。
password_lock_time和failed_login_attempts必须都为正数时锁定和解锁功能才能生效。
取值范围:浮点型,最小值为0,最大值为365,单位为天。整数部分表示天数,小数部分可以换算成时、分、秒,如:password_lock_time=1.5,表示1天零12小时。
- 0表示密码验证失败时,自动锁定功能不生效。
- 正数表示账户被锁定后,当锁定时间超过password_lock_time设定的值时,账户将会被自行解锁。
默认值:1
failed_login_attempts
参数说明:在任意时候,如果输入密码错误的次数达到failed_login_attempts则当前账户被锁定,password_lock_time秒后被自动解锁,仅sysadmin用户可以访问。例如,登录时输入密码失败,ALTER USER时修改密码失败等。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
failed_login_attempts和password_lock_time必须都为正数时锁定和解锁功能才能生效。
取值范围:整型,最小值为0,最大值为1000。
- 0表示自动锁定功能不生效。
- 正整数表示当错误密码次数达到failed_login_attempts设定的值时,当前账户将被锁定。
默认值:10
password_encryption_type
参数说明:该字段决定采用何种加密方式对用户密码进行加密存储。修改此参数的配置不会自动触发已有用户密码加密方式的修改,只会影响新创建用户或修改用户密码操作。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:0、1、2、3
- 0表示采用md5方式对密码加密。
- 1表示采用sha256和md5两种方式分别对密码加密。
- 2表示采用sha256方式对密码加密。
- 3表示采用sm3方式对密码加密。
MD5加密算法安全性低,存在安全风险,不建议使用。
默认值:2
password_min_length
参数说明:该字段决定账户密码的最小长度,仅sysadmin用户可以访问。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,6~999个字符。
默认值:8
password_max_length
参数说明:该字段决定账户密码的最大长度,仅sysadmin用户可以访问。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,6~999个字符。
默认值:32
password_min_uppercase
参数说明:该字段决定账户密码中至少需要包含大写字母个数,仅sysadmin用户可以访问。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0~999
- 0表示没有限制。
- 1~999表示创建账户所指定的密码中至少需要包含大写字母个数。
默认值:0
password_min_lowercase
参数说明:该字段决定账户密码中至少需要包含小写字母的个数,仅sysadmin用户可以访问。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0~999
- 0表示没有限制。
- 1~999表示创建账户所指定的密码中至少需要包含小写字母个数。
默认值:0
password_min_digital
参数说明:该字段决定账户密码中至少需要包含数字的个数,仅sysadmin用户可以访问。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0~999
- 0表示没有限制。
- 1~999表示创建账户所指定的密码中至少需要包含数字个数。
默认值:0
password_min_special
参数说明:该字段决定账户密码中至少需要包含特殊字符个数,仅sysadmin用户可以访问。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0~999
- 0表示没有限制。
- 1~999表示创建账户所指定的密码中至少需要包含特殊字符个数。
默认值:0
password_effect_time
参数说明:该字段决定账户密码的有效时间。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:浮点型,最小值为0,最大值为999,单位为天。
- 0表示不开启有效期限制功能。
- 1~999表示创建账户所指定的密码有效期,临近或超过有效期系统会提示用户修改密码。
默认值:0
password_notify_time
参数说明:该字段决定账户密码到期前提醒的天数。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,最小值为0,最大值为999,单位为天。
- 0表示不开启提醒功能。
- 1~999表示账户密码到期前提醒的天数。
默认值:7