安全配置
enable_security_policy
- 统一审计:统一审计机制是一种通过定制化制定审计策略而实现高效安全审计管理的一种技术。当管理员定义审计对象和审计行为后,用户执行的任务如果关联到对应的审计策略,则生成对应的审计行为,并记录审计日志。
- 动态数据脱敏:动态数据脱敏机制是一种通过定制化制定脱敏策略从而实现对隐私数据保护的一种技术,可以有效地在保留原始数据的前提下解决非授权用户对敏感信息的访问问题。
参数类型:布尔型
参数单位:无
取值范围:
- on:安全策略开关打开。
- off:安全策略开关关闭。
默认值:off
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:需要使用安全策略时设置为on,会占用系统资源,对系统性能产生影响。
unified_audit_location
参数说明:控制统一审计日志记录到具体的位置。
参数类型:整型
参数单位:无
取值范围:0、1
- 0:表示统一审计日志记录到rsyslog配置的位置。
- 1:表示统一审计日志记录到传统审计日志文件。
默认值:0
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。当使用统一审计记录到审计日志文件的功能,先确认GUC参数audit_enabled为开启状态。
设置建议:推荐使用默认值。
设置不当的风险与影响:需要统一审计记录到审计日志文件时设置为1,会对传统审计功能使用的资源产生挤占。
use_elastic_search
参数说明:统一审计发送日志至Elastic Search系统,enable_security_policy打开且本参数打开后,统一审计日志会通过http(https)传递至Elastic Search系统(默认使用https安全协议)。
参数类型:布尔型
参数单位:无
取值范围:
- on:开启统一审计日志发送至Elastic Search。
- off:关闭统一审计日志发送至Elastic Search。
默认值:off
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值,需要将统一审计日志发送至Elastic Search系统时开启。
设置不当的风险与影响:此参数打开后需要保证elastic_search_ip_addr对应的es服务可正常连通,否则use_elastic_search参数配置不生效。
elastic_search_ip_addr
参数说明:Elastic Search系统IP地址,使用https协议格式为:https://ip:port:username;使用http协议格式为:http://ip:port。其中,ip为Elastic Search服务器的IP,port为Elastic Search HTTP通信的侦听端口,范围为9200 - 9299,username为用户在Elastic Search注册账号所使用的用户名,初始用户为elastic。使用https协议需要配置相关证书。
参数类型:字符串
参数单位:无
取值范围:合法IP字符串或空字符串。
默认值:""
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值,需要将统一审计日志发送至Elastic Search系统时且use_elastic_search为on时设置。
设置不当的风险与影响:需要保证该参数取值对应的es服务可正常连通,否则use_elastic_search参数配置不生效。
is_sysadmin
参数说明:表示当前用户是否是初始用户。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示是初始用户。
- off:表示不是初始用户。
默认值:off
设置方式:该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。
设置建议:该参数不允许用户进行设置,只能查看。
设置不当的风险与影响:无
enable_tde
参数说明:透明数据加密功能开关。创建加密表前需要将此参数置为on,并且通过tde_key_info参数配置密钥信息。
参数类型:布尔型
参数单位:无
取值范围:
- on:开启透明数据加密功能。
- off:关闭透明数据加密功能。
默认值:off
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:设置此参数为on,需要保证tde_key_info参数中密钥信息配置正确,并且密钥服务可以正常访问,否则透明加密功能无法使用。
设置不当的风险与影响:已存在加密数据前提下,请谨慎关闭该功能。关闭后无法读取加密表数据并回放加密日志,进而可能导致节点FATAL/PANIC故障、数据库重启失败或不可用问题。
tde_key_info
参数说明:开启透明加密功能后,透明数据运行时需访问外部密钥服务实现密钥管理,该参数配置用于访问密钥服务的相关信息,如服务地址、身份认证信息、项目信息等。
参数类型:字符串
参数单位:无
取值范围:请联系技术支持。
默认值:""
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:请根据实际使用的密钥服务进行设置。
设置不当的风险与影响:已存在加密数据前提下,请谨慎修改该参数值。错误配置意味着密钥丢失,无法读取加密表数据并回放加密日志,进而可能导致节点FATAL/PANIC故障、数据库重启失败或不可用问题。
tde_request_kms_count
参数说明:开启透明加密功能后,用于设置透明加密访问密钥管理服务尝试的次数。
参数类型:整型
参数单位:次
取值范围:1~10
默认值:3
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:请保持默认值。
设置不当的风险与影响:设置为1时,只会尝试请求密钥管理服务1次,无法抵御网络闪断、抖动等问题。
tde_index_default_encrypt
参数说明:创建索引时,如果开启本参数,并且索引的基表是加密表,则数据库会自动将索引设置为加密索引,并自动为索引复制基表的加密算法、密钥等加密参数,对索引中的数据先加密再存储。
参数类型:布尔型
参数单位:无
取值范围:
- on:自动对加密表的索引设置加密参数。
- off:不自动对加密表的索引设置加密参数。
默认值:off
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:如果所有加密表的索引都需要被加密,可开启该参数,无需手动将索引设置为加密索引。
设置不当的风险与影响:如果将参数设置为on,在加密表上创建的索引将被自动加密,影响查询索引的性能。
tde_encrypt_config
参数说明:用于设置透明加密支持Xlog和undo-log相关功能的参数。
参数类型:字符串
参数单位:无
取值范围:该参数配置格式为“key=value, key=value, ...”,合法的key和value如下:
| key取值 | value取值 | 缺省值 | 功能 |
|---|---|---|---|
| log_encrypt | on或off | on | 控制是否对Xlog和undo-log加密。 |
| log_algorithm | aes_128_ctr或sm4_ctr | aes_128_ctr | 对Xlog和undo-log加密的算法。 |
| table_algorithm | aes_128_ctr、sm4_ctr、aes_128_ctr_sha256_hmac、sm4_ctr_sm3_hmac或aes_128_gcm | aes_128_ctr | 在该种语法中:CREATE .. SET (enable_tde=on, encrypt_algo=aes_128_ctr),如果不主动设置encrypt_algo参数,默认使用table_algorithm中设置的参数。 |
默认值:""
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值,可以根据实际业务需要进行调整。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
block_encryption_mode
参数说明:aes_encrypt和aes_decrypt函数进行加解密时使用的块加密模式。
参数类型:枚举类型
参数单位:无
取值范围:有效值有aes-128-cbc、aes-192-cbc、aes-256-cbc、aes-128-cfb1、aes-192-cfb1、aes-256-cfb1、aes-128-cfb8、aes-192-cfb8、aes-256-cfb8、aes-128-cfb128、aes-192-cfb128、aes-256-cfb128、aes-128-ofb、aes-192-ofb、aes-256-ofb。其中aes表示加/解密算法,128/192/256表示密钥长度(单位:bit),cbc/cfb1/cfb8/cfb128/ofb表示块加/解密模式。
默认值:aes-128-cbc
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值,可以根据实际业务需要进行调整。
设置不当的风险与影响:影响aes_encrypt和aes_decrypt函数的使用。
enable_mac_check
参数说明:表示基于标签的强制访问控制是否生效。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示基于标签的强制访问控制生效。
- off:表示基于标签的强制访问控制不生效。
默认值:off
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值,可以根据实际业务需要进行调整。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
allow_initialuser_exec_others_udf
参数说明:表示是否允许初始用户执行其他用户定义的函数或存储过程。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示允许初始用户执行其他用户定义的函数或存储过程。
- off:表示不允许初始用户执行其他用户定义的函数或存储过程。
默认值:
- 直接安装新版本时,默认值为off
- 从历史版本升级上来的数据库,如果升级的基础版本不支持该GUC参数,默认值为on;若升级前的基础版本支持该参数,升级后保持该参数当前已设置值。
设置方式:该参数属于SUSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:建议设置该参数为off,可以降低越权风险。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
allow_sysadmin_exec_others_udf
参数说明:表示是否允许系统管理员执行其他用户定义的函数或存储过程。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示允许系统管理员执行其他用户定义的函数或存储过程。
- off:表示不允许系统管理员执行其他用户定义的函数或存储过程。
默认值:on
设置方式:该参数属于SUSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:建议设置该参数为off,可以降低越权风险,系统管理员可以根据需要在会话中设置参数为on。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
enable_rls_match_index
参数说明:控制是否支持在行级访问控制特性使用场景中,基于目标谓词条件对基表执行索引扫描。目标场景为:基表设置并开启了RLS(Row Level Security)策略,查询谓词中包含unleakproof类型系统函数或like操作符。
参数类型:布尔型
参数单位:无
取值范围:
- on:支持目标场景下的基表索引扫描。
- off:不支持目标场景下的基表索引扫描。
默认值:off
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。若业务热点查询语句为目标场景,且基表行级访问策略数量较少,可打开该开关以显著提升查询性能。
设置不当的风险与影响:此参数设置为on,在位图扫描算子切换为lossy模式且RLS策略数目较多时,会导致过滤谓词重复执行,影响性能。
- 该参数的修改,会影响目标场景下执行计划的生成,可通过重连、创建操作符等方式手动使缓存计划失效。
- 该参数开启后,会影响到位图扫描算子的生成,RLS策略谓词将被插入到Recheck过滤条件中;因此,在该算子切换为lossy模式且RLS策略数目较多时,会对性能产生一定影响。
restrict_nonsystem_relation_kind
参数说明:控制是否能访问用户创建的关系对象类型。
参数类型:字符串
参数单位:无
- "":表示不进行任何限制。
- "view":表示禁用对用户创建的视图进行访问。
- "foreign-table":表示禁用对用户创建的外表进行访问。
默认值:""
设置方式:该参数属于USERSET类型参数,请参见表1中对应设置方法进行设置。
设置建议:设置为默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
在gs_dump执行导出的过程中,为防止恶意攻击,需要禁用访问用户创建的视图和外表,工具会将此参数的值会话级设置为'view, foreign-table',无需用户手动配置。
enable_tde_async_encryption
参数说明:透明数据异步加密功能开关。
参数类型:布尔型
参数单位:无
取值范围:
- on:开启透明数据异步加密功能。
- off:关闭透明数据异步加密功能。
默认值:off
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:若业务在开启透明加密功能后有显著性能下降,且接受所有新建数据表使用同一异步加密数据密钥,建议开启该参数以有效提升性能。
设置不当的风险与影响:无。
tde_async_dek
参数说明:用于存储透明数据异步加密密钥信息,包括主密钥ID与数据密钥密文两部分内容。
参数类型:字符串
参数单位:无
取值范围:字符串
默认值:""
设置方式:该参数属于SIGHUP类型参数,不支持用户设置该参数。
设置建议:该参数由数据库自行填充,不支持用户设置该参数。
设置不当的风险与影响:无。
tde_dkcache_remain_time
参数说明:用于设置透明加密数据密钥缓存有效时长。
参数类型:整型
参数单位:h(时)
取值范围:0 ~ 1440
默认值:1
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:建议设置为默认值,不做调整。
设置不当的风险与影响:设置为0或过大值可能导致数据库内存中长期驻留不被使用的透明加密数据密钥缓存。
- 该参数设置为零值,则透明加密数据密钥缓存永久生效,不会从内存中清理。
- 该参数设置为非零值,则透明加密数据密钥缓存仅在超过tde_dkcache_remain_time设置的小时数而未被使用时,才会从内存中清理(每小时周期性清理)。
enable_fips
参数说明:FIPS模式功能开关。启用FIPS模式需要将此参数置为on,并确保运行环境已开启FIPS模式。
参数类型:布尔型
参数单位:无
取值范围:
- on:开启FIPS模式。
- off:关闭FIPS模式。
默认值:off
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:设置此参数为on,需要确保存量数据中没有使用FIPS不支持的算法,否则会导致不可预期的异常。
设置不当的风险与影响:设置此参数为on后,存量使用FIPS不支持算法的数据将无法使用(包括但不限于导入导出、备份恢复等数据场景),会导致不可预期的异常。不建议在有数据的环境中开启FIPS模式,如需开启务必确保存量数据未使用FIPS不支持算法。
- 该参数设置为on后,GUC参数password_encryption_type参数设置为0、1、3时将失效,强制使用sha256算法加密用户密码 。历史密码使用md5、sm3加密的用户将无法登录。
- GUC参数设置为on,仅支持对加解密函数、用户创建、登录、TLS通信算法依据FIPS标准进行拦截报错,如需进入FIPS模式还需通过配置使OpenSSL进入FIPS模式,二者缺一不可,否则可能导致不可预期行为。
enable_thread_permission_down
参数说明:后台线程权限控制开关,开启后后台线程使用gs_role_signal_backend角色权限,关闭后使用初始用户权限。
参数类型:布尔型
参数单位:无
取值范围:
- on:开启低权限模式。
- off:关闭低权限模式。
默认值:
- on:新安装的数据库的默认值。
- off:从507.0.0之前版本升级到当前版本时的默认值。
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:设置此参数为on,防止可能出现的后台线程越权风险。
设置不当的风险与影响:无。
enableSeparationOfDuty
参数说明:是否开启三权分立选项。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示开启三权分立。
- off:表示不开启三权分立。
默认值:off
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:此参数设置为on,系统管理员权限会受限制,部分之前可以执行的操作会无法执行。
enable_nonsysadmin_execute_direct
参数说明:是否允许非系统管理员和非监控管理员执行EXECUTE DIRECT ON语句。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示允许任意用户执行EXECUTE DIRECT ON语句。
- off:表示只允许系统管理员和监控管理员执行EXECUTE DIRECT ON语句。
默认值:off
设置方式:该参数属于POSTMASTER类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
enable_access_server_directory
参数说明:是否允许非初始用户创建、修改和删除DIRECTORY对象。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示允许非初始用户创建、修改和删除DIRECTORY对象。
- off:表示不允许非初始用户创建、修改和删除DIRECTORY对象。
默认值:off
设置方式:该参数属于SIGHUP类型参数,请参见表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改。
- 用户在使用高级包UTL_FILE访问服务器端文件时,要求必须拥有所指定的DIRECTORY对象的权限。
- 出于安全考虑,默认情况下,只有初始用户才能够创建、修改、删除DIRECTORY对象。
- 如果开启了enable_access_server_directory,具有SYSADMIN权限的用户和继承了内置角色gs_role_directory_create权限的用户可以创建directory对象;具有SYSADMIN权限的用户、directory对象的属主、被授予了该directory的DROP权限的用户或者继承了内置角色gs_role_directory_drop权限的用户可以删除directory对象;具有SYSADMIN权限的用户和directory对象的属主可以修改directory对象的所有者,且要求该用户是新属主的成员。