云服务器内容精选
-
背景信息 数据库安全对数据库系统来说至关重要。 GaussDB 将用户对数据库的所有操作写入审计日志。数据库审计管理员可以利用这些日志信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。 关于审计功能,用户需要了解以下几点内容: 审计总开关audit_enabled支持动态加载。在数据库运行期间修改该配置项的值会立即生效,无需重启数据库。默认值为on,表示开启审计功能。 除了审计总开关,各个审计项也有对应的开关。只有开关开启,对应的审计功能才能生效。 各审计项的开关支持动态加载。在数据库运行期间修改审计开关的值,不需要重启数据库便可生效。 目前,GaussDB支持以下审计项如表1所示。 表1 配置审计 项 配置项 描述 用户登录、注销审计 参数:audit_login_logout 默认值为7,表示开启用户登录、退出的审计功能。设置为0表示关闭用户登录、退出的审计功能。不推荐设置除0和7之外的值。 数据库启动、停止、恢复和切换审计 参数:audit_database_process 默认值为1,表示开启数据库启动、停止、恢复和切换的审计功能。 用户锁定和解锁审计 参数:audit_user_locked 默认值为1,表示开启审计用户锁定和解锁功能。 用户访问越权审计 参数:audit_user_violation 默认值为0,表示关闭用户越权操作审计功能。 授权和回收权限审计 参数:audit_grant_revoke 默认值为1,表示开启审计用户权限授予和回收功能。 数据库对象的CREATE,ALTER,DROP操作审计 参数:audit_system_object 默认值为67121159,表示只对DATABASE、SCHEMA、USER、NODE GROUP这四类数据库对象的CREATE、ALTER、DROP操作进行审计。 具体表的INSERT、UPDATE和DELETE操作审计 参数:audit_dml_state 默认值为0,表示关闭具体表的DML操作(SELECT除外)审计功能。 SELECT操作审计 参数:audit_dml_state_select 默认值为0,表示关闭SELECT操作审计功能。 COPY审计 参数:audit_copy_exec 默认值为1,表示打开copy操作审计功能。 存储过程和自定义函数的执行审计 参数:audit_function_exec 默认值为0,表示不记录存储过程和自定义函数的执行审计日志。 SET审计 参数:audit_set_parameter 默认值为0,表示不记录set操作审计日志 事务ID记录 参数:audit_xid_info 默认值为0,表示关闭审计日志记录事务ID功能。
-
背景信息 数据库安全对数据库系统来说至关重要。GaussDB将用户对数据库的所有操作写入审计日志。数据库审计管理员可以利用这些日志信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。 关于审计功能,用户需要了解以下几点内容: 审计总开关audit_enabled支持动态加载。在数据库运行期间修改该配置项的值会立即生效,无需重启数据库。默认值为on,表示开启审计功能。 除了审计总开关,各个审计项也有对应的开关。只有开关开启,对应的审计功能才能生效。 各审计项的开关支持动态加载。在数据库运行期间修改审计开关的值,不需要重启数据库便可生效。 目前,GaussDB支持以下审计项如表1所示。 表1 配置审计项 配置项 描述 用户登录、注销审计 参数:audit_login_logout 默认值为7,表示开启用户登录、退出的审计功能。设置为0表示关闭用户登录、退出的审计功能。不推荐设置除0和7之外的值。 数据库启动、停止、恢复和切换审计 参数:audit_database_process 默认值为1,表示开启数据库启动、停止、恢复和切换的审计功能。 用户锁定和解锁审计 参数:audit_user_locked 默认值为1,表示开启审计用户锁定和解锁功能。 用户访问越权审计 参数:audit_user_violation 默认值为0,表示关闭用户越权操作审计功能。 授权和回收权限审计 参数:audit_grant_revoke 默认值为1,表示开启审计用户权限授予和回收功能。 数据库对象的CREATE,ALTER,DROP操作审计 参数:audit_system_object 默认值为67121159,表示只对DATABASE、SCHEMA、USER、SQL Patch这四类数据库对象的CREATE、ALTER、DROP操作进行审计。 具体表的INSERT、UPDATE和DELETE操作审计 参数:audit_dml_state 默认值为0,表示关闭具体表的DML操作(SELECT除外)审计功能。 SELECT操作审计 参数:audit_dml_state_select 默认值为0,表示关闭SELECT操作审计功能。 COPY审计 参数:audit_copy_exec 默认值为1,表示开启copy操作审计功能。 存储过程和自定义函数的执行审计 参数:audit_function_exec 默认值为0,表示不记录存储过程和自定义函数的执行审计日志。 SET审计 参数:audit_set_parameter 默认值为0,表示不记录set操作审计日志 事务ID记录 参数:audit_xid_info 默认值为0,表示关闭审计日志记录事务ID功能。
-
表级加密方案 允许用户在创建表时指定是否对表进行加密和使用的加密算法,加密算法支持AES_128_CTR和SM4_CTR两种算法,算法一旦指定不可更改。对于创建表时指定为加密的表,数据库会自动为该表申请创建 数据加密 密钥,并将加密算法、密钥密文和对应主密钥ID等参数使用"keyword=value"格式保存在pg_class系统表中的reloptions字段中。 对于加密表,允许用户切换表的加密状态,即将加密表切换为非加密表,或将非加密表切换为加密表。如果在创建表时未使能加密功能,后续无法再切换为加密表。 对于加密表,支持数据加密密钥轮转。密钥轮转后,使用旧密钥加密的数据仍使用旧密钥解密,新写入的数据使用新密钥加密。密钥轮转时不更换加密算法。 对于行存表,每次加解密的最小数据单元为一个8K大小的page页面,每次对page页面加密时会通过安全随机数接口生成IV值,并将IV值和密钥密文、主密钥ID等信息保存在页面中一起写入存储介质。对于加密表由于page页面中需要保存加密密钥信息,相比不加密时占用存储空间膨胀约2.5%。
-
创建加密表 登录数据库,创建加密表tde_test1,加密状态为开启,指定加密算法为AES_128_CTR: openGauss=# CREATE TABLE tde_test (a int, b text) with (enable_tde = on, encrypt_algo = 'AES_128_CTR'); 创建加密表tde_test2,加密状态为开启,不指定加密算法,则加密算法默认为AES_128_CTR: openGauss=# CREATE TABLE tde_test2 (a int, b text) with (enable_tde = on); 创建加密表tde_test3,加密状态为关闭,指定加密算法为SM4_CTR: openGauss=# CREATE TABLE tde_test3 (a int, b text) with (enable_tde = off, encrypt_algo = 'SM4_CTR');
-
背景信息 当前版本主要实现对接华为云KMS服务,支持表级密钥存储,实现对行存表加密,规格约束如下: 支持heap存储行存表加密。 不支持物化视图加密,不支持ustore存储引擎加密。 不支持索引和Sequence加密,不支持xLog日志加密,不支持MOT内存表加密,不支持系统表加密。 用户在创建表时可以指定加密算法,加密算法一旦指定不可更改。如果创建表时设置enable_tde为on,但是不指定加密算法encrypt_algo,则默认使用AES_128_CTR加密算法。 如果在创建表时未开启加密功能或指定加密算法,后续无法再切换为加密表。 对于已分配加密密钥的表,切换表的加密和非加密状态,不会更换密钥和加密算法。 数据密钥轮转只有开启表加密功能时才支持轮转。 不支持单数据库实例跨region的多副本主备同步,不支持单数据库实例跨region的扩容,不支持跨region的备份恢复、数据库实例容灾和数据迁移场景。 混合云场景如果使用华为云KMS和管控面功能,则可以支持透明数据加密,其他KMS服务如果接口不兼容则无法支持。 加密表的查询性能比不加密时会有所劣化,对于性能有较高要求的情况下需谨慎开启加密功能。
-
密钥管理机制 透明数据加密功能中数据的加密和解密都依赖于安全可靠的密钥管理机制。本功能采用三层密钥结构实现密钥管理机制,即根密钥(RK)、主密钥(CMK)和数据加密密钥(DEK)。主密钥由根密钥加密保护,数据加密密钥由主密钥加密保护。数据加密密钥用于对用户数据进行加密和解密,每个表对应一个数据加密密钥。根密钥和主密钥保存在KMS服务中,数据加密密钥通过向KMS服务申请创建,创建成功可同时返回密钥明文和密文。数据加密密钥明文在内存中会使用hash表进行缓存减少访问KMS频次以提升性能,密钥明文只存在内存中使用不会落盘,并且支持自动淘汰机制删除不常使用的密钥明文,只保存最近1天内使用的密钥明文。数据加密密钥密文保存在数据库中并落盘持久化。对用户表数据加解密时,如果内存中没有对应密钥明文则需向KMS申请对数据密钥解密后再使用。
-
背景信息 当前版本主要实现对接华为云KMS服务,支持表级密钥存储,实现对行存表加密,规格约束如下: 支持heap存储行存表加密。 不支持物化视图加密,不支持ustore存储引擎加密。 不支持索引和Sequence加密,不支持xLog日志加密,不支持MOT内存表加密,不支持系统表加密。 用户在创建表时可以指定加密算法,加密算法一旦指定不可更改。如果创建表时设置enable_tde为on,但是不指定加密算法encrypt_algo,则默认使用AES_128_CTR加密算法。 如果在创建表时未开启加密功能或指定加密算法,后续无法再切换为加密表。 对于已分配加密密钥的表,切换表的加密和非加密状态,不会更换密钥和加密算法。 数据密钥轮转只有开启表加密功能时才支持轮转。 不支持单集群跨region的多副本主备同步,不支持单集群跨region的扩容,不支持跨region的备份恢复、集群容灾和数据迁移场景。 加密表的查询性能比不加密时会有所劣化,对于性能有较高要求的情况下需谨慎开启加密功能。
-
密钥管理机制 透明数据加密功能中数据的加密和解密都依赖于安全可靠的密钥管理机制。本功能采用三层密钥结构实现密钥管理机制,即根密钥(RK)、主密钥(CMK)和数据加密密钥(DEK)。主密钥由根密钥加密保护,数据加密密钥由主密钥加密保护。数据加密密钥用于对用户数据进行加密和解密,每个表对应一个数据加密密钥。根密钥和主密钥保存在KMS服务中,数据加密密钥通过向KMS服务申请创建,创建成功可同时返回密钥明文和密文。数据密钥明文在内存中会使用hash表进行缓存减少访问KMS频次以提升性能,密钥明文只存在内存中使用不会落盘,并且支持自动淘汰机制删除不常使用的密钥明文,只保存最近1天内使用的密钥明文。数据加密密钥密文保存在数据库中并落盘持久化。对用户表数据加解密时,如果内存中没有对应密钥明文则需向KMS申请对数据密钥解密后再使用。
-
创建加密表 登录数据库,创建加密表tde_test1,加密状态为开启,指定加密算法为AES_128_CTR: CREATE TABLE tde_test (a int, b text) with (enable_tde = on, encrypt_algo = 'AES_128_CTR'); 创建加密表tde_test2,加密状态为开启,不指定加密算法,则加密算法默认为AES_128_CTR: CREATE TABLE tde_test2 (a int, b text) with (enable_tde = on); 创建加密表tde_test3,加密状态为关闭,指定加密算法为SM4_CTR: CREATE TABLE tde_test3 (a int, b text) with (enable_tde = off, encrypt_algo = 'SM4_CTR');
-
表级加密方案 允许用户在创建表时指定是否对表进行加密和使用的加密算法,加密算法支持AES_128_CTR和SM4_CTR两种算法,算法一旦指定不可更改。对于创建表时指定为加密的表,数据库会自动为该表申请创建数据加密密钥,并将加密算法、密钥密文和对应主密钥ID等参数使用"keyword=value"格式保存在pg_class系统表中的reloptions字段中。 对于加密表,允许用户切换表的加密状态,即将加密表切换为非加密表,或将非加密表切换为加密表。如果在创建表时未使能加密功能,后续无法再切换为加密表。 对于加密表,支持数据加密密钥轮转。密钥轮转后,使用旧密钥加密的数据仍使用旧密钥解密,新写入的数据使用新密钥加密。密钥轮转时不更换加密算法。 对于行存表,每次加解密的最小数据单元为一个8K大小的page页面,每次对page页面加密时会通过安全随机数接口生成IV值,并将IV值和密钥密文、主密钥ID等信息保存在页面中一起写入存储介质。对于加密表由于page页面中需要保存加密密钥信息,相比不加密时占用存储空间膨胀约2.5%。
-
背景信息 当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。 全局的最大连接数:由运行参数max_connections指定。 某用户的连接数:在创建用户时由CREATE ROLE命令的CONNECTION LIMIT connlimit子句直接设定,也可以在设定以后用ALTER ROLE的CONNECTION LIMIT connlimit子句修改。 某数据库的连接数:在创建数据库时,由CREATE DATABASE的CONNECTION LIMIT connlimit参数指定。 预留连接供gs_clean使用:需要预留连接给gs_clean工具进行残留事务清理,以免由于残留事务长期阻塞系统正常运行,对于有n个CN的集群环境,那么需要至少预留n个连接给各个CN上的gs_clean进行残留事务清理。
-
操作步骤 连接数据库。 查看全局会话连接数限制。 1 2 3 4 5 postgres=# SHOW max_connections; max_connections ----------------- 800 (1 row) 其中800是最大会话连接数。 查看已使用的会话连接数。 具体命令请参见表1。 除了创建的时候用双引号引起的数据库和用户名称外,以下命令中用到的数据库名称和用户名称,其中包含的英文字母必须使用小写。 表1 查看会话连接数 描述 命令 查看指定用户的会话连接数上限。 执行如下命令查看连接到指定用户omm的会话连接数上限。其中-1表示没有对用户omm设置连接数的限制。 1 2 3 4 5 postgres=# SELECT ROLNAME,ROLCONNLIMIT FROM PG_ROLES WHERE ROLNAME='omm'; rolname | rolconnlimit ----------+-------------- omm | -1 (1 row) 查看指定用户已使用的会话连接数。 执行如下命令查看指定用户omm已使用的会话连接数。其中,1表示omm已使用的会话连接数。 1 2 3 4 5 6 postgres=# SELECT COUNT(*) FROM dv_sessions WHERE USERNAME='omm'; count ------- 1 (1 row) 查看指定数据库的会话连接数上限。 执行如下命令查看连接到指定数据库postgres的会话连接数上限。其中-1表示没有对数据库postgres设置连接数的限制。 1 2 3 4 5 6 postgres=# SELECT DATNAME,DATCONNLIMIT FROM PG_DATABASE WHERE DATNAME='postgres'; datname | datconnlimit ----------+-------------- postgres | -1 (1 row) 查看指定数据库已使用的会话连接数。 执行如下命令查看指定数据库postgres上已使用的会话连接数。其中,1表示数据库postgres上已使用的会话连接数。 1 2 3 4 5 postgres=# SELECT COUNT(*) FROM PG_STAT_ACTIVITY WHERE DATNAME='postgres'; count ------- 1 (1 row) 查看所有用户已使用会话连接数。 执行如下命令查看所有用户已使用的会话连接数。 1 2 3 4 5 postgres=# SELECT COUNT(*) FROM dv_sessions; count ------- 10 (1 row)
-
背景信息 当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。 全局的最大连接数:由运行参数max_connections指定。 某用户的连接数:在创建用户时由CREATE ROLE命令的CONNECTION LIMIT connlimit子句直接设定,也可以在设定以后用ALTER ROLE的CONNECTION LIMIT connlimit子句修改。 某数据库的连接数:在创建数据库时,由CREATE DATABASE的CONNECTION LIMIT connlimit参数指定。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格