• [问题求助] 【AICC】【CMS】CMS技能队列接口获取的数据是否和从日结表数据库获取的数据一致
    【问题来源】【必填】    武农商    【问题简要】【必填】  CMS技能队列接口获取的数据是否和从日结表数据库获取的数据一致【问题类别】【必填】    AICC平台功能【AICC解决方案版本】【必填】    【AICC版本:AICC 8.14】    【UAP版本:UAP9600 V100R005C00SPC018】    【CTI版本:ICD V300R008C22】【期望解决时间】【选填】    尽快【问题现象描述】【必填】    当前业务系统实现技能组监控的方式有两种1)是从数据库日结表 T_CMS_AGENT_OPR_DAY取数据,2)从技能队列接口https://ip:port/rest/cmsapp/v1/openapi/hisindex/skill 获取历史统计数据现在由于某种原因 1)方式不能使用希望确认是否可以用2)方式替换,两种方式获取的结果是否一致?【日志或错误截图】【可选】 
  • [运维管理] linux禁用了sudo命令对数据库有什么影响
    linux禁用了sudo命令对数据库有什么影响
  • [其他] 分享GaussDB数据落盘安全性
    GaussDB(DWS)作为一款运行在华为云上的核心数据仓库,客户大量的数据存储在DWS的数据节点中,DWS不仅拥有海量数据查询的极致性能,在安全方面还需要有加固防护措施。当前数据库都是多个用户共同访问数据,这些数据都具有重要价值,关系到用户的核心资产和用户隐私,如何禁止别有用心的用户窃取以及黑客攻击,本课程给您提供数据的安全管理方法。云数仓安全层层防护 云数仓外部:由华为云的云安全管理产品保驾护航。如:Anti-DDoS、DDoS、Web应用防火墙、漏洞扫描服务、企业主机安全、数据加密服务、SSL证书管理、云堡垒机等。 云数仓内部:主要通过三权分立、行级访问控制、审计管理三种方式进行防护。这三方式结合到数据开发实际场景中,简单可以概括为(1)谁能看?(2)能看啥?(3)看没看?下面我们从这三个方面一一介绍:(1)谁能看?通过DWS三权分立模型,将管理员分成三类:系统管理员,安全管理员和审计管理员,不存在“一手遮天”的管理员,当某个管理员密码泄露时,使数据库破坏降到最低。从此各司其职,安全管理员负责用户,审计管理员负责日志审计,系统管理员负责系统运维。表1 三权分立管理员名称能否创建用户能否查看审计日志是否有系统管理员权限系统管理员否否是安全管理员是否否审计管理员否是否开启三权分立后,对象权限变化如下表说明:表1 未开启三权分立对象名称系统管理员安全管理员|审计管理员表空间对表空间有创建、修改、删除、访问、分配操作的权限。不具有对表空间进行创建、修改、删除、分配的权限,访问需要被赋权。表对所有表有所有的权限。仅对自己的表有所有的权限,对其他用户的表无权限。索引可以在所有的表上建立索引。仅可以在自己的表上建立索引。模式对所有模式有所有的权限。仅对自己的模式有所有的权限,对其他用户的模式无权限。函数对所有的函数有所有的权限。仅对自己的函数有所有的权限,对其他用户放在public这个公共模式下的函数有调用的权限,对其他用户放在其他模式下的函数无权限。自定义视图对所有的视图有所有的权限。仅对自己的视图有所有的权限,对其他用户的视图无权限。系统表和系统视图可以查看所有系统表和视图。只可以查看部分系统表和视图。 表1 开启三权分立对象名称系统管理员安全管理员|审计管理员表空间无变化无变化。表权限缩小。只对自己的表有所有权限,对其他用户放在属于各自模式下的表无权限。无变化。索引权限缩小。只可以在自己的表上建立索引。无变化。模式权限缩小。只对自己的模式有所有的权限,对其他用户的模式无权限。无变化。函数权限缩小。只对自己的函数有所有的权限,对其他用户放在属于各自模式下的函数无权限。无变化。自定义视图权限缩小。只对自己的视图及其他用户放在public模式下的视图有所有的权限,对其他用户放在属于各自模式下的视图无权限。无变化。系统表和系统视图无变化。无变化。开启方法: 录GaussDB(DWS) 管理控制台。在左侧导航树中,单击“集群管理”。 在集群列表中,单击指定集群的名称,然后单击“安全设置”,打开三权分立开关。依次设置安全管理员用户名、密码、审计管理员用户、密码。 单击“应用”。在弹出的“保存配置”窗口中,选择是否勾选“立即重启集群”,然后单击“是”,重启后生效。(2)能看啥?行级访问控制特性是将数据库访问控制精确到数据表行级别,使数据库达到行级访问控制的能力。不同用户执行相同的SQL查询操作,读取到的结果是不同的。即同一张表,不同用户只能查看自身相关的数据信息,不能查看其他用户的数据信息。GaussDB(DWS)主要通过“ALTER TABLE tablename ENABLE ROW LEVEL SECURITY”语法实现行级访问控制,示例如下: 创建用户alice, bob, peter。6.  CREATE ROLE alice PASSWORD 'Gauss@123';7.  CREATE ROLE bob PASSWORD 'Gauss@123';CREATE ROLE peter PASSWORD 'Gauss@123';  创建表all_data,包含不同用户数据信息。CREATE TABLE public.all_data(id int, role varchar(100), data varchar(100)); 向数据表插入数据。10.INSERT INTO all_data VALUES(1, 'alice', 'alice data');11.INSERT INTO all_data VALUES(2, 'bob', 'bob data');INSERT INTO all_data VALUES(3, 'peter', 'peter data');  将表all_data的读取权限赋予alice,bob和peter用户。GRANT SELECT ON all_data TO alice, bob, peter; 打开行访问控制策略开关。ALTER TABLE all_data ENABLE ROW LEVEL SECURITY; 创建行访问控制策略,当前用户只能查看用户自身的数据。CREATE ROW LEVEL SECURITY POLICY all_data_rls ON all_data USING(role = CURRENT_USER); 查看表详细信息。16. \d+ all_data17.                               Table "public.all_data"18. Column |          Type          | Modifiers | Storage  | Stats target | Description19.--------+------------------------+-----------+----------+--------------+-------------20. id     | integer                |           | plain    |              |21. role   | character varying(100) |           | extended |              |22. data   | character varying(100) |           | extended |              |23.Row Level Security Policies:24.    POLICY "all_data_rls"25.      USING (((role)::name = "current_user"()))26.Has OIDs: no27.Distribute By: HASH(id)28.Location Nodes: ALL DATANODESOptions: orientation=row, compression=no, enable_rowsecurity=true  切换至用户alice,执行SQL"SELECT * FROM all_data"30.SET ROLE alice PASSWORD 'Gauss@123';31.SELECT * FROM all_data;32. id | role  |    data33.----+-------+------------34.  1 | alice | alice data35.(1 row)36. 37.EXPLAIN(COSTS OFF) SELECT * FROM all_data;38.                           QUERY PLAN39.----------------------------------------------------------------40. Streaming (type: GATHER)41.   Node/s: All datanodes42.   ->  Seq Scan on all_data43.         Filter: ((role)::name = 'alice'::name)44. Notice: This query is influenced by row level security feature(5 rows)  切换至用户peter,执行SQL"SELECT * FROM .all_data"46.SET ROLE peter PASSWORD 'Gauss@123';47.SELECT * FROM all_data;48. id | role  |    data49.----+-------+------------50.  3 | peter | peter data51.(1 row)52. 53. EXPLAIN(COSTS OFF) SELECT * FROM all_data;54.                           QUERY PLAN55.----------------------------------------------------------------56. Streaming (type: GATHER)57.   Node/s: All datanodes58.   ->  Seq Scan on all_data59.         Filter: ((role)::name = 'peter'::name)60. Notice: This query is influenced by row level security feature(5 rows)  (3)看没看?GaussDB(DWS) 支持对特定数据库操作记录审计日志,包括:日志保留策略、用户越权访问、存储过程以及对数据库对象的DML、SELECT、COPY和DDL操作。审计日志配置后,当GaussDB(DWS) 集群状态异常,或根据业务需要,用户可以查询审计信息确定故障原因或定位历史操作记录。配置方法: 登录GaussDB(DWS) 管理控制台。单击“集群管理”。 在集群列表中,单击指定集群的名称,然后单击“安全设置”。 在“审计配置”区域中,设置审计日志保留策略。表1 审计日志保留策略参数名说明审计日志保留策略设置审计日志保留策略,支持如下两种策略:§  “空间优先”:表示当单个节点的审计日志超过1G后,将自动淘汰审计日志。§  “时间优先”:表示在“审计日志最小保存时间(天)”内会保留审计日志,超过时间后,根据存储容量限制(单个节点1G),对审计日志进行自动淘汰。审计日志最小保存时间(天)当“审计日志保留策略”设置为“时间优先”策略时,该参数有效。可选天数为0~730天,默认值为90天。 根据需要设置以下操作的审计开关。表1 审计项参数名说明审计用户越权访问操作表示是否记录用户的越权访问操作,默认关闭。审计DML操作表示是否对数据表的INSERT、UPDATE和DELETE操作进行记录,默认关闭。审计SELECT操作表示是否对SELECT操作进行记录,默认关闭。审计存储过程执行表示是否在执行存储过程和自定义函数的时候记录操作信息,默认关闭。审计COPY操作表示是否对COPY操作进行记录,默认关闭。审计DDL操作表示是否对指定数据库对象的CREATE、DROP和ALTER操作进行记录。除“Database”、“Schema”和“User”默认启用记录,其他默认关闭。GaussDB(DWS) 默认还开启了以下的关键审计项。表1 关键审计项参数名说明关键审计项记录用户登录成功、登录失败和注销的信息。记录数据库启动、停止、恢复和切换审计信息。记录用户锁定和解锁功能信息。记录用户权限授予和权限回收信息。记录SET操作的审计功能。 设置是否开启审计日志转储功能。 单击“应用”。查看审计日志:只有拥有AUDITADMIN属性的用户才有查看权限,查询格式如下: pg_query_audit(timestamptz startime,timestamptz endtime,audit_log) 查询审计记录。SELECT * FROM pg_query_audit('2015-07-15 08:00:00','2015-07-15 09:47:33');查询结果如下:           time          |     type      | result | username |    database    | client_conninfo |  object_name   |                          detail_info                | node_name |            thread_id            | local_port | remote_port------------------------+---------------+--------+----------+----------------+-----------------+----------------+---------------------------------------------------------------+-----------+---------------------------------+------------+------------- 2015-07-15 08:03:55+08 | login_success | ok     | dbadmin | gaussdb       | gs_clean@::1    | gaussdb       | login db(gaussdb) success,the current user is:dbadmin       | cn_5003   | 139808902997776@490233835920483 | 9000       | 55805 该条记录表明,用户ommdbadmin在2021-02-23 21:49:57.82+08登录数据库gaussdb。其中client_conninfo字段在log_hostname启动且IP连接时,字符@后显示反向DNS查找得到的主机名。 查询所有CN节点审计记录。69.SELECT * FROM pgxc_query_audit('2019-01-10 17:00:00','2019-01-10 19:00:00') where type = 'login_success' and username = 'user1'; 查询结果如下:          time          |     type      | result | username | database | client_conninfo | object_name |                     detail_info                      |  node_name   |            thread_id            | local_port | remote_port ------------------------+---------------+--------+----------+----------+-----------------+-------------+------------------------------------------------------+--------------+---------------------------------+------------+------------- 2019-01-10 18:06:08+08 | login_success | ok     | user1    | gaussdb | gsql@[local]    | gaussdb    | login db(gaussdb) success,the current user is:user1 | coordinator1 | 139965149210368@600429968516954 | 17560      | null 2019-01-10 18:06:22+08 | login_success | ok     | user1    | gaussdb | gsql@[local]    | gaussdb    | login db(gaussdb) success,the current user is:user1 | coordinator1 | 139965149210368@600429982697548 | 17560      | null 2019-01-10 18:06:54+08 | login_success | ok     | user1    | gaussdb | gsql@[local]    | gaussdb    | login db(gaussdb) success,the current user is:user1 | coordinator2 | 140677694355200@600430014804280 | 17562      | null(3 rows)转自https://bbs.huaweicloud.com/blogs/280636 
  • [运维管理] GaussDB A 8.0.0.0 只读用户如何对数据库下所有schema的表进行查询权限
    当前有个诉求:新建了一个只读权限的用户,当前要使该用户对数据库下已有的所有schema模式下的表都有只读权限,并且也要对后续所有schema模式下的表都是只读权限,想知道该如何执行设置。我的schema非常多,一个一个的设置话需要花费很长的时间。针对单独schema下的表的查询权限设置这个我会,如下所示: 创建只读用户 grant USAGE on schema l1,l2 to test; --赋予用户test查询schema的权限 grant SELECT on all tables in schema l1,l2 to test;--对已创建的表赋查询权限 alter default privileges in schema l1,l2 grant SELECT on tables to test; --对以后创建的新表赋予查询权限所以就是想知道有没有方法可以针对库下所有schema的表一起设置权限只读权限的。
  • [技术干货] 在Kylin-V10上安装openGauss-2.0.1企业版
    操作系统:Kylin-V10-20210319版本1.下载安装包并解压wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/2.0.1/arm/openGauss-2.0.1-openEuler-64bit-all.tar.gz​tar -zxvf openGauss-2.0.1-openEuler-64bit-all.tar.gz2.准备安装环境关闭SELINUX编辑config文件vim /etc/selinux/config修改SELINUX值:SELINUX=disabled重启操作系统reboot关闭防火墙systemctl disable firewalld.servicesystemctl stop firewalld.service升级系统内核并重启服务器(kylin-V10-0518及之后版本不需要做这一步)yum update kernel -yreboot安装模块依赖yum install kernel-modules-extra3.创建XML配置文件在script/gspylib/etc/conf/cluster_config_template.xml获取XML文件模板。将模板中主机名和IP修改为对应内容。<?xml version="1.0" encoding="UTF-8"?><ROOT>   <!-- openGauss整体信息 -->   <CLUSTER>       <!-- 数据库名称 -->       <PARAM name="clusterName" value="dbCluster" />       <!-- 数据库节点名称(hostname) -->       <PARAM name="nodeNames" value="localhost.localdomain" />       <!-- 数据库安装目录-->       <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />       <!-- 日志目录-->       <PARAM name="gaussdbLogPath" value="/var/log/omm" />       <!-- 临时文件目录-->       <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp" />       <!-- 数据库工具目录-->       <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />       <!-- 数据库core文件目录-->       <PARAM name="corePath" value="/opt/huawei/corefile" />       <!-- 节点IP,与数据库节点名称列表一一对应 -->       <PARAM name="backIp1s" value="172.16.12.245"/>   </CLUSTER>   <!-- 每台服务器上的节点部署信息 -->   <DEVICELIST>       <!-- 节点1上的部署信息 -->       <DEVICE sn="node1_hostname">           <!-- 节点1的主机名称 -->           <PARAM name="name" value="localhost.localdomain"/>           <!-- 节点1所在的AZ及AZ优先级 -->           <PARAM name="azName" value="AZ1"/>           <PARAM name="azPriority" value="1"/>           <!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->           <PARAM name="backIp1" value="172.16.12.245"/>           <PARAM name="sshIp1" value="172.16.12.245"/>                 <!--dbnode-->   <PARAM name="dataNum" value="1"/>   <PARAM name="dataPortBase" value="15400"/>   <PARAM name="dataNode1" value="/opt/huawei/install/data/dn"/>           <PARAM name="dataNode1_syncNum" value="0"/>       </DEVICE>   </DEVICELIST></ROOT>4.初始化安装环境文件夹赋权chmod 755 -R /opt/opengauss解压openGauss-2.0.1-openEuler-64bit-om.tar.gztar -zxvf openGauss-2.0.1-openEuler-64bit-om.tar.gz进入工具脚本目录cd script使用gs_preinstall准备好安装环境./gs_preinstall -U omm -G dbgrp -X /opt/opengauss/cluster_config.xml5.执行安装进入omm用户su - omm进入script目录,使用gs_install安装openGaussgs_install -X /opt/opengauss/cluster_config.xml6.登录openGaussgsql -d postgres -p 15400附:详细细节请参考openGauss官方文档:https://opengauss.org/zh/docs/2.0.1/docs/installation/%E4%BC%81%E4%B8%9A%E7%89%88%E5%AE%89%E8%A3%85.html
  • [问题求助] 【AICC CC-CMS产品】【报表功能】jdbc连接oracle数据库返回结果中文乱码
    【问题来源】【必填】    【武汉农商行】    【问题简要】【必填】     AICC CC-CMS产品中通过jdbc连接华为测试库,返回结果中文乱码。【问题类别】【必填】    【aicc cc-cms】【AICC解决方案版本】【必填】    【AICC可选择版本:AICC 8.13.0 CC-CMS】【期望解决时间】【选填】      尽快【问题现象描述】【必填】         //描述做了什么,期望发生什么,实际发生了什么,发生问题坐席等。如果已经尝试了一些措施但是没有解决问题,也请描述出来。         //请描述环境信息,如:华东,华北等。         1.AICC产品升级后,通过jdbc连接华为数据库,查询结果显示乱码。
  • [技术干货] SQL 语法
    SQL 语法规则SQL语句总是以关键字开始,如SELECT、INSERT、UPDATE、DELETE、DROP、CREATE。SQL语句以分号结尾。SQL不区分大小写,意味着update与UPDATE相同。数据库表 数据库通常包含一个或多个表。每个表都用一个名称标识(例如,"Customers"或"Orders")。该表包含带有数据(行)的记录。 在本教程中,我们将使用著名的Northwind示例数据库(包括MSAccess和MSSQLServer)。 下面是选自 "Customers" 表的数据:CustomerID    CustomerName    ContactName    Address    City    PostalCode    Country1Alfreds Futterkiste    Maria Anders    Obere Str. 57    Berlin    12209    Germany2    Ana Trujillo Emparedados y helados    Ana Trujillo    Avda. de la Constitución 2222    México D.F.    05021    Mexico3    Antonio Moreno Taquería    Antonio Moreno    Mataderos 2312    México D.F.    05023    Mexico4Around the Horn    Thomas Hardy    120 Hanover Sq.    London    WA1 1DP    UK5    Berglunds snabbköp    Christina Berglund    Berguvsvägen 8    Luleå    S-958 22    Sweden 上面的表包含五条记录(每一条对应一个客户)和七个列(CustomerID、CustomerName、ContactName、Address、City、PostalCode 和 Country)。SQL 语句 您需要在数据库上执行的大部分操作都是使用SQL语句完成的。 以下SQL语句选择“Customers”表中的所有记录:实例SELECT * FROM Customers; 在本教程中,我们将向您解释各种不同的SQL语句。请记住...SQL 对大小写不敏感:SELECT 与 select 是相同的。在本教程中,我们将以大写形式编写所有SQL关键字。SQL 语句后面的分号?一些数据库系统需要在每个SQL语句的末尾使用分号。分号是分离数据库系统中每个SQL语句的标准方法,这样您就可以在对服务器的同一请求中执行多个SQL语句。在本教程中,我们将在每个SQL语句的末尾使用分号。一些最重要的 SQL 命令SELECT - 从数据库中提取数据UPDATE - 更新数据库中的数据DELETE - 从数据库中删除数据INSERT INTO - 向数据库中插入新数据CREATE DATABASE - 创建新数据库ALTER DATABASE - 修改数据库CREATE TABLE - 创建新表ALTER TABLE - 变更(改变)数据库表DROP TABLE - 删除表CREATE INDEX - 创建索引(搜索键)DROP INDEX - 删除索引。来源。SELECT语句 句法:SELECT column_name(s) FROM table_nameSELECT语句和WHERE子句 句法:SELECT [*] FROM [TableName] WHERE [condition1]SELECT语句与WHERE和/或子句 句法:SELECT [*] FROM [TableName] WHERE [condition1] [AND [OR]] [condition2]...SELECT语句与ORDER BY 句法:SELECT column_name()FROM table_nameORDER BY column_name() ASC or DESCSELECT  DISTINCT(区分)子句 句法:SELECT DISTINCT column1, column2....columnNFROM   table_name;SELECT  IN子句 句法:SELECT column1, column2....columnNFROM   table_nameWHERE  column_name IN (val-1, val-2,...val-N);SELECT LIKE (类)子句 句法:SELECT column1, column2....columnNFROM   table_nameWHERE  column_name LIKE { PATTERN };SELECT  COUNT(计数)子句 句法:SELECT COUNT(column_name)FROM   table_nameWHERE  CONDITION;SELECT与HAVING子句 句法:SELECT SUM(column_name)FROM   table_nameWHERE  CONDITIONGROUP BY column_nameHAVING (arithematic function condition);INSERT INTO语句 句法:INSERT INTO table_name (column, column1, column2, column3, ...)VALUES (value, value1, value2, value3 ...)UPDATE语句 句法:UPDATE table_nameSET column=value, column1=value1,...WHERE someColumn=someValueDELETE语句 句法:DELETE FROM tableNameWHERE someColumn = someValueCREATE 语句 句法:CREATE TABLE table_name(column1 datatype,column2 datatype,column3 datatype,.....columnN datatype,PRIMARY KEY( one or more columns ));
  • [经验交流] ADC2.0根据模型名查询数据库表数据
    登陆高斯数据库su - gtsgsdba -s /bin/bashzsql / as sysdba查询所有租户select * from adm_users;切shemaalter session set current_schema=mateinfo_1002;先查询模型名对应表名select TABLE_NAME from t_rt_mod_model_def where model_name ='模型名';select TABLE_NAME from t_rt_mod_model_def where model_name ='msup_options_slapausetype';查询模型数据select * from 表名;select * from T_RT_BPM_MSUP_OPTIONS_SLAPAUSETYPE;
  • [产品介绍] 注意,开源Redis被爆高危漏洞,攻击者可远程注入代码
    2021年7月22日,Redis官方和开源Redis社区先后发布公告,披露了CVE-2021-32761 Redis(32位)远程代码执行漏洞。在32位Redis中,攻击者在Redis存在未授权访问的情况下可利用*BIT*命令与proto-max-bulk-len配置参数可能造成整形溢出,最终导致远程代码执行,本次漏洞等级为高危级别。需要说明的是,本次开源Redis的安全漏洞并不影响现网华为云GaussDB(for Redis)的任何实例,已经在使用华为云GaussDB(for Redis)的用户请继续放心使用。通过本次漏洞可以发现,开源Redis对BITFIELD等命令的代码实现上存在问题,导致了对string数据类型的操作存在安全隐患。随时可能被恶意触发整形溢出BUG,甚至还会被恶意执行远程代码。因此,给了黑客可乘之机。本次漏洞的代码修复已经发布,官方建议用户尽快升级到开源Redis6.2.5, 6.0.15, 5.0.13这三个安全版本。那么,对于此类数据库安全漏洞该如何防患于未然呢?数据库漏洞属于软件漏洞中的一种,主要是被用来突破系统的安全策略。数据库漏洞往往会影响很大一个范围,除了影响数据库自身,还包括数据库所在操作系统和数据库所在局域网的整体安全。通常来说,防范和补救措施有:1. 紧跟官方通知,排查并升级数据库到安全版本。本次漏洞事件中,开源Redis用户应第一时间完成升级;2. 若短时无法升级,则从服务端开启访问限制,禁用危险命令;3. 通过白名单访问IP等安全策略,提高入侵难度;4. 选择可靠的云服务厂商,比如迁移至华为云数据库GaussDB(for Redis),可全方位保障数据的安全可靠。华为云GaussDB(for Redis)从源头杜绝安全漏洞1.全新数据编码更安全:华为云数据库GaussDB(for Redis)采用先进存算分离架构,兼容Redis协议,提供海量数据的持久化存储。在代码实现上完全自研,采用全新数据编码,更高效,空间使用率也更高。内部每种命令的实现并不依赖开源Redis,因此,不会受到类似本次开源Redis安全漏洞的影响。2.安全防护体系全面保障:基于华为云可靠的现网安全体系,使用GaussDB(for Redis)的用户可以随时制定自己的白名单IP访问策略。还可以通过虚拟私有云、子网、安全组、DDoS防护以及SSL安全访问等多层安全防护体系,有力地抗击各种恶意攻击,保证数据安全,不给未知来源的恶意访问留有任何机会。上云无忧,GaussDB(for Redis)提供一站式迁移服务华为云数据库GaussDB(for Redis)是一款完全自研的旗舰产品,是支持Redis协议的NoSQL数据库,而不是缓存。与开源Redis最大的区别是,它具备存算分离架构,提供强大的数据存储能力,包括强一致、弹性扩缩容等高级特性。GaussDB(for Redis)为用户带来了更低成本、更大容量、更高可靠、且弹性伸缩的极佳产品体验。对于正在使用开源Redis2.6以上各版本的用户,GaussDB(for Redis)还提供了一站式的迁移服务,无需技术门槛,操作简单快捷,仅需分钟级就能搭建起迁移任务,让整个环境搭建“高效快速”,为企业上云保驾护航,再无安全之忧。伴随数据价值的不断提升,作为海量数据的载体,数据库所需面对的安全隐患和风险也水涨船高,但无论是DBA还是云服务厂商都应该树立良好的安全意识,才能更好的保障数据库安全。华为云数据库将持续满足不同数据库的安全防护需求,为数据库及数据安全建设发展提供有力支撑,让用户对数据使用更自由、更安全!
  • [技术干货] 【FAQ】部分交换机显示配置下发成功,但是对应的配置未更新
    部分交换机显示配置下发成功,但是对应的配置未更新可能的原因:出现这个问题的原因,大部分是因为交换机的naas数据库有残留配置导致,而为什么会有残留配置,原因较多:比如,曾经手工在设备上面配置过命令行;交换机用电不稳定,反复重启等等;配置完配置,未及时save,或者未等控制器自动save,然后,就进行补丁升级或者版本升级,也会导致配置残留,即交换机的配置文件与数据库不一致了。规避措施:清空交换机的naas数据库或者恢复出厂设置R13的交换机设备:reset cloud-mng db-configuration命令用来清除设备上的数据库信息。使用实例# 清除设备上的数据库信息。<HUAWEI> system-view[HUAWEI] reset cloud-mng db-configurationWarning: This operation will clear the database configuration and saved configuration file and restart the device. Continue? [Y/N]:R19的交换机设备:reset netconf db-configuration命令用来清除设备上的数据库信息。执行此命令后,系统会提示是否需要重启设备。输入Y后,设备将重启并清除设备上所有的数据库和配置文件信息,请务必仔细确认。# 清除设备上的数据库信息。<HUAWEI> system-view[HUAWEI] reset netconf db-configurationWarning: This operation will clear the database configuration and saved configuration file and restart the device. Continue? [Y/N]:正规操作流程:1、尽量避免直接手工在设备上面配置云管理已经支持的命令2、先升级设备版本和补丁版本后,然后再进行设备配置  或者 配置完成后,进入save页面,进行save后,再进行设备补丁升级或者版本升级 【FAQ】云管理上面如何进行配置保存 后续优化:交换机R20版本进行了优化。
  • [热门活动] 这本书真不错,推荐给你《openGauss数据库核心技术》
       此书是之前参加华为相关活动获得,首先还得感谢华为提供了这次学习的机会。前段时间阅读了这本书,刚好借本次活动说下推荐理由。   主要内容:   本书系统论述了openGauss数据库理论、技术及应用。   本书共11章,首先介绍数据库发展历史,包括传统的网状数据库、层次数据库、关系数据库、NoSQL数据库、NewSQL数据库、云数据库、多模数据库、分布式数据库等。其次介绍结构化查询语言(SQL)、SQL语法、存储过程、触发器、游标、数据库设计规范和E-R 模型等数据库基础知识。再次介绍数据库未来发展趋势,包括新硬件、不同部署形态、新应用对数据库的影响。最后重点介绍openGauss的核心技术,包括openGauss的核心架构、面向鲲鹏和昇腾等新硬件的优化技术、SQL引擎、执行器技术、数据库存储技术、数据库事务机制、数据库安全、数据库自治技术等。为方便读者掌握数据库教学内容,本书每章都提供了小结和习题(含答案)。通过阅读本书,读者可以深入了解数据库的发展历史与未来趋势、数据库系统架构、鲲鹏和昇腾优化技术、数据库。   通过阅读本书,读者可以深入了解数据库的发展历史与未来趋势、数据库系统架构、鲲鹏和昇腾优化技术、数据库事务处理技术、数据库执行器技术、数据库安全技术,从而既可以在将来开发数据库的核心代码,也可以更好地利用数据库开发应用。   重点内容:   其中第5章:详细介绍了openGaussDB的发展历史及架构,包括GMDB内存数据库历史、openGaussDB 100 OLTP数据库历史、openGaussDB 200 OLAP数据库历史。其中也重点介绍了openGaussDB的关键技术架构:   openGaussDB采用分布式关键技术架构,实现一套代码同时支持OLAP和OLTP业务场景,主要特点有:支持SQL优化、执行、存储分层解耦架构;基于GTM和高精度时钟的分布式ACID强一致;支持存储技术分离,也支持本地架构;支持可插拔存储引擎架构;   第6章:详细介绍了针对传统数据库无法在并行处理多样查询、存储模式的同时保证高性能问题,华为公司围绕3个方面提出了面向鲲鹏和昇腾的创新架构。一方面更好地提供大规模的数据计算能力,实现数据库千核并发的能力;部署昇腾AI芯片,支持和优化AI算法中不同类型的算子操作,并且通过SQL语句来支持数据库内AI算子;利用内置的AI算法对基于芯片群进行组合和调度,进一步提高数据库的计算能力和效率;   第11章:重点介绍了openGaussDB安全机制。openGaussDB安全机制充分考虑了数据库可能的接入方,包括DBA、用户、应用程序及通过攻击算途径连接数据库的攻击者。openGaussDB提供了用户访问所需的客户端工具GaussSQL,同时支持DJBC/ODBC等通用客户端工具。整个openGaussDB系统通过认证模块来限制用户对数据库的访问,通过口令认证、证书认证等机制来保障认证过程中的安全,同时 可以通过黑白名单限制访问IP。实验操作:   学习完此本教程后,还可以在学习理论知识的基础上,通过在华为云学院的沙箱实验中进行openGauss的实验操作,进一步加深对openGauss的了解。目前实验包括openGauss数据库在金融领域的使用实践、基于华为云鲲鹏弹性云服务器部署openGauss数据库二个。   沙箱实验链接如下:https://lab.huaweicloud.com/testList.html?type=34&level=0微认证:同时经过学习及实验操作后,有兴趣的同学还可以参加相关的微认证考试。链接:https://edu.huaweicloud.com/certifications   学习交流:      同时华为社区也有openGauss版块可以和大家一起沟通、学习。   地址:https://bbs.huaweicloud.com/forum/forum-1350-1.html总结:  此本书籍通过理论及实例全面呈现了分布式数据库openGauss的系统架构的核心技术:数据库的研发需要长期不断地投入和迭代,作为一家有担当、有实力的公司,为打造出中国出品的世界级数据库,华为公司十年磨一剑,在当今时代背景下,高斯数据库应运而生。高斯数据库技术特点鲜明,在高性能、高可用、高可靠、兼容性等方面具有一定竞争力。它支持x86、鲲鹏等多种硬件架构,能够面向多种场景提供分布式、高可用等多样化的部署形态;能够提供高并发事务实时处理能力、金融级两地三中心的高可用能力和分布式高扩展能力;对当前主流数据库有较好兼容性;具有相应的集成开发环境和监控运维平台,可维护性和易用性较好。高斯数据库的诞生是一种趋势和方向,我们应顺势而为,拥抱变革带来的机遇。   本书适合于对openGauss数据库感兴趣的的同仁学习,大家可以通过理论加实践的方式,帮助大家能更深刻的认识华为openGauss数据库,同时也希望openGauss越来越好,越走越远。
  • [热门活动] 这本书真不错,推荐给你《openGauss数据库核心技术》
    关键点一:这本书的主要内容是什么;关键点二:这本书里面的某一章节/某一个知识点/某种观点,我觉得值得分享(最好截图举例说明);关键点三:这本书通俗易懂/描述客观准确/覆盖面广泛....很合适XX这样的朋友们学习。本书系统论述了openGauss数据库理论、技术及应用。本书共11章,首先介绍数据库发展历史,包括传统的网状数据库、层次数据库、关系数据库、NoSQL数据库、NewSQL数据库、云数据库、多模数据库、分布式数据库等。其次介绍结构化查询语言(SQL)、SQL语法、存储过程、触发器、游标、数据库设计规范和E-R 模型等数据库基础知识。再次介绍数据库未来发展趋势,包括新硬件、不同部署形态、新应用对数据库的影响。最后重点介绍openGauss的核心技术,包括openGauss的核心架构、面向鲲鹏和昇腾等新硬件的优化技术、SQL引擎、执行器技术、数据库存储技术、数据库事务机制、数据库安全、数据库自治技术等。为方便读者掌握数据库教学内容,本书每章都提供了小结和习题(含答案)。通过阅读本书,读者可以深入了解数据库的发展历史与未来趋势、数据库系统架构、鲲鹏和昇腾优化技术、数据库。通过阅读本书,读者可以深入了解数据库的发展历史与未来趋势、数据库系统架构、鲲鹏和昇腾优化技术、数据库事务处理技术、数据库执行器技术、数据库安全技术,从而既可以在将来开发数据库的核心代码,也可以更好地利用数据库开发应用。数据库管理系统
  • [数据库] 【第27课】MySQL数据库如何实现存储空间自动扩容
    前面讲了MySQL如何设置和关闭跨区域备份策略,本节重点讲解MySQL云盘实例如何设置存储空间自动扩容,在实例存储空间达到阈值时,触发自动扩容。只读实例设置自动扩容与主实例自动扩容互不影响,因此,您需要单独为只读实例设置扩容,以满足业务需求。对只读实例设置自动扩容时,您可选择大于或等于主实例的存储空间。如果是主备实例,针对主实例设置自动扩容时,会同时对其备实例生效。每次扩容的最小容量为10GB,扩容后即刻按照新的存储空间计费,云数据库MySQL实例最大可自动扩容至4000GB。设置存储空间自动扩容有两种方式:创建实例时设置存储空间自动扩容。创建实例后设置存储空间自动扩容。本章节分别介绍创建实例时和创建实例后如何设置存储空间自动扩容。创建实例时设置存储空间自动扩容1.  登录管理控制台。2.  单击管理控制台左上角的,选择区域和项目。3.  在页面左上角单击,选择“数据库 > 云数据库 RDS”。进入云数据库 RDS信息页面。4.  在“实例管理”页面,单击“购买数据库实例”。5.  在“服务选型”页面,选择计费模式,填写并选择实例相关信息后,单击“立即购买”。 如果存储类型为SSD云盘或超高IO或极速型SSD,可设置存储空间自动扩容,当存储空间可用率达到阈值时,会自动扩容存储空间,存储自动扩容上限是4000GB。      图1  购买时设置自动扩容       6.  进行规格确认,单击“提交”,完成购买实例的申请。创建实例后设置存储空间自动扩容1.  登录管理控制台。2.  单击管理控制台左上角的,选择区域和项目。3.  在页面左上角单击,选择“数据库 > 云数据库 RDS”。进入云数据库 RDS信息页面。4.  在“实例管理”页面,单击目标实例或只读实例名称,进入“基本信息”页面,可通过单击实例名称前的 查看只读实例。5.  在“存储空间”模块,单击“存储空间自动扩容”。      图2  查看存储空间      6.  在“存储空间自动扩容”弹框,设置如下参数:      图3  设置存储空间自动扩容           •  存储空间自动扩容:存储空间自动扩容开关。     •  可用存储空间率:当可使用存储空间百分比小于等于该阈值时或者10GB时,会触发自动扩容。     •  存储自动扩容上限:自动扩容上限,默认取值:40~4000,单位:GB。需要大于等于实例当前存储空间总大小。了解更多,请戳--->
  • [openEuler] 「openEuler 简明指南」openEuler 部署 MongoDB 数据库
    # MongoDB 数据库> 提示>> 可能前往 [openEuler 简明指南](#) 可以获得更加良好的阅读体验。> ### 不知细叶谁裁出,二月春风似剪刀>> 这一小节我们将讨论如何在 openEuler 上部署 MongoDB 数据库。## MongoDB 环境要求| 属性 | 说明 || :------: | :------------------------------: || OS | openEuler 20.03 (LTS-SP1) 或更高 || CPU 架构 | x86_64 / aarch64 |![neofetch.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/23/000048noyi4kkmpfxeygnz.png)目前 MongoDB 官方没有提供 openEuler 的 RPM 包或二进制压缩包,需要我们从源码编译安装。需要说明的是 openEuler 20.03 (LTS-SP1) 的 GCC 版本过低,需要手动编译升级。而更高版本的 openEuler 的安装过程除此之外是完全一样的。## 了解 MongoDB 数据库[MongoDB](#) 是由 MongoDB Inc.(当时是 10gen 团队)于 2007 年 10 月开发,2009 年 2 月首度推出的非关系型数据库,是通用、基于文档的分布式数据库。## 安装 MongoDB 数据库### 1. 下载安装文件1. 打开 [MongoDB 下载页面](#) > `Version`(版本)选择 `5.0.0` > `Platform`(平台)选择 `Source (tgz)`(源码)> 点击 `Download`(下载)或 `Copy Link`(复制下载链接)后通过 `wget` 下载: ![download-1.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/2219543rszghtfzmc6c7gy.png)2. 解压源码压缩包 `mongodb-src-r5.0.0.tar.gz`: ```sh tar -xf mongodb-src-r5.0.0.tar.gz -C /usr/local/ ```### 2. 安装编译所需依赖由于 MongoDB 官方没有提供 openEuler 的二进制压缩包,所以需要自行编译。按照官方文档的要求和系统的,编译 MongoDB 需要以下依赖:- GCC 8.2 或更新- libcurl-devel- Python 3.7.x 和 Pip 模块- openssl-devel1. 检查依赖版本: ```sh gcc --version # 需要更新(openEuler 20.03 (LTS-SP1) 需要,更新 openEuler 版本不需要) python3 --version # 符合要求 pip3 --version # 符合要求 ``` ![required-1.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222009gpvutp2tmowhyaf9.png)2. 安装相关依赖: ```sh sudo dnf install libcurl-devel scons ``` ![required-2.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/22202100w7g9wvxkybdbdc.png)3. 打开 [GCC 镜像列表](#) > 选择一个镜像站: ![required-3.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/2220327mbyw1ormmlysaz4.png)4. 以霓虹这个镜像站为例,点击 `release` > `gcc-11.1.0` > 点击 `gcc-11.1.0.tar.gz` 下载 GCC 源码: ![required-4.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222043bcesnziazrlb2vkr.png) ![required-5.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222055cz6pcozuak26vot8.png)5. 解压源码压缩包 `gcc-11.1.0.tar.gz` 到 `/usr/local/` 目录: > 提示 > > 以下命令请在 root 用户下执行: > > ```sh > su - root > ``` ```sh tar -xf gcc-11.1.0.tar.gz -C /usr/local/ cd /usr/local/gcc-11.1.0 # 切换到解压目录 ```6. 执行以下指令以下载安装 GCC 所需要的依赖包(如 gmp、mpfr、mpc 等): ```sh ./contrib/download_prerequisites ``` > 提示 > > 执行此命令需要确保系统安装了相关依赖,否则使用以下命令安装: > > ```sh > dnf install bzip2 wget > ``` ![required-6.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222147smehut4xlwvmvqwx.png)7. 手动创建一个目录,用于存放编译 GCC 源码包生成的文件: ```sh mkdir /usr/local/gcc-build-11.1.0 cd /usr/local/gcc-build-11.1.0 ```8. 由于 GCC 编译器支持多种编程语言的编译,而实际情况中我们可能只需要编译 C 和 C++ 两种编程语言,故需要进行配置: ```sh ../gcc-11.1.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib ``` ![required-7.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222205akycarveg3mfcw53.png) 同时会生成 `Makefile` 和相关文件: ![required-8.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222215mg9pouogvwb9pcvl.png)9. 使用 `make` 命令编译 GCC: ```sh make ``` > 提示 > > 此过程将非常耗时(2 小时或更长)。若使用 SSH 远程连接请务必配置并使用不间断会话服务,具体操作请参阅 [3. 不间断会话服务配置](#)。 ![required-9.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/2222404xnxvhtxozwxo3mj.png)10. 执行以下命令安装 GCC: ```sh make install ```11. 重启计算机,查看 GCC 版本信息: ```sh reboot gcc --version ``` ![required-10.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222253omdz1puf2oreyvh6.png)12. 安装 Python 相关模块: ```sh cd /usr/local/mongodb-src-r5.0.0 python3 -m pip install -r etc/pip/compile-requirements.txt ``` ![required-11.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222306vzijgtl54doktyhd.png)### 3. 编译 MongoDB执行以下命令:```shcd /usr/local/mongodb-src-r5.0.0python3 buildscripts/scons.py DESTDIR=/usr/local/mongo install-core --disable-warnings-as-errors```> 提示>>此过程将非常耗时(2 小时或更长)。若使用 SSH 远程连接请务必配置并使用不间断会话服务,具体操作请参阅 [3. 不间断会话服务配置](#)。当输出 `scons: done building targets.` 说明编译成功:!(https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222327rmekymvwfb8jozll.png)### 4. 配置 MongoDB编译并安装 MongoDB 后,还需要做一些环境变量以及目录权限相关的配置。> 提示>> 以下命令请在需要管理 MongoDB 的用户下执行。>> 可以事先创建管理 MongoDB 的用户。#### 4-1. 设置环境变量1. MongoDB 的可执行文件位于 `/usr/local/mongo/bin` 目录下,可将其添加到 `PATH` 路径中: ```sh vim ~/.bash_profile ``` ```sh export PATH=/usr/local/mongodb/bin:$PATH ``` ![cfg-1.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222353gtjhvwzb1dczovvp.png)2. 重新登录,验证效果: ```sh echo $PATH ``` ![cfg-2.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/2224048r8i681weichb8pn.png)#### 4-2. 配置目录默认情况下 MongoDB 启动后会初始化以下两个目录:- `/var/lib/mongodb` —— 数据存储目录- `/var/log/mongodb` —— 日志文件目录在启动前可以先创建这两个目录并设置当前用户有读写权限:```shsudo mkdir -p /var/lib/mongosudo mkdir -p /var/log/mongodbsudo chown `whoami` /var/lib/mongo # 设置权限sudo chown `whoami` /var/log/mongodb # 设置权限```![cfg-3.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222418b0rwgejdpnatbxyj.png)## 启停 MongoDB 数据库1. 使用以下命令启动 MongoDB: ```sh mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork ``` ![start-1.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222429oiqsk0cl6fmoggds.png)2. 使用以下命令进入 MongoDB 后台管理 Shell: ```sh mongo ``` ![start-2.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222440xbvbbgeabwof73i2.png) MongoDB Shell 是 MongoDB 自带的交互式 JavaScript Shell,用来对 MongoDB 进行操作和管理的交互式环境。可执行一些简单的算数运算: ![start-3.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222453ydrfqql6xhe4gchh.png)3. 使用以下命令关闭 MongoDB: ```sh mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --shutdown ``` ![start-4.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222503t3rqn2pzvokarn45.png)## 接下来...恭喜!你已经成功在 openEuler 上部署了 MongoDB。如果您是初学者,可以由此开始学习操作 MongoDB;如果您已经对 MongoDB 非常熟悉了,相信您很快就可以完成其它的配置以及项目的部署。未经特殊说明,本作品采用 [知识共享署名-相同方式共享 4.0 国际许可协议](#) 进行许可。
  • [活动公告] 【有奖征文】绽放吧!花开遇晨露,邂逅数据库
    在信息高度密集的今天,数据库在生活中的应用随处可见。随着信息管理内容的不断扩展和新技术的层出不穷,数据库技术面临着前所未有的挑战。面对新的数据形式,人们提出了丰富多样的数据模型,同时也提出了众多新的数据库技术。未来,数据库也会在更多的环境中去使用,从一颗种子到枝繁叶茂,愈加绽放!华为云社区博客特发起“绽放吧,花开遇晨露,邂逅数据库”有奖征文活动,以便大家可以更好地学习和使用数据库。本次活动的奖品丰厚,富士INSTAX一次成像相机、雷柏机械键盘、华为mini蓝牙音箱、5000码豆 等你来拿~有点心动?看看下面活动细则吧:我们需要哪些主题的稿件?原则上,我们欢迎所有能帮助所有学习数据库的人成长的文章!如基于自己的实际使用经验,分享对数据库的技术分析、使用感受及在项目实战中的经验或踩坑指南等。只要跟数据库技术有关的内容,我们都欢迎:你可以从以下几类主题和参考文章中,找到自己感兴趣的投稿方向:1、跟数据库应急处理相关,数据库容灾策略与数据库备份恢复等内容GaussDB(DWS) 容灾的介绍华为云等级保护之数据备份恢复(完整版)2、数据库安装部署相关内容,比如如何做初始化、如何做配置基于OpenEuler多机分片安装MongoDB 数据库3、介绍数据库的架构相关,比如数据库的“存算分离”架构、关系型数据库架构什么是数据库“存算分离”架构?零门槛入门数据库学习之关系型数据库架构介绍4、数据库的一些基本操作,比如导出和导入sql文件,MySQL数据库like语句通配符模糊查询等MySQL 数据库如何使用 Navicat 导出和导入 *.sql 文件Python操作redis数据库MySQL 数据库 like 语句通配符模糊查询小结5、数据库开发的原则,比如平衡范式与冗余、不在索引列做运算等Mysql数据库开发的36条原则6、数据库如何做优化,如何应对高并发情况等十年经验倾囊相授,Mysql优化经验,拿走不谢!你将获得什么?我们会把收到的优质内容汇编成册,并注明原作者,积累行业口碑,开放给圈内开发者下载查阅,提供实践参考。对于贡献优质内容的作者,我们还将送出各项大礼!同时,在华为云站内外10+个技术社区醒目位置进行推荐,给与百万级流量资源。优质作者更可获得长期约稿和更多内容合作机会。评奖规则说明奖品评选依据 :文章投票数* 40%+专家评审打分*60%投票流程 :截稿后评审会选出15-30篇最优秀的文章到论坛进行投票。投票链接 :8月20日开启投票,更新投票链接。专家评分依据 :文章篇幅、技术含金量、排版美观度、阅读量、点赞、收藏等指标综合评分其他说明 :1、一二三等奖不能叠加。2、征文投稿数量不计入月度激励活动文章数量。在哪里投稿?2、文章需要发表在社区博客; 是时候展现真正的技术了, 点击前往发布标题以 【绽放吧!数据库】结尾,例如:十年经验奉上,我是怎么做数据库性能优化的丨【绽放吧!数据库】。文章末尾需加上活动名称及链接地址:【绽放吧!数据库】有奖征文火热进行中:https://bbs.huaweicloud.com/blogs/285617有哪些需要注意的1、文章内容需体现技术看点,图文并茂,建议字数在500字以上;2、文章要求为投稿人原创,凡转载或抄袭一经发现将取消参赛资格;3、文章须在华为云社区为首发,如华为云平台已有文章内容则视为稿件无效;4、稿件投稿后,华为云拥有该稿件的使用权、修改权等。快来华为云社区博客,一起和数据库绽放吧! 点击立即发布如果有任何问题,可扫描下方二维码咨询。添加微信时请备注:绽放吧数据库 + 报名活动时使用的华为云昵称!扫码添加小助手:
总条数:1415 到第
上滑加载中