网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
云化数据中心 CloudDC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
本文导读

展开导读

用户与权限

更新时间:2024-12-04 GMT+08:00
分享

概述

在M-Compatibility中,用户与权限管控相关的行为、语法整体沿用GaussDB的机制,暂不同步MySQL。

用户与权限的行为与GaussDB保持一致,具体行为说明请参见《开发指南》中的“数据库安全 > 用户及权限”章节。

用户与权限的语法在原有GaussDB的基础上,裁剪了部分语法,具体语法说明请参见《M-Compatibility开发指南》中的“ SQL参考 > SQL语法 > SQL语句”章节。M-Compatibility与GaussDB的语法差异请参见表1

表1 M-Compatibility与GaussDB的语法差异

语法说明

概述

M-Compatibility与GaussDB的差异

CREATE ROLE

创建一个角色。

在M-Compatibility中,不支持指定涉及以下关键字的选项:ENCRYPTED、UNENCRYPTED、RESOURCE POOL、PERM SPACE、TEMP SPACE、SPILL SPACE。

在M-Compatibility中,创建USER时会自动创建与USER同名的Schema,MySQL不创建。

CREATE USER

创建一个用户。

CREATE GROUP

创建一个新用户组。CREATE GROUP是CREATE ROLE的别名,不推荐使用。

ALTER ROLE

修改角色属性。

ALTER UER

修改用户属性。

ALTER GROUP

修改一个用户组的属性。

-

DROP ROLE

删除角色。

-

DROP USER

删除用户。

-

DROP GROUP

删除用户组。

-

DROP OWNED

删除一个数据库角色所拥有的数据库对象。

-

REASSIGN OWNED

修改数据库对象的属主。

M-Compatibility中不支持该语法。

GRANT

对角色和用户进行授权操作。

M-Compatibility中不支持授予或回收函数、存储过程、表空间、DATABASE LINK等对象的权限。

REVOKE

用于撤销一个或多个角色的权限。

ALTER DEFAULT PRIVILEGES

设置应用于将来创建的对象的权限(这不会影响分配到已有对象中的权限)。

M-Compatibility中不支持该语法。

