开发指南—权限管理—账号权限管理

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 本文介绍了账号权限管理的相关操作。 PolarDB-X账号和权限系统的用法与MySQL 5.7一致,支持GRANT、REVOKE、SHOW GRANTS、CREATE USER、DROP USER、SET PASSWORD等语句,目前支持库级和表级权限的授予,全局级别和列级别权限暂时不支持。

创建账号

语法:


CREATE USER [IF NOT EXISTS] user IDENTIFIED BY 'password';

其中,user通过用户名和主机名的组合'username'@'host'确定了一个账号,账号规则如下:

  • username为创建的用户名,用户名遵循以下规则;
    • 大小写敏感;
    • 长度必须大于等于4个字符,小于等于20个字符;
    • 必须以字母开头;
    • 字符可以包括大写字母、小写字母、数字。
  • host指定了创建用户可以在哪台主机上登录,用户名一样但是主机名不一样也代表不同的账号,需满足以下规则:
    • HOST必须是纯IP地址,可以包含_和%通配符(_代表一个字符,%代表0个或多个字符)。含有通配符的HOST需要加上单引号,例如lily@'0.9.%.%',david@'%';
    • 假设系统中有两个用户都符合当前准备登录的用户,则以最长前缀匹配(不包含通配符的最长IP段)的那个用户为准。例如系统有两个用户david@'30.9.12_.234'和david@'30.9.1%.234',在主机30.9.127.234上面登录david,则使用的是david@'30.9.12_.234'这个用户;
    • 开启VPC时,主机的IP地址会发生变化。为避免账号和权限系统中的配置无效,请将HOST配置为‘%’来匹配任意IP。
  • password为用户密码,需满足以下规则:
    • 长度必须大于等于6个字符,小于等于20个字符;
    • 字符可以包括大写字母、小写字母、数字、特殊字符(@#$%^&+=)。

示例:


mysql> CREATE USER 'user1'@'127.0.0.1' IDENTIFIED BY '123456';

mysql> CREATE USER IF NOT EXISTS 'user2'@'%' identified by '123456';

在PolarDB-X控制台创建完数据库之后,系统会自动在该数据库下创建两个系统账号:管理员账号和只读账号。这两个账号是系统内置的,不能删除,不能修改其权限,规则如下:

  • 管理员账号的名字跟数据库名一致,比如数据库名是easydb,管理员账号的名字就叫easydb;
  • 只读账号的名字是数据库名加上_RO后缀,比如数据库名是easydb,只读账号的名字就叫easydb_RO。

修改账号密码

语法:


SET PASSWORD FOR user = PASSWORD('auth_string')

示例:


mysql> SET PASSWORD FOR 'user1'@'127.0.0.1' = PASSWORD('654321');

删除账号

语法:


DROP USER user;

示例:


mysql> DROP USER 'user2'@'%';

授予账号权限

语法:


GRANT privileges ON database.table TO user;

其中,privileges为具体权限类型,数据库权限级别从高到低依次是:全局级别权限(暂不支持)、数据库级别权限、表级别权限、列级别权限。PolarDB-X目前支持和表相关联的8个基本权限项:CREATE、DROP、ALTER、INDEX、INSERT、DELETE、UPDATE、SELECT。

  • TRUNCATE操作需要有表上的DROP权限;
  • REPLACE操作需要有表上的INSERT和DELETE权限;
  • CREATE INDEX 和 DROP INDEX操作需要有表上的INDEX权限;
  • CREATE SEQUENCE需要有数据库级的创建表(CREATE)权限;
  • DROP SEQUENCE需要有数据库级的删除表(DROP)权限;
  • ALTER SEQUENCE需要有数据库级的更改表(ALTER)权限;
  • INSERT ON DUPLICATE UPDATE语句需要有表上的INSERT和UPDATE权限。

示例:


mysql> GRANT SELECT,UPDATE ON `db1`.* TO 'user1'@'127.0.0.1';

查看账号权限

语法:


SHOW GRANTS [FOR user];

可以使用current_user()来获取当前用户。

示例:


mysql> SHOW GRANTS FOR 'user1'@'127.0.0.1';
+------------------------------------------------------+
| GRANTS FOR 'USER1'@'127.0.0.1' |
+------------------------------------------------------+
| GRANT USAGE ON . TO 'user1'@'127.0.0.1' |
| GRANT SELECT, UPDATE ON db1.* TO 'user1'@'127.0.0.1' |
+------------------------------------------------------+
mysql> SHOW GRANTS FOR current_user();
+------------------------------------------------------+
| GRANTS FOR 'USER1'@'127.0.0.1' |
+------------------------------------------------------+
| GRANT USAGE ON . TO 'user1'@'127.0.0.1' |
| GRANT SELECT, UPDATE ON db1.* TO 'user1'@'127.0.0.1' |
+------------------------------------------------------+

回收账号权限

语法:


REVOKE privileges ON database.table TO user;

示例:


mysql> REVOKE UPDATE ON db1.* FROM 'user1'@'127.0.0.1';
mysql> SHOW GRANTS FOR 'user1'@'127.0.0.1';
+----------------------------------------------+
| GRANTS FOR 'USER1'@'127.0.0.1' |
+----------------------------------------------+
| GRANT USAGE ON . TO 'user1'@'127.0.0.1' |
| GRANT SELECT ON db1.* TO 'user1'@'127.0.0.1' |
+----------------------------------------------+
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
GIGE 协议摘录 —— 引导寄存器(四)(下)
GIGE 协议摘录 —— 引导寄存器(四)
210 1
|
Java
创建SpringBoot流程
创建SpringBoot流程
88 1
|
机器学习/深度学习
机器学习主要内容的思维导图
机器学习主要内容的思维导图
225 0
机器学习主要内容的思维导图
|
6天前
|
人工智能 运维 安全
|
4天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
522 14
|
11天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
891 109
|
5天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。