安全和认证(gaussdb.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
参数说明:表明与服务器建立连接后,不进行任何操作的最长时间。
参数类型:整型
参数单位:秒(s)
取值范围:0~86400(1d)。
- 0表示关闭超时设置。
- 正数表示与服务器建立连接后,不进行任何操作的最长时间。当超过设定的值后,会与服务器断开连接。
默认值:600s
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:设置为默认值。
GaussDB gsql客户端中有自动重连机制,所以针对初始化用户本地连接,超时后gsql表现的现象为断开后重连。
ssl
参数说明:服务端开启SSL连接。请在使用这个选项之前阅读《开发指南》中“数据库使用入门 > 连接数据库 > 使用gsql连接”章节。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on表示服务端开启SSL连接,实际通信过程中是否为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中对应设置方法进行设置。
取值范围:字符串
默认值:空字符串
ssl_enc_key_file
参数说明:指定包含SSL私钥的文件名称,其相对路径是相对于数据目录的。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:字符串
默认值:空字符串
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
参数说明:该参数指定账户被锁定后自动解锁的时间。
参数类型:浮点型
参数单位:天
password_lock_time和failed_login_attempts必须都为正数时锁定和解锁功能才能生效。
取值范围:0~365。整数部分表示天数,小数部分可以换算成时、分、秒,如:password_lock_time=1.5,表示1天零12小时。
- 0表示密码验证失败时,自动锁定功能不生效。
- 正数表示账户被锁定后,当锁定时间超过password_lock_time设定的值时,账户将会被自行解锁。
默认值:1
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:设置为默认值。自动解锁时间不宜设置过长,需要同failed_login_attempts参数设置保持在合理范围内,如果failed_login_attempts参数设置过小,自动解锁时间设置过长,会导致因误输入导致账号长时间无法使用,影响用户正常使用。
failed_login_attempts
参数说明:如果输入密码错误的次数达到failed_login_attempts参数所设定的值,则当前账户被锁定。在经过password_lock_time参数所设定的秒数后才会被自动解锁,其间仅sysadmin用户可以访问。例如,登录时输入密码失败,ALTER USER时修改密码失败等。
参数类型:整型
参数单位:次
failed_login_attempts和password_lock_time必须都为正数时锁定和解锁功能才能生效。
取值范围:0~1000。
- 0表示自动锁定功能不生效。
- 正整数表示当错误密码次数达到failed_login_attempts设定的值时,当前账户将被锁定。
默认值:10
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:建议设置为5~10。如果参数过大,密码错误次数输入过多(小于最大值1000)但不采取安全措施的话有安全风险,如果参数过小(大于0小于10)则可能会因为误输入导致账户被锁定影响正常使用。
password_encryption_type
参数说明:该参数决定采用何种加密方式对用户密码进行加密存储。修改此参数的配置不会自动触发已有用户密码加密方式的修改,只会对新创建用户的密码或已有用户修改的密码采用新的加密方式进行加密。
参数类型:枚举型
参数单位:无
取值范围:0、1、2、3
- 0:表示采用md5方式对密码加密。
- 1:表示采用sha256和md5两种方式分别对密码加密。
- 2:表示采用sha256方式对密码加密。
- 3:表示采用sm3方式对密码加密。
MD5加密算法安全性低,存在安全风险,不建议使用。
默认值:2
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:设置为默认值。
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
参数说明:该字段决定账户密码的有效时间。
参数类型:浮点型
参数单位:天
取值范围:0~999。整数部分表示天数,小数部分可以换算成时、分、秒,如:password_lock_time=0.5,表示0天零12小时。
- 0表示不开启有效期限制功能。
- 1~999表示创建账户所指定的密码有效期,临近或超过有效期系统会提示用户修改密码。
默认值:0
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:出于安全考虑,建议设置为系统给定的默认值。
password_notify_time
参数说明:该字段决定账户密码到期前提醒的天数。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,最小值为0,最大值为999,单位为天。
- 0表示不开启提醒功能。
- 1~999表示账户密码到期前提醒的天数。
默认值:7
enable_innertool_cert
参数说明:用于控制内部工具使用证书认证。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- on:表示内部工具使用证书认证。
- off:表示内部工具不使用证书认证。
- 此参数必须与参数ssl开关同时打开才能生效。
- 此开关打开使用的证书默认配置的是$GAUSSHOME/share/sslcert/gsql目录下的证书,证书的Common Name必须与初始用户相同,否则认证失败。
- 此参数生效后,初始用户使用证书认证,其他用户则需要使用密码方式认证。
- 此参数打开,允许初始用户使用证书认证方式远程连接数据库。