差异说明

  • 语法格式差异

    M-Compatibility的授权语法请参见《M-Compatibility开发指南》中的“ SQL参考 > SQL语法 > SQL语句 > G > GRANT”章节,MySQL中的授权语法如下:

    -- 全局级、数据库级、表级、存储过程级赋权语法
    GRANT
         priv_type [(column_list)]
           [, priv_type [(column_list)]] ...
         ON [object_type] priv_level
         TO user [auth_option] [, user [auth_option]] ...
         [REQUIRE {NONE | tls_option [[AND] tls_option] ...}]
         [WITH {GRANT OPTION | resource_option} ...]
     
    -- 用户代理赋权语法
    GRANT PROXY ON user
         TO user [, user] ...
         [WITH GRANT OPTION]
     
    object_type: {
         TABLE
      | FUNCTION
      | PROCEDURE
    }
     
    priv_level: {
         *
      | *.*
      | db_name.*
      | db_name.tbl_name
      | tbl_name
      | db_name.routine_name
    }
     
    user:
         'user_name'@'host_name'
     
    auth_option: {
         IDENTIFIED BY 'auth_string'
      | IDENTIFIED WITH auth_plugin
      | IDENTIFIED WITH auth_plugin BY 'auth_string'
      | IDENTIFIED WITH auth_plugin AS 'auth_string'
      | IDENTIFIED BY PASSWORD 'auth_string'
    }
     
    tls_option: {
         SSL
      | X509
      | CIPHER 'cipher'
      | ISSUER 'issuer'
      | SUBJECT 'subject'
    }
     
    resource_option: {
      | MAX_QUERIES_PER_HOUR count
      | MAX_UPDATES_PER_HOUR count
      | MAX_CONNECTIONS_PER_HOUR count
      | MAX_USER_CONNECTIONS count
    }
  • 赋权类型差异
    MySQL支持的赋权类型如下:
    表2 MySQL支持的赋权类型

    权限类型

    释义及权限级别

    ALL [PRIVILEGES]

    授予指定访问级别的所有权限,除了 GRANT OPTIONPROXY

    ALTER

    启用ALTER TABLE。级别:全局、数据库、表。

    ALTER ROUTINE

    允许更改或删除存储过程。级别:全局、数据库、例程。

    CREATE

    启用数据库和表创建。级别:全局、数据库、表。

    CREATE ROUTINE

    启用存储过程创建。级别:全局、数据库。

    CREATE TABLESPACE

    允许创建、更改或删除表空间和日志文件组。级别:全局。

    CREATE TEMPORARY TABLES

    启用CREATE TEMPORARY TABLE。 级别:全局、数据库。

    CREATE USER

    启用CREATE USERDROP USERRENAME USERREVOKE ALL PRIVILEGES。级别:全局。

    CREATE VIEW

    允许创建或更改视图。级别:全局、数据库、表。

    DELETE

    启用DELETE. 级别:全局、数据库、表。

    DROP

    允许删除数据库、表和视图。级别:全局、数据库、表。

    EVENT

    启用定时任务。级别:全局、数据库。

    EXECUTE

    使用户能够执行存储过程。级别:全局、数据库、存储过程。

    FILE

    使用户能够使服务器读取或写入文件。级别:全局。

    GRANT OPTION

    允许向其他账户授予权限或从其他账户删除权限。级别:全局、数据库、表、存储过程、代理。

    INDEX

    允许创建或删除索引。级别:全局、数据库、表。

    INSERT

    启用INSERT。级别:全局、数据库、表、列。

    LOCK TABLES

    在具有SELECT权限的表上启用LOCK TABLES 。级别:全局、数据库。

    PROCESS

    使用户能够通过SHOW PROCESSLIST查看所有正在运行的线程. 级别:全局。

    PROXY

    启用用户代理。级别:从用户到用户。

    REFERENCES

    启用外键创建。级别:全局、数据库、表、列。

    RELOAD

    启用FLUSH操作的使用。级别:全局。

    REPLICATION CLIENT

    使用户能够查询源服务器或副本服务器的位置。级别:全局。

    REPLICATION SLAVE

    允许副本从源读取二进制日志。级别:全局。

    SELECT

    启用使用SELECT。级别:全局、数据库、表、列。

    SHOW DATABASES

    启用SHOW DATABASES以显示所有数据库。级别:全局。

    SHOW VIEW

    启用SHOW CREATE VIEW。级别:全局、数据库、表。

    SHUTDOWN

    启用mysqladmin shutdown的使用。级别:全局。

    SUPER

    启用其他管理操作,例如 CHANGE MASTER TOKILLPURGE BINARY LOGSSET GLOBALmysqladmin debug命令。级别:全局。

    TRIGGER

    启用触发器操作。级别:全局、数据库、表。

    UPDATE

    启用UPDATE。 级别:全局、数据库、表、列。

    USAGE

    等价于“没有特权”。

    M-Compatibility以级别划分支持以下权限:

    表3 M-Compatibility支持的赋权类型

    授权对象

    支持授予的权限

    模式

    CREATE、USAGE、ALTER、DROP、COMMENT

    表、视图

    SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、TRIGGER、ALTER、DROP、COMMENT、INDEX、VACUUM

    SELECT、INSERT、UPDATE、REFERENCES、COMMENT

    序列

    SELECT、USAGE、UPDATE、ALTER、DROP、COMMENT

  • MySQL中通过'dbname.*'表示模式层级的授权对象;在M-Compatibility中,使用'{DATABASE | SCHEMA} dbname'表示模式层级的授权对象。
  • MySQL中用户名为两部分:用户名@主机名;M-Compatibility当前仅支持用户名。
  • MySQL支持在GRANT赋权语法中修改用户验证,安全连接,资源参数属性,即auth_option、tls_option和resource option;M-Compatibility赋权语法中不支持以上特性,需使用CREATE USER、ALTER USER设置用户相关属性。
  • MySQL支持用户代理赋权,GRANT PROXY ON主要用于对多个用户进行统一的权限管理。MySQL 5.7未提供角色机制,而在MySQL 8.0和M-Compatibility中都提供了角色机制。角色能满足用户对于多个用户权限统一管控的目标,可以替代GRANT PROXY ON。
  • M-Compatibility拥有public的概念,所用用户都拥有public的权限,部分系统表、系统视图可供所有用户查询。用户可以对public所拥有的权限进行grant和revoke;MySQL中,新创建的用户只拥有全局的usage权限,这个权限很小,几乎为0,只有连接数据库和查询information_schema 数据库的权限。
  • M-Compatibility中,对象的所有者缺省具有该对象上的所有权限,出于安全考虑所有者可以舍弃部分权限,但ALTER、DROP、COMMENT、INDEX、VACUUM以及对象的可再授予权限属于所有者固有的权限,隐式拥有;MySQL中,没有owner的概念,即使用户创建了表,如果没赋予用户对应权限,那么用户也不能对其创建的表进行IUD等操作。
  • 在MySQL中,USAGE实际上表示无权限,所用用户都拥有该权限,当执行revoke或grant usage时,实际上不会进行任何修改;在M-Compatibility中,USAGE权限如下:
    • 对于模式,USAGE允许访问包含在指定模式中的对象,若没有该权限,则只能看到这些对象的名称。
    • 对于序列,USAGE允许使用nextval函数。
  • 在M-Compatibility中,支持给用户设置管理员角色,包括系统管理员(SYSADMIN)、安全管理员(CREATEROLE)、审计管理员(AUDITADMIN)、监控管理员(MONADMIN)、运维管理员(OPRADMIN)、安全策略管理员(POLADMIN)。默认情况下拥有SYSADMIN属性的系统管理员,具备系统最高权限。三权分立后,系统管理员将不再具有CREATEROLE属性(安全管理员)和AUDITADMIN属性(审计管理员)能力,即不再拥有创建角色和用户的权限,也不再拥有查看和维护数据库审计日志的权限;在MySQL中,不支持该用户设置管理员角色,也没有三权分立相关设计。
  • 在M-Compatibility中,可以给用户赋予ANY权限,表示用户能够在非系统模式下拥有对应的权限,包括CREATE ANY TABLE、SELECT ANY TABLE、CREATE ANY INDEX等;在MySQL中,不支持ANY权限的赋予。
  • MySQL中提供SHOW GRANTS查询用户权限;M-Compatibility中,可以通过gsql客户端元命令'\l+'、'\dn+' 、'\dp'查询权限信息,也可以通过查询pg_namespace、pg_class、pg_attribute等系统表的权限相关字段查询权限信息。
  • MySQL中数据库、表、列被删除时,相关的授权信息在系统表中依然保留,如果重新创建同名对象用户依然拥有权限;M-Compatibility中当数据库、表、列被删除时,相关的授权信息会被删除,在重新创建同名对象后需要重新授权。
  • MySQL在授予数据库层级的权限时,支持‘_’和‘%’对数据库名进行模糊匹配;M-Compatibility不支持对象名模糊匹配,‘_’或‘%’等特殊字符被识别为普通字符。
  • MySQL中,GRANT语句中指定用户不存在时默认会创建该账户(此特性已在MySQL 8.0中移除);M-Compatibility不支持给未创建用户赋权。
提示

您即将访问非华为云网站,请注意账号财产安全

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容