• OpenGauss的Schema
    创建了数据库之后,还需要创建模式(Schema)才能够存储数据库对象。通常在创建一个新的数据库时,默认会创建一个模式 public。背景信息schema又称作模式。通过管理schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的schema下而不引起冲突。管理schema包括:创建schema、使用schema、删除schema、设置schema的搜索路径以及schema的权限控制。注意事项openGauss包含一个或多个已命名数据库。用户和用户组在openGauss范围内是共享的,但是其数据并不共享。任何与服务器连接的用户都只能访问连接请求里声明的那个数据库。一个数据库可以包含一个或多个已命名的schema,schema又包含表及其他数据库对象,包括数据类型、函数、操作符等。同一对象名可以在不同的schema中使用而不会引起冲突。例如,schema1和schema2都可以包含一个名为mytable的表。和数据库不同,schema不是严格分离的。用户根据其对schema的权限,可以访问所连接数据库的schema中的对象。进行schema权限管理首先需要对数据库的权限控制进行了解。不能创建以PG_为前缀的schema名,该类schema为数据库系统预留的。在每次创建新用户时,系统会在当前登录的数据库中为新用户创建一个同名Schema。对于其他数据库,若需要同名Schema,则需要用户手动创建。通过未修饰的表名(名称中只含有表名,没有“schema名”)引用表时,系统会通过search_path(搜索路径)来判断该表是哪个schema下的表。pg_temp和pg_catalog始终会作为搜索路径顺序中的前两位,无论二者是否出现在search_path中,或者出现在search_path中的任何位置。search_path(搜索路径)是一个schema名列表,在其中找到的第一个表就是目标表,如果没有找到则报错。(某个表即使存在,如果它的schema不在search_path中,依然会查找失败)在搜索路径中的第一个schema叫做“当前schema”。它是搜索时查询的第一个schema,同时在没有声明schema名时,新创建的数据库对象会默认存放在该schema下。每个数据库都包含一个pg_catalog schema,它包含系统表和所有内置数据类型、函数、操作符。pg_catalog是搜索路径中的一部分,始终在临时表所属的模式后面,并在search_path中所有模式的前面,即具有第二搜索优先级。这样确保可以搜索到数据库内置对象。如果用户需要使用和系统内置对象重名的自定义对象时,可以在操作自定义对象时带上自己的模式。Schema操作步骤创建管理用户及权限schema执行如下命令来创建一个schema。语法格式创建SCHEMACREATE SCHEMA schema_name [ AUTHORIZATION user_name ] ;修改SCHEMA  修改模式的名称ALTER SCHEMA schema_name RENAME TO new_name;修改模式的所有者。ALTER SCHEMA schema_name OWNER TO new_owner;删除SCHEMA及其对象。DROP SCHEMA schema_name;不要随意删除pg_temp或pg_toast_temp开头的模式,这些模式是系统内部使用的,如果删除,可能导致无法预知的结果。参数说明schema_name模式名称须知: 模式名不能和当前数据库里其他的模式重名。 模式的名称不可以“pg_”开头。取值范围:字符串,要符合标识符的命名规范。AUTHORIZATION user_name指定模式的所有者。当不指定schema_name时,把user_name当作模式名,此时user_name只能是角色名。取值范围:已存在的用户名/角色名。schema_element在模式里创建对象的SQL语句。目前仅支持CREATE TABLE、CREATE VIEW、CREATE INDEX、CREATE PARTITION、CREATE SEQUENCE、CREATE TRIGGER、GRANT子句。子命令所创建的对象都被AUTHORIZATION子句指定的用户所拥有。说明: 如果当前搜索路径上的模式中存在同名对象时,需要明确指定引用对象所在的模式。可以通过命令SHOW SEARCH_PATH来查看当前搜索路径上的模式。根据用户名创建模式。openGauss=# CREATE SCHEMA test AUTHORIZATION user1; CREATE SCHEMA查看当前搜索路径openGauss=# SHOW SEARCH_PATH; search_path ---------------- "$user",public (1 row)更改当前会话的默认Schema。openGauss=# SET SEARCH_PATH TO test1, public; SET删除SCHEMA及其对象。openGauss=# DROP SCHEMA test1; DROP SCHEMA使用以下命令查看现有的schema。openGauss=# SELECT current_schema(); current_schema ---------------- myschema (1 row)使用schema在特定schema下创建对象或者访问特定schema下的对象,需要使用有schema修饰的对象名。该名称包含schema名以及对象名,他们之间用“.”号分开。执行如下命令在myschema下创建mytable表。openGauss=# CREATE TABLE myschema.mytable(id int, name varchar(20)); CREATE TABLE如果在数据库中指定对象的位置,就需要使用有schema修饰的对象名称。执行如下命令查询myschema下mytable表的所有数据。openGauss=# SELECT * FROM myschema.mytable; id | name ----+------ (0 rows)常见错误:错误一:无法删除某个角色1. 检查依赖关系确认角色 test 是哪些模式的所有者:sql复制代码SELECT schema_name FROM information_schema.schemata WHERE schema_owner = 'test';若返回结果包含 test 模式,说明该角色是模式的所有者。2. 转移模式所有权将 test 模式的所有权转移给其他角色(如 admin 或新建角色):-- 方法1:直接转移给现有角色(需目标角色存在)ALTER SCHEMA test OWNER TO admin;再次删除,发现即可删除成功。错误二:删除角色关联所有者、对象较多openGauss=# drop role tony; ERROR: role "tony" cannot be dropped because some objects depend on it DETAIL: owner of database mydb owner of database human_staff 1 object in database human_staff1. 确认角色依赖关系通过错误提示可知,角色tony是以下对象的所有者:• 数据库mydb• 数据库human_staff• 数据库human_staff中的1个对象(如表、模式等)2. 转移数据库所有权若需保留数据库,需将其所有权转移给其他角色(如admin):openGauss=# alter database mydb owner to gauss; openGauss=# alter database human_staff owner to gauss;3. 处理数据库内的对象方法1:转移对象所有权将tony拥有的对象(如表、视图等)的所有权转移给其他角色:-- 切换到目标数据库\c human_staff -- 转移所有对象的所有权(慎用,需超级用户权限) REASSIGN OWNED BY tony TO admin; -- 或逐个转移特定对象 ALTER TABLE <table_name> OWNER TO admin; ALTER SCHEMA <schema_name> OWNER TO admin;4. 撤销角色权限若tony在其他数据库(如postgres)中有权限,需撤销这些权限:sql复制代码-- 切换到postgres数据库\c postgres-- 撤销对特定对象的权限REVOKE ALL ON DATABASE postgres FROM tony;REVOKE ALL ON SCHEMA public FROM tony; -- 示例:撤销对public模式的权限REVOKE ALL ON TABLE pg_class FROM tony; -- 示例:撤销对系统表的权限5. 清理共享依赖若tony的依赖关系涉及共享对象(如角色权限),需检查并清理:sql复制代码-- 查看共享依赖关系(需超级用户)SELECT * FROM pg_shdepend WHERE refobjid = (SELECT oid FROM pg_roles WHERE rolname = 'tony');-- 手动撤销相关权限REVOKE USAGE ON SCHEMA <schema_name> FROM tony; -- 示例:撤销对模式的使用权6. 删除角色完成上述步骤后,尝试再次删除角色:DROP ROLE tony;注意事项1. 权限要求:转移所有权、撤销权限等操作需由超级用户或具备足够权限的角色执行。2. 数据安全:使用DROP OWNED BY或DROP DATABASE前,务必确认无需保留相关数据。3. 系统依赖:若tony是系统管理员(rolsuper或rolsystemadmin),需先转移系统权限。
  • gaussdb版本 数据库引擎版本 内核引擎版本到底是啥意思,三者有何关系?
    gaussdb版本 数据库引擎版本 内核引擎版本到底是啥意思,三者有何关系?我只找到华为云版本gaussdb的三者对应关系,轻量化版本的文档并未找到,请问哪里有相关说明?
  • [热门活动] 【中奖名单公示】///【产品体验官】华为开发者空间云开发环境震撼升级,提优化建议领千元开发者好礼
    【华为开发者空间云开发环境】产品体验官活动获奖名单如下:一、有效建议奖:昵称建议分值奖项礼品yd_2846377506.5有效建议奖第一名1000元开发者定制礼品miyalian5.5有效建议奖第二名800元开发者定制礼品yd_2388226594有效建议奖第三名500元开发者定制礼品二、优质建议奖:昵称礼品给无眠点压力200元开发者定制礼品yd_213866132200元开发者定制礼品yd_256610494200元开发者定制礼品小草飞上天200元开发者定制礼品lycchee200元开发者定制礼品yd_232023009200元开发者定制礼品风吹雨200元开发者定制礼品yd_212578646200元开发者定制礼品banjin200元开发者定制礼品cxw200元开发者定制礼品 恭喜以上11名获奖用户,请获奖用户通过以下问卷反馈奖品收件信息(9月25日前反馈有效),感谢大家对云声平台的关注和支持~ 华为开发者空间云开发环境功能正式上线啦!华为开发者空间云开发环境三大核心优势:1、一键创建,零门槛上手:无需复杂配置,只需登录华为开发者空间,点击 “新建开发环境”,填写名称即可完成创建;2.全生命周期管理,灵活又省心:随用随启、按需暂停、自动续时、安全删除;3.无缝对接工具链,开发体验无差异:支持通过 Xshell、CodeArts IDE、VSCode、JetBrains、Notebook等主流工具远程连接,本地工具怎么用,云端环境就怎么操作;大家赶快来体验吧,体验完后提交开发者空间优化建议,还可以领取开发者礼包,包括但不限于华为耳机、手环、鼠标、云宝等好礼,快叫上小伙伴一起提建议吧~ 【实践项目】体验项目项目名称难度系数功能体验开发平台:云开发环境/案例体验开发者空间 - 云开发环境使用指导 ★★★开发者空间云开发环境使用指导-Linux★★★本地Xshell基于华为开发者空间云开发环境完成上传下载 ★★★本地IntelliJ IDEA 基于华为开发者空间云开发环境的应用开发  ★★★本地CodeArts IDE基于华为开发者空间云开发环境完成小游戏开发★★★ 本地VSCode基于华为开发者空间云开发环境完成小程序开发★★★基于华为开发者空间-云开发环境,部署Jupyter Notebook★★★ 基于华为开发者空间-云开发环境,PyCharm SSH远程开发环境搭建 ★★★ 基于远程开发环境部署Django与开发者空间GaussDB的实践应用 ★★★★基于开发者空间编写ODBC应用程序操作GaussDB数据库  ★★★ 基于华为开发者空间云开发环境部署Coze Studio + Maas构建智能体应用 ★★★★详细信息请见“开发平台”,案例中心。 【活动时间】2025年8月5日-9月5日 【参与方式】01 体验开发者空间开发平台   》   02 去云声平台提建议    》  03 建议评估公示  》   04 获奖公示(活动结束后两周内) ps:建议标题需要以“开发者空间体验官”开头 【奖项设置】奖项设置评选条件获奖名额激励礼品有效建议奖1、有效建议数量不少于2条,有效建议由内部技术专家评审得出2、建议内容需针对上述实践项目3、有效建议中有不低于一条是关于功能体验的3名积分榜第1名:1000元礼品/人积分榜第2名:800元礼品/人积分榜第3名:500元礼品/人优质建议奖1、优质有效建议不少于1条,由内部技术专家评审选出10名每人200元开发者定制礼品【活动说明】1、建议预审通过即为有效建议,其中1条有效功能类建议为1分,1条有效体验类建议为0.5分,1条有效Bug类建议0.5分;有效建议奖与优质建议奖不可叠加2、建议提交时需要在标题中以“【开发者空间体验官】”为建议标题开头,比如【开发者空间体验官】开发者空间增加XX/优化XX/导入XX等3、建议内容仅针对以上实践项目中“开发平台功能体验+开发平台案例体验”涉及的云产品,非以上实践项目涉及产品建议内容不参与此活动4、优质建议要求建议对云产品功能及优化改进有重要作用,优先从已被采纳的建议的选择;建议内容需要表述清晰,有明确的建议方案,最好有操作截图或链接等能进一步详细描述;高价值建议数量不限,且与有效建议奖可叠加,每位用户每月最多可获得一次。5、注意事项1)若出现积分相同且排名一致的情况,结合已实现和已采纳建议情况,由内部技术专家选出价值更高的建议用户给予奖励2)同一用户在同一页面(文档)提出的同一类用户体验问题(包括但不限于错别字、语句不通顺、视觉体验等),在通过审核后仅算作一条有效建议数3)若发现代他人提交优化建议,此建议分值只取原分值30%;若发现2次及以上重复提交他人建议,或3次及以上重复提交体验类相关建议进行恶意刷量(包括但不限于错别字、语句不通顺、视觉体验等),取消本人活动参与资格;在活动截止日前进行大量刷屏提交建议,或者重复提交同类型体验建议,直接取消活动参与资格4)以上兑换礼品均为仓库现有实物礼品,有货的情况下优先满足,其中1-3名可优先选择华为自营品牌电子礼品,礼品价值不能超过商品原价,无货则不可以指定,如遇商品缺货,将随机换成其他等价值礼品发放5)此【开发者空间体验官】与云声月度例行激励活动不叠加,若标题无【开发者空间体验官】标记,则有效建议默认参与月度例行激励
  • OpenGauss的用户和角色
    openGauss概述openGauss是关系型数据库,采用客户端/服务器,单进程多线程架构;支持单机和一主多备部署方式,同时支持备机可读、双机高可用等特性。openGauss有如下基本功能:1、支持标准SQLopenGauss数据库支持标准的SQL(Structured Query Language,结构化查询语言)。SQL标准是一个国际性的标准,定期会进行更新和演进。SQL标准的定义分成核心特性以及可选特性,绝大部分的数据库都没有100%支撑SQL标准。openGauss数据库支持SQL92/SQL99/SQL2003等,同时支持SQL2011大部分的核心特性,另外还支持部分的可选特性。2、支持标准开发接口openGauss数据库提供业界标准的ODBC(Open Database Connectivity,开放式数据库连接)及JDBC(Java Database Connectivity,java数据库连接)接口,保证用户能将业务快速迁移至openGauss。目前支持标准的ODBC3.5及JDBC4.0接口,其中ODBC能够支持CentOS、openEuler、SUSE、Win32、Win64等平台,JDBC无平台差异。3、混合存储引擎支持openGauss数据库支持行存储引擎、列存储引擎和内存存储引擎等。行存分为“inplace update” 和 “append update”两种模式,前者通过单独的回滚段(undo log)来保留元组的前像以解决读写冲突,可以更自然的支持数据更新;后者将更新记录混杂在数据记录中,通过新旧版本的形式来支持数据更新,对于旧版本需要定期做vacuum操作来支持磁盘空间的回收。列存支持数据快速分析,更适合OLAP(Online Analytical Processing,联机分析处理)业务。内存引擎支持实时数据处理,对有极致性能要求的业务提供支撑。4、事务支持事务支持指的就是系统提供事务的能力,openGauss支持事务的原子性、一致性、隔离性和持久性。事务支持及数据一致性保证是绝大多数数据库的基本功能,只有支持了事务,才能满足事务化的应用需求。用户和角色管理是数据库管理系统中的重要功能,用于管理数据库中的用户和角色,以控制对数据库的访问权限。用户是数据库中的实体,用于标识和管理数据库中的各种操作权限和资源使用权限。而角色是一组权限的集合,可以将一组用户分配到同一个角色上,从而简化权限管理和控制。在openGauss数据库中,用户和角色管理可以通过SQL语句或者openGauss控制台来完成。通过创建、修改、删除用户和角色,可以控制用户的身份验证和访问权限。用户 使用数据库系统服务的个体  职责单一,往往附属于某个组织或部门用户可以做什么  使用工具连接数据库  访问数据库对象  执行SQL语句角色 角色是一组用户的集合,按照数据库系统中承担的责任划分具有不同权限的角色;角色用来作 为权限集合的载体。 ⚫ openGauss 提供了一个隐式定义的拥有所有角色的组PUBLIC,所有创建的用户和角色默 认拥有PUBLIC所拥有的权限。 ⚫ 要撤销或重新授予用户和角色对PUBLIC的权限,可通过在GRANT和REVOKE指定关键字 PUBLIC实现。用户与角色⚫ 用户是实体,角色是行为。 ⚫ 用户可被赋予一个或多个角色。⚫ 角色是一种权限集合,不应该具有登录数据库并执行SQL的能力。 ⚫ 对用户权限的管理,可以简化为对角色权限的管理。 ⚫ 在openGauss中,用户和角色使用相同的操作方式与维护方式。实际使用中的选择在OpenGauss中,CREATE USER更常用于以下场景:需要创建实际登录数据库的账号时为应用程序或个人用户创建账户时而CREATE ROLE通常用于:创建权限组(如read_only_role, write_role等)实现权限继承和组合作为模板角色语法CREATE USER name [ [ WITH ] option [ ... ] ] 这里 option 可以是: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid修改角色/用户ALTER USER role_specification [ WITH ] option [ ... ] 其中 option 可以是: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' ALTER USER name RENAME TO new_name ALTER USER { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT } ALTER USER { role_specification | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT ALTER USER { role_specification | ALL } [ IN DATABASE database_name ] RESET configuration_parameter ALTER USER { role_specification | ALL } [ IN DATABASE database_name ] RESET ALL删除角色/用户DROP USER [ IF EXISTS ] name [, ...]查询类操作:  openGauss的用户、角色属性维护在pg_authid系统表中,pg_user、pg_roles视图也可以查询 用户、角色信息。  使用\d命令查看pg_authid表详细信息。  使用select命令查询pg_authid中的相关信息。角色属性角色可以拥有属性,属性确定了角色拥有的特权,并且在登录时与客户端认证系统进行交互。常见的角色属性包括:• 登录特权,只有具有 LOGIN 属性的角色才能连接数据库。具有 LOGIN 角色的用户可以被看作一个“数据库用户”。使用以下语句创建具有登录特权的角色:CREATE ROLE name LOGIN;CREATE USER name;CREATE USER 与 CREATE ROLE 都可以用于创建角色,只不过 CREATE USER 默认包含了 LOGIN 选项,而 CREATE ROLE 没有。• 超级用户,数据的超级用户可以避开所有的权限检查,只验证登录权限。因此,这是一个很危险的特权,使用时需要特别小心;最好在日常的操作中避免使用超级用户。使用以下命令创建一个新的超级用户:CREATE ROLE name SUPERUSER;只有超级用户才能创建其他的超级用户。• 创建数据库,只有明确授权的角色才能够创建数据库(超级用户除外,因为他们可以避开权限检查)。使用以下语句创建一个具有数据库创建特权的角色:CREATE ROLE name CREATEDB;• 创建角色,只有明确授权的角色才能够创建其他角色(超级用户除外,因为他们可以避开权限检查)。使用以下命令创建一个具有角色创建特权的角色:CREATE ROLE name CREATEROLE;具有 CREATEROLE 特权的角色还可以修改或删除其他角色,以及为这些角色授予或者撤销成员角色。但是,针对超级用户的创建、修改、删除,以及它的成员变更,需要超级用户特权;CREATEROLE 特权无法针对超级用户执行这些操作。• 启动复制,只有明确授权的角色才能够启动流复制(超级用户除外,因为他们可以避开权限检查)。用于流复制的角色还需要拥有 LOGIN 特权。使用以下语句创建可以用于流复制的角色:CREATE ROLE name REPLICATION LOGIN;• 密码,只有当用户连接数据库使用的客户端认证方法要求提供密码时,密码属性才有意义。password 和 md5 认证方法需要使用密码。数据库的密码与操作系统的密码相互独立。使用以下语句在创建角色时指定密码:CREATE ROLE name PASSWORD 'string';我们在创建角色时,可以根据需要指定某些属性。例如,以下命令创建一个具有登录特权的角色 tony,并且为它指定了密码以及密码过期时间:CREATE ROLE tony WITH LOGIN PASSWORD 'Pass2019' VALID UNTIL '2020-01-01';-- CREATE USER tony WITH PASSWORD 'Pass2019' VALID UNTIL '2020-01-01';使用该用户连接到 postgres 数据库:[root@centos7 ~]# psql -h 192.168.56.103 -p 5432 -U tony postgresPassword for user tony:psql (14.2)Type "help" for help.postgres=> \cYou are now connected to database "postgres" AS user "tony".psql 命令行工具支持许多选项,-h 表示数据库服务器的地址,-p 表示服务的监听端口,-U表示登录使用的用户名,最后的 postgres 代表要连接的数据库。详细的命令行参数可以使用 psql--help 查看。以下命令创建一个管理角色 admin,它具有创建数据库和创建角色的特权:opengauss=# CREATE ROLE admin CREATEDB CREATEROLE; CREATE ROLE在实践中,最好创建一个拥有 CREATEDB 和 CREATEROLE 特权,但不具有超级用户特权的管理角色,然后使用该角色执行日常的数据库和角色的管理。这种方式可以避免过度使用超级用户可能带来的风险。一个角色被创建之后,可以通过 ALTER ROLE 语句修改它的属性。例如,以下命令可以撤销角色 admin 创建角色的特权:opengauss=# ALTER ROLE admin NOCREATEROLE; ALTER ROLE2.3 对象授权当我们使用新创建的用户(tony)连接数据库(hrdb)之后,执行以下查询语句:hrdb=> SELECT * FROM employees; ERROR: permission denied for table employees以上语句执行错误是因为用户没有相应对象上的访问权限。opengauss使 GRANT 语句进行数据库对象的授权操作。以表为例,基本的授权语法如下:GRANT privilege_list | ALL ON [ TABLE ] table_name TO role_name;其中,privilege_list 权限列表可以是 SELECT、INSERT、UPDATE、DELETE、TRUNCATE等,ALL 表示表上的所有权限。例如,使用 gauss用户连接 hrdb 数据库后执行以下语句:hrdb=# GRANT SELECT, INSERT, UPDATE, DELETE hrdb-# ON employees, departments, jobs hrdb-# TO tony;GRANT该语句将 employees、departments 和 jobs 表上的增删改查权限授予了 tony 用户。此时 tony用户就可以访问这些表中的数据:hrdb=> SELECT first_name, last_name FROM employees;对表进行授权的 GRANT 语句还支持一些其他选项:GRANT privilege_list | ALL ON ALL TABLES IN SCHEMA schema_name TO role_name;ALL TABLES IN SCHEMA 表示某个模式中的所有表,可以方便批量授权操作。例如:hrdb=# GRANT SELECT hrdb-# ON ALL TABLES IN SCHEMA public hrdb-# TO tony;GRANT该语句将 public 模式中所有表的查询权限授予 tony 用户。我们也可以在 GRANT 语句的最后指定一个 WITH GRANT OPTION,意味着被授权的角色可以将该权限授权其他角色。例如:hrdb=# GRANT SELECT, INSERT, UPDATE, DELETE hrdb-# ON employees, departments, jobs hrdb-# TO tony WITH GRANT OPTION;此时,tony 用户不但拥有这些表上的访问权限,还可以将这些权限授予其他角色。除了授权表的访问权限之外,GRANT 语句还支持字段、视图、序列、数据库、函数、过程、模式等对象的授权操作。2.4 撤销授权与授权操作相反的就是撤销权限,opengauss使 REVOKE 语句撤销数据库对象上的权限。同样以表为例,基本的撤销授权语句如下:REVOKE privilege_list | ALL ON TABLE table_name FROM role_name;其中的参数和 GRANT 语句一致。例如:hrdb=# REVOKE SELECT, INSERT, UPDATE, DELETE hrdb-# ON employees, departments, jobs hrdb-# FROM tony;REVOKE该语句撤销了用户 tony 访问 employees、departments 以及 jobs 表的权限。REVOKE 语句也支持对某个模式中的所有对象进行操作:REVOKE privilege_list | ALL ON ALL TABLES IN SCHEMA schema_name FROM role_name;例如以下语句撤销了用户 tony 在 public 模式中所有表上的查询权限:hrdb=# REVOKE SELECT hrdb-# ON ALL TABLES IN SCHEMA public hrdb-# FROM tony;REVOKE与 GRANT 语句对应,REVOKE 语句还支持字段、视图、序列、数据库、函数、过程、模式等对象的撤销授权操作。2.5 角色成员在现实的环境中,管理员通常需要管理大量的用户和对象权限。为了便于权限管理,减少复杂度,可以将用户进行分组,然后以组为单位进行权限的授予和撤销操作。为此,opengauss引入了组(group)角色的概念。具体来说,就是创建一个代表组的角色,然后将该组的成员资格授予其他用户,让其成为该组的成员。首先,使用以下创建一个组角色:CREATE ROLE group_name;按照习惯,组角色通常不具有 LOGIN 特权,也就是不能作为一个用户登录。例如,我们可以先创建一个组 managers:CREATE ROLE managers;然后,使用与对象授权操作相同的 GRANT 和 REVOKE 语句为组添加和删除成员:GRANT group_name TO user_role, ... ; REVOKE group_name FROM user_role, ... ;我们将用户 tony 添加为组 managers 的成员:opengauss=# GRANT managers TO tony; GRANT ROLE最后一行输出显示了成员角色(tony)所属的组(managers)。也可以将一个组添加为其他组的成员,因为组角色和非组角色并没有什么本质区别。opengauss=# GRANT admin TO managers; GRANT ROLE另外,opengauss不允许设置循环的成员关系,也就是两个角色互相为对方的成员。opengauss=# GRANT managers TO admin; ERROR: role "managers" is a member of role "admin"最后,不能将特殊角色 PUBLIC 设置为任何组的成员。组角色中的成员可以通过以下方式使用该组拥有的特权:• 首先,组中的成员可以通过 SET ROLE 命令将自己的角色临时性“变成”该组角色。此时,当前数据库会话拥有该组角色的权限,而不是登录用户的权限;并且会话创建的任何数据库对象归组角色所有,而不是登录用户所有。• 其次,对于具有 INHERIT 属性的角色,将会自动继承它所属的组的全部特权,包括这些组通过继承获得的特权。考虑以下示例:CREATE ROLE user1 LOGIN INHERIT; CREATE ROLE net_admins NOINHERIT; CREATE ROLE sys_admins NOINHERIT; GRANT net_admins TO user1; GRANT sys_admins TO net_admins;使用角色 user1 登录之后,数据库会话将会拥有 user1 自身的特权和 net_admins 所有的特权,因为 user1“继承”了 net_admins 的特权。但是,会话还不具有 sys_admins 所有的特权,因为即使user1 间接地成为了 sys_admins 的成员,通过 net_admins 获得的成员资格具有 NOINHERIT 属性,也就不会自动继承权限。如果执行了以下语句:SET ROLE net_admins;会话将会拥有 net_admins 所有的特权,但是不会拥有 user1 自身的特权,也不会继承sys_admins 所有的特权。如果执行了以下语句:SET ROLE sys_admins;会话将会拥有 sys_admins 所有的特权,但是不会拥有 user1 或者 net_admins 所有的特权。如果想要恢复初始状态的会话特权,可以执行以下任意语句:SET ROLE user1; SET ROLE NONE; RESET ROLE;在 SQL 标准中,用户和角色之间存在明确的差异,用户不会自动继承特权,而角色会继承特权。opengauss可以实现这种行为,只需要为角色设置 INHERIT 属性,而为用户设置NOINHERIT 属性。但是,为了兼容 8.1 之前的版本实现,PostgreSQL 默认为所有的角色都设置了 INHERIT 属性,这样用户总是会继承它所在组的权限。只有数据库对象上的普通权限可以被继承,角色的 LOGIN、SUPERUSER、CREATEDB 以及 CREATEROLE 属性可以被认为是一些特殊的权限,不会被继承。如果想要使用这些权限,必须使用 SET ROLE 命令设置为具有这些属性的角色。基于上面的示例,我们可以为 net_admins 角色指定 CREATEDB 和 CREATEROLE 属性。ALTER ROLE net_admins CREATEDB, CREATEROLE;然后再使用 user1 连接数据库,会话不会自动具有这些特权,而是需要执行以下命令:SET ROLE net_admins;2.6 删除角色删除角色的语句如下:DROP ROLE name;如果删除的是组角色,该组中的成员关系会自动从组中删除,但是这些成员角色自身不会受到任何影响。以下示例删除了角色 admin:opengauss=# drop role admin; DROP ROLE由于角色可以拥有数据库中的对象,也可以拥有访问其他对象的权限,删除角色通常不仅仅只是一个简单的 DROP ROLE 语句。在删除角色之前,需要删除它所拥有的对象,或者将这些对象重新赋予其他的角色;同时还需要撤销授予该角色的权限。
  • openGauss下的操作指令
    openGauss 是一款全面友好开放,携手伙伴共同打造的企业级开源关系型数据库。openGauss采用木兰宽松许可证v2发行,提供面向多核架构的极致性能、全链路的业务、数据安全、基于AI的调优和高效运维的能力。openGauss深度融合华为在数据库领域多年的研发经验,结合企业级场景需求,持续构建竞争力特性。同时,openGauss也是一个开源、免费的数据库平台,鼓励社区贡献、合作。数据库作为信息系统基础底座软件,在大数据背景下,数据库的数据量和节点规模日益增长,数据库使用方越来越看重系统运行是否稳定、安全和高效,这也使数据库自身的运行与维护的要求也随之增高。是否拥有成熟健全的运行维护体系,支撑团队的数据库运维管理能力是否足够专业化和标准化,这都将影响和制约着整个企业信息化发展的步伐。数据库运维一般会涉及到数据存储方案设计、数据库表设计、索引设计和SQL优化等,另外还包括对数据库进行变更、监控、备份、高可用设计等工作。本文将从数据库运维的角度简单介绍一下openGauss在日常运维工作中常用的操作命令,以便能够帮助大家轻松使用openGauss数据库。常用运维相关命令第一组:openGauss启停高斯数据库的启动/停止/重启指令:gs_ctl start -D /home/gauss/openGauss/data/ gs_ctl stop-D /home/gauss/openGauss/data/ gs_ctl restart -D /home/gauss/openGauss/data/#查看进程ps ux |grep gauss#查看端口号netstat -lntup|grep gauss ss -lntup|grep gauss第二组:openGauss库表指令#进入到高斯数据库使用jack用户连接到远程主机postgres数据库的15400端口。复杂格式gsql -h 10.180.123.163 -d postgres -U jack -p 15400[gauss@server1 ~]$ gsql -d postgres -p 5432 gsql ((openGauss-lite 6.0.1 build 84c20a90) compiled at 2025-01-17 17:49:04 commit 0 last mr release) Non-SSL connection (SSL connection is recommended when requiring high-security) Type "help" for help. openGauss=##查看相应的数据库openGauss=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+-------+----------+-------------+-------------+------------------- human_staff | gauss | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | postgres | gauss | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | template0 | gauss | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/gauss + | | | | | gauss=CTc/gauss template1 | gauss | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/gauss + | | | | | gauss=CTc/gauss (4 rows)#库的删除drop database human_staff; DROP DATABASE#创建数据库openGauss=# create database human_staff; CREATE DATABASE#和\l 类似 查看库指令openGauss=# SELECT datname FROM pg_database; datname ------------- template1 human_staff template0 postgres (4 rows)#进入到human_staffopenGauss=# \c human_staff Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "human_staff" as user "gauss". #下面的指令不会成功,不是mysql的指令。 human_staff=# select * from tables;第三#查看表信息#human_staff=# \dt No relations found.human_staff=# create table users(id int,uname varchar(50)); CREATE TABLE human_staff=# \dt List of relations Schema | Name | Type | Owner | Storage --------+-------+-------+-------+---------------------------------- public | users | table | gauss | {orientation=row,compression=no} (1 row) human_staff=# insert into users values(1,'tom'); INSERT 0 1 human_staff=# select * from users; id | uname ----+------- 1 | tom (1 row)  #变量的设置#设置变量 openGauss=# \set dbname2 shopdb #显示变量 openGauss=# \echo :dbname2 shopdb #删除变量 openGauss=# \unset dbname2#解决:^A H问题; bash # 在root用户下,安装rlwrap sudo yum install rlwrap # 使用rlwrap运行gsql rlwrap gsql -d postgres -p 5432第三组:openGauss表数据管理需要提前创建库omm1、创建一张表 products字段名数据类型含义product_idinteger产品编号product_namechar(30)产品名categorychar(20)种类----建表语句create table products ( product_id integer, product_name char(30), category char(20) ) ;----查看表的结构omm=# \d products2、向表中插入数据,分别采用一次插入一条和一次插入多条记录的方式insert into products(product_id,product_name,category) values (1502, ‘olympus camera’, ‘electrncs’); insert into products(product_id,product_name,category) values (1601,‘lamaze’,‘toys’), (1700,‘wait interface’,‘Books’), (1666,‘harry potter’,‘toys’);3、查询表中所有记录及记录数select count(*) from products; select * from products;4、查询表中所有category记录,并将查询结果按升序排序select category from products order by category asc;5、查询表中category为toys的记录select * from products where category = ‘toys’;6、更改表中某个字段的值update products set product_name=‘camera’ where product_id=1502;select * from products;6、删除表productsdrop table products; select * from products;总结openGauss数据库作为一款基于SQL标准的关系型数据库管理系统,支持广泛的SQL指令进行数据操作、查询、管理以及权限控制。OpenGauss提供面向多核的极致性能、全链路的业务和数据安全、基于AI的调优和高效运维的能力让我受益匪浅。尤其是OpenGauss在AI自治方面的能力真是令人惊喜。自调优、自诊断自愈、自组装这三大自治简直是所有dba的福音。
  • [案例共创] 【获奖名单已公布】【第6期】开发者空间-基于云开发环境和GaussDB构建应用
    本期获奖情况如下,恭喜各位获奖者~~~~温馨提示:获奖用户请提前实名认证,以便顺利发放代金券!代金券和礼品的发放信息收集地址:cid:link_12,请及时填写信息。代金券即将发放至论坛私信(右上角我的社区-我的消息-私信中领取),礼品已在申请流程中,请耐心等待,谢谢!多篇文章的本期以最高奖项的发放,不叠加。如发布3篇,2篇参与奖,1篇三等奖,按三等奖发放。类型主题作者帖子标题奖项文章banjin【案例共创】在开发者空间云开发环境使用Vanna配合ollama/maas基于GaussDB的自然语言分析系统二等奖xiaowuyun【案例共创】基于远程开发环境部署Django与开发者空间GaussDB的极简博客系统二等奖苏家祺【案例共创】远程开发环境中部署Bun + Next.js + tRPC与开发者空间生态版GaussDB实践操作并编写学生成绩管理系统二等奖给无眠点压力【案例共创】基于开发者空间云开发环境与 GaussDB 的JAVA多租户 SaaS 实践(Spring Boot + MyBatis-Plus)二等奖夏同学【案例共创】基于华为云开发者云主机创建部署 AdonisJS 与华为云数据库 GaussDB 的实践应用三等奖小草飞上天【案例共创】基于IDEA连接云开发环境并结合GaussDB构建JAVA程序抽奖小应用三等奖miyalian【案例共创】基于华为开发者空间云开发环境+GaussDB实现在线考试系统三等奖风吹雨【案例共创】基于远程开发环境部署企业级商城Litemall与开发者空间GaussDB的实践应用参与奖郑小健【案例共创】基于华为开发者空间-云开发环境实现PyCharm SSH远程开发环境搭建参与奖熊猫钓鱼【案例共创】华为云GaussDB企业级电商订单分析系统开发案例参与奖江南清风起【案例共创】基于华为开发者空间云开发环境和GaussDB数据库—员工工资管理系统实战参与奖yd_273825949我的第一个云上应用:基于华为云开发者空间和GaussDB的极简留言墙参与奖柠檬味拥抱【案例共创】基于远程开发环境部署Flask与开发者空间GaussDB的实践应用构建在线TODO清单(保姆级指南实战案例)参与奖Todd_Wong2010【案例共创】海思3516DV500+IMX664方案一体化机芯,开放AI算法部署二次开发参与奖视频banjin开发者空间云开发环境使用Vanna配合ollama基于GaussDB的自然语言分析系统(https://www.bilibili.com/video/BV1h8Y9zMEYT/)二等奖xiaowuyun【华为开发者空间:开发环境部署Django,Pillow,markdown与GaussDB的极简博客系统-哔哩哔哩】( https://b23.tv/HTlw1em)二等奖创作小能手奖郑小健  柠檬味拥抱   了解案例共创活动 为了让更多开发者能够更轻松、更高效地理解和使用我们的文档,进而提升云产品的整体使用体验,我们致力于进一步优化和完善官方产品文档。在此过程中,我们诚挚地邀请广大开发者积极参与,通过亲身体验云产品,编写实践案例或体验评测。一旦您的案例经过专家评审团的认可与采纳,将有以下三点:优质案例将被正式收录至官方案例库,供广大开发者学习。优质案例将选送到在华为云站内外10+个技术社区推荐,给予百万级流量资源。以上案例我们都将注明原作者名字,实现与开发者共创官方文档。 参与者不仅有机会获得每月活动礼品,还有可能被评为年度内容贡献官,享受更多荣誉和奖励,获得更多合作机会。我们期待着与您一起,共同打造更加优质、高效的云服务体验。参与投稿方式 第1步:(已注册并实名可跳过)华为云账号实名认证,点击这里。(已设置可跳过)登录后设置社区昵称,点我设置。第2步:点击报名填写报名问卷,提供礼品发放地址等信息第3步:开启您的云端体验,分享实践案例,点我写帖子。版块选择“社区活动”分类选择“案例共创”帖子标题在前面添加【案例共创】(一定要加,方便识别参与活动的帖子)文末可添加活动名称及链接地址,如“我正在参加【案例共创】第6期 开发者空间-基于云开发环境和GaussDB构建应用  cid:link_29”【如您在体验中有任何产品问题,欢迎在论坛发布问题求助帖(帖子分类选择问题求助)咨询产品专家,如发现任何体验不友好、产品Bug、文档页面错漏等情况,欢迎通过云声平台反馈给我们,还有机会领取云声专属礼品!活动相关咨询可以论坛私信“论坛小助手SUN”】本期投稿内容 Ø 华为云产品介绍:华为开发者空间 - 云开发环境: 华为开发者空间 - 云开发环境是华为开发者空间提供远程云开发环境,开发者可在本地通过工具和浏览器多种形式接入开发环境,完成编码开发、远程操作、项目部署及本地访问等多个场景的作业活动,开发者可以轻松完成本地PC开发环境到云开发环境的无缝切换。云开发环境操作指导参考:云开发环境链接:cid:link_14开发者空间 - 云开发环境使用指导:Windows版-cid:link_0Linux版-cid:link_1MACOS版-cid:link_1本地IDE和工具连接云开发环境:基于华为开发者空间-云开发环境,PyCharm SSH远程开发环境搭建:cid:link_3基于华为开发者空间-云开发环境,部署Jupyter Notebook:cid:link_4本地IntelliJ IDEA 基于华为开发者空间云开发环境的应用开发:cid:link_5本地CodeArts IDE基于华为开发者空间云开发环境完成小游戏开发:cid:link_6本地VSCode基于华为开发者空间云开发环境完成小程序开发:cid:link_7本地Xshell基于华为开发者空间云开发环境完成上传下载:cid:link_8GaussDB:GaussDB是华为自主创新研发的分布式关系型数据库。该产品支持分布式事务,同城跨AZ部署,数据0丢失,支持1000+的扩展能力,PB级海量存储。同时拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。GaussDB资源获取链接:领取免费版GaussDB(2025年06月 21日 - 2025年 12月 31日,数量有限):cid:link_9Ø 应用构建要求开发者可结合自己的工作实践,应用构建类型和主题参考如下:基于华为开发者空间云开发环境和免费GaussDB数据库实例完成应用开发;主题场景参考以下方向:基于本地IDE连接远程云开发环境完成应用代码编写和部署,以GaussDB数据库作为应用数据读存的数据库,并在本地访问应用。Ø 手册案例模版参考云开发环境结合GaussDB的应用实践:1)案例地址:cid:link_10简介:基于云开发环境完成Django Web框架部署,通过本地IDE连接云开发环境完成Web应用的开发,并通过Django对接GaussDB数据库,以GaussDB数据库作为Web应用的数据存储读取,最后通过端口映射实现本地访问Web应用(注意:案例编写格式务必参考模板!) (注意:案例编写格式务必参考模板!) (注意:案例编写格式务必参考模板!) Ø 投稿规则手册类投稿: 构建的应用需要完成端到端构建,手册包含应用在开发者空间运行的完整截图。手册包含开发过程关键实际操作描述(文字描述+截图+代码)。手册的案例实操需要完整体现,可根据手册上手并体验。手册包含案例场景和方案以及用到的华为云产品或者开源框架简述。视频类投稿: 构建的应用需要完成发布,视频包含应用在线情况的展示。视频包含案例场景和方案以及用到的华为云产品或者开源框架简述。视频包含开发过程详细的实际操作。视频的案例实操需要完整体现,可根据视频上手并体验。视频需发在外部视频平台上(如:B站等平台),在该活动贴下回复视频链接即可。Ø 评奖规则标准类型分值释义分值阶梯总分值操作完整性关键节点以文字+截图的形势进行说明1:空间的实践操作,而非方案类描述2:参考官方提供模版,可读性好,有关键节点文字说明与截图3:符合2的条件下能够突出关键代码释义以及关键步骤解释说明4:应用构建后可执行,并有执行后效果介绍和展示1-4/0.5梯度4案例实用性贴近实际行业生产或者业务场景1:纯技术应用不涉及实际应用场景,比如接入模型后的问答助手2:基于实际应用场景具有一定的实用性3:基于实际场景且在开发者空间完成部署实施4:基于实际应用场景解决行业的痛点问题,可用于生产实施1-4/0.5梯度4技术多样性案例中应用更多的华为云技术或主流开源框架1:使用活动中要求的空间以及工具或者技术2:基于空间结合更多的华为云技术/服务、开源框架或技术1-2/0.5梯度2荣誉与奖励1、获奖案例将有机会作为华为云开发者空间应用的标杆案例,进行录入成册推广宣传,并发布到华为云开发者联盟公众号传播矩阵。同时,案例内容可作为后续作者申请评选HCDE的相关贡献内容。标杆案例:【华为开发者空间 · 案例共创故事(郑州轻工业大学)】(https://mp.weixin.qq.com/s/pPmPcdlWYLPalzJPqxIfew)  Ø  奖项设置   视频案例奖项:文章案例奖项:  注:每期评审专家根据每篇文章评选文章分数及等级,每期文章质量不一,不排除有某个奖项轮空的情况,如第X期文章质量在A级和B级,即S和S+级轮空。代金券及周边礼物发放对象为:已完成实名认证的华为云用户。发放到填写报名问卷的账号及收货地址中,礼包类礼品均为实物礼品。  重要说明1、投稿内容一经采用,将会被纳入官方产品文档,文章作者拥有著作权,华为云拥有使用权、修改权等。2、每期评审专家根据每篇文章评选文章分数及等级,每期文章质量不一,不排除有某个奖项轮空的情况,如第X期文章质量在A级和B级,即S和S+级轮空3、投稿内容字数不少于500字(不含代码),要求思路清晰、文字顺通、图片清晰、代码规范,不得有打广告、加二维码引流和凑字数行为。4、文章要求发布在华为云开发者社区论坛,允许搬运自己发在其他平台的文章,但仅支持搬运自己的原创文章,搬运他人的文章当抄袭处理。内容必须保证内容原创性,实践过程真实、内容代码化,如发现投稿内容为转载、复制、抄袭、恶意拼接、灌水等侵权作弊行为,均视为无效并取消参与资格5、将发表过的文章删除后重新发表的文章,不计入发文数量,以文章评选时在线显示数量为准。活动期间,如有用脚本刷阅读量、注册僵尸号刷赞等严重违反社区规范的行为,直接取消所有获奖资格。6、审核通过被采纳的文章作者,将在下月初进行获奖名单公布和奖励发放,届时会有站内信通知,请及时关注并填写快递信息,过期未核对或填写视为放弃该期奖品。7、对于持续输出高质量内容的作者,每年度末还有年度贡献大礼包送上。特别声明:华为云有权根据自身运营安排,自主决定和调整
  • [分享交流] 深圳人才福利!5大“国家队”级信创技术免费培训课程开始报名
    当别人已在鸿蒙生态接单月入3万+,你还在Java内卷?当大模型重构IT岗位,传统运维正批量淘汰…体贴的深圳人社为您再次奉上信创技术/鸿蒙系统/麒麟系统等新一代信息应用技术生存技能大餐•       信创智算与大模型技术课程•       开源高斯数据库技术课程•       鸿蒙原生应用开发课程•       开源鸿蒙设备应用技术课程•       前沿  科技  国产系统应用 还等什么基于麒麟操作系统的信创基础软件适配迁移与运维课程 【理论授课、现场实战、组队攻坚】告别枯燥的理论推砌聘请行业专家担任讲师5门免费课程助你抢占信息技术高地,满级晋升!最重要的是全!免!费!咱不花一分钱就开启成长与蜕变的大门报名有啥要求?咋报名?快随我往下看吧!一、  报名条件报名学员需具有新一代电子信息应用技术相关的行业从业背景或具备相关专业背景,并满足以下条件之一即可:1.本市户籍人员;2.在本市正常缴交社会保险的人员;3.深圳市登记失业人员;4.在深圳市公共就业服务机构进行离校两年未就业实名登记的本市高校毕业生;5.本市高校或本市户籍在市外高校的毕业年度(指毕业时间在2025年1月1日至12月31日之间)毕业生(含技师学院高级工班、预备技师班)。温馨提示:(1)同一劳动者同一年度只能参加1次项目制培训哦。如果您已经参加2024年度项目制培训但未完成规定学时50%以上,很遗憾,那无法参加2025年度的项目制培训了哦。(2)同一劳动者同一年度内企业新型学徒制培训,学生学徒制培训、技培生学徒制培训只能参加一次,且均不能和项目制培训同时享受。等等先别急还没完!还有额外补贴!【额外补贴】如您满足以下条件之一:•       本市就业困难人员•       本市零就业家庭成员•       本市就业残疾人•       本市城市低保家庭成员•       本市毕业2年内的“两后生”中的农村学员•       本市求职就业的脱贫人员不仅可以免费学课程还可以再领500元的生活补贴金💴! 接下来咱们看一下具体学习内容吧!二、  学习内容以及报名方式 新一代电子信息应用技术项目制培训 指导单位:深圳市人力资源和社会保障局主办单位 :深圳市职业技能培训指导中心承办单位:深圳职业技术大学1、信创智算与大模型技术课程课程内容培训天数培训名额主要内容包括:1.基于昇腾平台的 DeepSeek 模型搭建与优化2.华为云昇腾算力支持下的私有场景大模型部署3.基于昇腾与 DeepSeek 的私有大模型自主训练4.电商场景下大模型的创新应用与拓展6天约300人 信创智算与大模型技术课程报名二维码及交流群(QQ群)    2、开源高斯数据库技术课程课程内容培训天数培训名额主要内容包括:1.高斯数据库安装与对象管理实操2.场景化高斯数据库实验探索3.数据库AI策略与技巧4.数据安全管理与防护6天约250人开源高斯数据库技术课程报名二维码及交流群(QQ群)   3、      鸿蒙原生应用开发课程课程内容培训天数培训名额主要内容包括:1.基于ArkTSUI框架搭建实训云平台2.鸿蒙原生办公签到系统开发3.基于Next版本开发实时社交软件联动DeepSeek实现聊天问答4.基于鸿蒙服务卡片开发音乐推荐软件5.鸿蒙原生健康服务检测软件开发6天约250人 鸿蒙原生应用开发课程报名二维码及交流群(QQ群)     4、      开源鸿蒙设备应用技术课程课程内容培训天数培训名额主要内容包括:1.OpenHarmony搭建与配置2.开源鸿蒙设备驱动开发和集成3.基于开源鸿蒙的HAL层开发4.基于开源鸿蒙的智能家居软硬件开发6天约250人 开源鸿蒙设备应用技术课程报名二维码及交流群(QQ群)    5、基于麒麟操作系统的信创基础软件适配迁移与运维课程课程内容培训天数培训名额主要内容包括:1.银河麒麟桌面操作系统 V10 的管理应用2.掌握适配测试基础及软硬件适配测试技能6天约250人 基于麒麟操作系统的信创基础软件适配迁移与运维课程报名二维码及交流群(QQ群)   三、成长与收获1.掌握实用技能,提高自身职业技能,增强就业竞争力,优化职业发展路径;2.培训考勤达标且考核通过将获得《深圳市职业技能提升培训合格证书》;3.可自行选考行业权威认证:HCIA-AI认证、HCIA-openGauss认证、HarmonyOS应用开发者认证、开放原子OpenHarmony人才认证、KYCA、KYCP认证(不含考证费)。四、班级设置l  7月29日-9月30日  开设日常精品班(周一到周六)开设周末精品班(周六或周日单日班)l  7月29日-10月20日开设周末精品班(周六或周日单日班)五、咨询与联络黄老师:13528095312(微信同号)周老师:0755-26019607咨询时间:工作日9:00- 18:00其他时间咨询联系QQ群工作人员六、培训地点深圳职业技术大学西丽湖园区(信息楼)建议绿色出行:深圳地铁5号线西丽地铁站F口步行800米。公交车站-深圳职业技术大学(西丽湖园区),线路包括M197、M182、M176、M492、高峰专线59、325、M535、M217、67、326等。 别再犹豫,抓住这个难得的机会,让自己在公益性培训中实现华丽转身!立即报名,开启你的成长之旅!
  • [技术干货] 华为开发者空间-GaussDB免费领取与实践
     📰 GaussDB简介GaussDB是华为自主创新研发的分布式关系型数据库。该产品支持分布式事务,同城跨AZ部署,数据0丢失,支持1000+的扩展能力,PB级海量存储。同时拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。高安全GaussDB拥有TOP级的商业数据库安全特性,能够满足政企和金融级客户的核心安全诉求。安全特性包括:数据动态脱敏,行级访问控制,密态计算。健全的工具与服务化能力GaussDB已经拥有华为云,商用服务化部署能力,同时支持DAS、DRS等生态工具。有效保障用户开发、运维、优化、监控、迁移等日常工作需要。全栈自研GaussDB基于鲲鹏生态,是当前国内唯一能够做到全栈自主可控的国产品牌。同时GaussDB能够基于硬件优势在底层不断进行优化,提升产品综合性能。开源生态GaussDB已经支持开源社区。🚀 领取免费版/购买付费版介绍和指引01 领取免费版GaussDB免费报名领取GaussDB在线试用版(2025年06月 21日 - 2025年 12月 31日),有1000个名额,数量有限。领取与使用方法见如下案例内容:华为开发者空间-GaussDB云数据库领取与使用指导02 购买付费版GaussDB购买GaussDB数据库实例可参考购买付费版GaussDB✍️ GaussDB数据库实操📚 01 GaussDB之基本SQL语法实践SQL是用于访问和处理数据库的标准计算机语言,SQL语言由用于处理数据库和数据库对象的命令和函数组成,GaussDB默认支持SQL:2016的大部分特性。GaussDB提供界面化工具DAS连接数据实例,执行SQL语句完成数据库用户、数据库、数据表以及记录的增删改查等SQL操作实践:基于开发者空间GaussDB数据库完成SQL基本语法实践 📚 02 基于GaussDB数据库PL/pgSQL的实践PLPGSQL是一种过程化SQL语言(Procedural Language/Postgres SQL),PL/pgSQL是PostgreSQL数据库对SQL扩展的高阶SQL。在普通SQL语句的使用上增加了编译语言的特点,所以PL/pgSQL就是把数据操作和查询语句组织在PL/pgSQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。通过实际操作,让大家深入了解如何利用 PL/pgSQL 开发并部署一个函数功能模块。在这个过程中,大家将学习到从函数创建、数据批量读取到SQL程序编写以及与触发器集成等一系列关键步骤,从而掌握 PL/pgSQL 的基本使用方法,体验其在应用开发中的优势。实践:GaussDB数据库之PL/pgSQL实践一本案例详细介绍了PL/pgSQL的变量,条件控制,循环控制,ERROR抓取,NULL语句,匿名块与存储过程等知识在GaussDB中的应用。实践:GaussDB数据库之PL/pgSQL实践二本实例详细介绍了PL/pgSQL的游标,自定义函数,触发器,信息打印,常用SQL在GaussDB中的实践。 📚 03 通过三方驱动连接GaussDB数据库完成数据开发(需要购买EIP)GaussDB支持通过JDBC、ODBC、libpq、Psycopg、Go、ecpg等接口来连接数据库并进行操作。Psycopg是一种用于执行SQL语句的PythonAPI,可以为GaussDB数据库提供统一访问接口,应用程序可基于它进行数据操作。Psycopg3是对libpq的封装,主要使用C语言实现,既高效又安全。它具有客户端游标和服务器端游标、异步通信和通知、支持“COPY TO/COPY FROM”功能。支持多种类型Python开箱即用,适配GaussDB数据类型。实践:在开发者空间使用gaussdb-python连接GaussDBODBC(Open Database Connectivity,开放数据库互连)是由Microsoft公司基于X/OPEN CLI提出的以C/C++语言来访问数据库的应用程序编程接口。它提供了一种统一的方法,让应用程序可以访问各种数据库管理系统(DBMS),而不用考虑具体的数据库类型或者操作系统平台。ODBC允许应用程序使用SQL来查询、插入、更新和删除数据库中的数据。应用程序通过ODBC提供的API与数据库进行交互,增强了应用程序的可移植性、扩展性和可维护性。实践:基于开发者空间编写ODBC应用程序操作GaussDB数据库 📚 04 基于GaussDB数据库实现业务场景的实践(需要购买EIP)GaussDB广泛用于金融、政府、电商等领域,能够支持各领域高并发、高可用等业务场景。Django是一个高级的Python Web应用框架,可以快速开发安全和可维护的网站。由经验丰富的开发者构建,Django负责处理网站开发中麻烦的部分,可以专注于编写应用程序,而无需重新开发。GaussDB数据库支持对接Django框架,作为Django WEB项目的数据库存取数据。实践:在华为开发者空间云开发环境部署Django与GaussDB对接的实践应用 📚 05 GaussDB之分区表和AI特性实践分区表在数据库中使用广泛,尤其在数据库大表中对数据拆分,分表等领域,利用分区把表数据划分多个不同数据文件,利用表空间可把不同分区的表数据分布在不同磁盘,可以充分利用磁盘I/O和数据文件并行读取,以分区方式优化索引起到查询性能提升(因为不同分区会使优化器对执行计划剪枝)。GaussDB开发并优化项目中业务应用的SQL语句等功能。在这个过程中,大家将学习到从AI函数的引用、AI功能的原理以及分析AI能力等一系列关键步骤,从而掌握 GaussDB-AI的基本使用方法,体验其在应用开发中的优势。实践:GaussDB之分区表的优化与应用本案例详细讲述了大数据量的表在查询时,针对查询条件和数据特征,给大表数据做物理上的分区存储,基于不同表空间,利用多磁盘IO并行读写数据,优化并提升性能。实践:GaussDB-AI特性之索引智能推荐本案例详细讲述了AI特性里的索引智能推荐功能,根据GaussDB提供的gs_index_advise()接口,根据实际的SQL执行计划,智能推荐出更好的索引并大大优化SQL性能。
  • [技术解读] GaussDB购买实例
    购买实例登录管理控制台。单击管理控制台左上角的,选择区域和项目。在页面左上角单击,选择“数据库 > 云数据库 GaussDB”,进入云数据库 GaussDB信息页面。在“实例管理”页面,单击“购买数据库实例”。在创建实例页面,选择计费模式、填写实例名称、选择产品类型、数据库引擎版本、实例类型、部署形态等实例基本信息。计费模式:按需计费区域、项目:选择默认配置实例名称:自定义,命名为便于识别的名称产品类型:企业版数据库引擎版本:8.103实例类型:主备版部署形态:1主2备可用区:可用区一时区:选择默认配置选择实例规格。性能规格:独享型(1:4)、4 vCPUs | 16 GB存储类型:超高IO存储空间:40GB磁盘加密:不加密配置网络信息,选择默认配置即可。配置实例密码、企业项目信息。管理员密码:自定义,设置高强度密码,以提高安全性确认密码:和管理员密码相同企业项目:default其他参数使用默认配置单击“立即购买”,核对实例信息,单击“提交”。返回实例列表。当实例运行状态为“正常”时,表示实例创建完成。
  • [技术解读] 通过DBeaver连接GaussDB实例
    DBeaver是一个通用的数据库客户端,可以通过配置不同驱动连接各种不同的数据库。本章介绍如何通过DBeaver连接GaussDB实例。步骤一:获取驱动包获取驱动包和驱动包校验包。根据不同版本的实例,下载对应版本的驱动包和驱动包校验包到本地任意目录校验驱动包。为了防止驱动包在传递过程或存储期间被恶意篡改,需要对驱动包进行校验,校验方法如下:使用快捷键“Win+R”打开“运行”窗口。 在“打开”栏,输入“cmd”,按“Enter”回车,打开命令行页面。执行以下命令,获取驱动包的Hash值。certutil -hashfile {驱动包本地目录}{驱动包名} sha256{驱动包本地目录}:请根据实际下载目录进行替换。例如:C:\Users{驱动包名}:请根据实际下载的驱动包名进行替换。例如:GaussDB_driver.zip示例:certutil -hashfile C:\Users\GaussDB_driver.zip sha256将2.b获取到的Hash值和1中获取到的驱动包校验包的Hash值进行比较。若一致则通过校验。若不一致,请重新下载驱动包,重复2.a~2.c进行校验。解压驱动包,获取gsjdbc4.jar包。将1中获取到的驱动包解压到本地, 根据您需要连接的实例类型,进入驱动包对应类型目录下的任意一个操作系统目录,找到GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Jdbc.tar.gz包后进行解压,获取到gsjdbc4.jar包,放在本地任意目录下。例如:需要连接分布式版实例,您可以进入到GaussDB_driver\Distributed\Euler2.5_X86_64路径下,找到GaussDB-Kernel_503.1.0.SPC2300_Euler_64bit_Jdbc.tar.gz包进行解压,获取到gsjdbc4.jar包。说明:JDBC驱动包不区分操作系统和架构。因此,在获取gsjdbc4.jar包时,只需要关注实例类型即可。步骤二:获取DBeaver客户端安装包DBeaver官网提供了针对不同操作系统的客户端安装包,单击此处访问DBeaver官网下载系统对应的DBeaver客户端安装包并完成安装 。步骤三:创建新驱动打开DBeaver客户端。单击“数据库 > 驱动管理器”,打开驱动管理器界面。单击“新建”,打开创建新驱动界面。在“设置”页签中,正确输入驱动名称、类名、URL模板、默认端口、Default Database、Default User,选择驱动类型,单击“确定”创建驱动。在“库”页签中,单击添加文件,选择步骤一第3步中的gsjdbc4.jar。添加后驱动类为空,需要单击“找到类”,选择识别出来的驱动类。驱动类需要与“设置”页的“类名”一致。单击“确定”,驱动设置完成。步骤四:连接数据库在DBeaver客户端单击,打开创建连接界面。搜索步骤三中创建的驱动,选中驱动,单击“下一步”。点击放大输入主机IP地址,端口,数据库名,用户名和密码。单击“测试链接”。若弹框中显示“已连接”,则说明可正常连接,单击“确定”。单击“完成”,即可连接到数据库。在“数据库导航”栏可查看到连接的数据库信息。
  • [分享交流] 华为GaussDB(DWS)的优势有哪些
    华为GaussDB(DWS)的优势有哪些
  • [技术干货] 大数据干货合集(2025年7月)
    Psort 索引cid:link_1 索引的利与弊cid:link_2GaussDB(DWS)查询提速cid:link_3PCK(partial cluster key)cid:link_4VACUUM的作用cid:link_5行存VACUUM主要做的三件事cid:link_6VACUUM FULL执行流程cid:link_7GaussDB(DWS) IO框架解析cid:link_8IO 管理框架:读取cid:link_9行存插入操作到提交的流程cid:link_10WAL(Write-Ahead Logging)cid:link_11列存的IO管理框架cid:link_0IO 管理读取过程cid:link_12GaussDB(DWS) IoT数仓解析cid:link_13时序数据库应用场景https://bbs.huaweicloud.com/forum/thread-0201189181473510046-1-1.html
  • [技术干货] 时序数据库应用场景
    典型时序数据库主要服务两类业务场景,应用性能监控(Application Performance Management, APM)和物联网(Internet of Things, IoT)。 商业零售:电商系统订单交易金额,支付金额数据,尚品库存,物流数据; 金融交易:股票交易系统持续记录股票价格,交易量等; 社会生活:智能电表会实时记录每个小时的用电量数据等; 工业领域:工业机器数据例如风力发电机,获取实时转速、风速数据、发电量数据等; 系统监控:IT基础设施的负载和资源使用率,DevOps监控数据、移动/Web应用程序事件流等; 环境监测:自然环境(如温度、空气、水文、风力等)的监测,科学测量结果等; 城市管理:城市交通的监测(车辆、人流、道路等); 自动驾驶:自动驾驶汽车持续收集所处环境中的变化数据等。
  • [技术干货] GaussDB(DWS) IoT数仓解析
    万物互联的时代,最不缺少的就是海量数据,爆炸性增长的数据能给我们带来什么价值,我们如何通过这些海量数据看清事物的本质,甚至能够预测事物的发展趋势,这些是我们面对的挑战和需要解决的问题。时序数据库是这个时代的产物,也不断驱动着这个世界向万物互联不断迈进。 随着5G技术的不断成熟,物联网技术得到了快速发展,万物互联的场景在我们身边也越来越触手可及。我们身边的电子设备变得越来越多,手机、电脑、智能手表、全屋智能、自动驾驶汽车等等,承载的信息量成倍增加,数以亿计的信息昼夜不停地描绘着这个世界。 物联网时代,每个物体每时每刻都在产生各种维度的数据信息,这些信息尽可能全面的刻画我们所生活的世界,这些采集到的数据信息,帮助我们更好的生活,不断改变我们的生活方式。例如当下非常火热的自动驾驶,需要在汽车上配备各种传感器,用以实时采集运行时汽车的各项监控数据,采集的维度包括:坐标、速度、方向、温度、功率等等。每辆汽车上的传感器每天采集数据的数量级可能达到TB级。 这些采集到的数据和时间强相关,采样时间间隔固定,描述了物体在历史时刻中测量数据的变化,我们将这种类型的数据统称为时间序列(Time Series)数据。我们将这些时序数据存储起来,这些海量数据不仅帮助我们了解物体的实时状态,通过多个维度的分析,更能够帮助数据使用者更好的指定策略,分析目标对象的趋势和规律等,甚至能够帮助我们预测不确定的未来。 我们将时序数据列做了以下三种分类: 1) Tag列:通常将表征数据源来源或者属性信息的列作为Tag列,该列的数值通常相对稳定,不随时间变化而变化; 2) Field列:一般将采样的维度作为数据列,因为该列的数据一般随时间变化而变化,存储各个指标的value; 3) Time列:表示采样时刻的时间戳。 
  • [技术干货] IO 管理读取过程
    读取过程: 根据where条件,做MIN/MAX过滤的谓词条件; 加载CUDesc; MIN/MAX过滤; 读取CU到CU Cache中; 解析并填充。 2) CacheMgr: 用来缓存CU到内存中,可以提高重复查询的性能。 3) CU的物理文件: CStore_1.0: 当前基本不怎么实用; CStore_2.0: 重整了CU的文件结构,避免列数过多导致文件结构复杂。列存的插入要分两种情况,少量的插入和大量的插入,列存主要是对大批量数据设计的,因此为了弥补小量插入的打包CU性能开销,设计了一个delta行存表,用来记录插入结果,可以减少膨胀和提升性能,最后定期的整理。列存的删除比较简单,如果是delta表,先从delta表中删除满足谓词条件的记录,然后在CUDesc表中更新待删除CU的delete_bitmap。行存列存的设计结构,以行存和列存为例对GaussDB(DWS)的IO方面的主要机制做了梳理。分别对行存和列存和IO的读写做了解释。行存和列存由于组织方式不同,适合不同的场景,GaussDB(DWS)现在也有HStore。解决了 CU上并发更新的锁冲突问题。
总条数:1530 到第
上滑加载中