当前位置: 首页 > article >正文

Mysql 创建用户并授权

文章目录

  • Mysql 创建用户并授权
      • 1. 创建用户
      • 2. 授权用户权限
        • 授予所有权限
        • 授予特定权限
        • 常用权限
      • 3. 刷新权限
      • 4. 查看用户权限
      • 5. 删除用户
      • 总结:

Mysql 创建用户并授权

1. 创建用户

首先登录到 MySQL 数据库:

mysql -u root -p

然后创建一个新用户。假设你想创建一个名为 newuser,密码为 password 的用户:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

这里,'localhost' 表示该用户只能从本地连接到数据库。如果你希望该用户能够从任何 IP 地址连接,可以使用 '%' 代替 'localhost',或者指定IP:

CREATE USER 'newuser'@'177.77.77.7' IDENTIFIED BY 'password';

2. 授权用户权限

创建用户后,你可以授权该用户访问特定的数据库和执行相应的操作。

授予所有权限

如果你想授予 newuser 所有权限(例如对数据库 testdb 的所有权限),你可以执行以下命令:

GRANT ALL PRIVILEGES ON testdb.* TO 'newuser'@'localhost';
  • testdb.* 表示授予对数据库 testdb 中所有表的权限。
  • 'newuser'@'localhost' 指定了用户名和主机,意味着该用户只能从本地主机连接。

如果你想让用户从任何主机连接,可以使用 %或者指定ip:

GRANT ALL PRIVILEGES ON testdb.* TO 'newuser'@'%';
授予特定权限

你还可以只授予特定的权限,例如:

  • SELECT 权限:只允许查询数据
  • INSERT 权限:只允许插入数据
  • UPDATE 权限:只允许更新数据
  • DELETE 权限:只允许删除数据

例如,只授予 newusertestdb 数据库上的查询和插入权限:

GRANT SELECT, INSERT ON testdb.* TO 'newuser'@'localhost';
常用权限
  1. 全局权限 (Global Privileges)

这些权限适用于 MySQL 服务器的所有数据库。

  • ALL PRIVILEGES:授予所有权限,相当于所有其他权限的集合。
  • CREATE:允许创建新数据库。
  • DROP:允许删除数据库。
  • DELETE:允许删除数据库中的记录。
  • PROCESS:允许查看其他用户的活动和进程。
  • SHOW DATABASES:允许查看服务器上所有数据库。
  • SUPER:允许执行一些高级操作,如终止查询、设置全局系统变量等。
  • RELOAD:允许重新加载授权表,刷新日志文件等。
  • SHUTDOWN:允许关闭 MySQL 服务。
  • FILE:允许读取和写入文件,通常用于导入/导出数据。
  • SHOW VIEW:允许查看视图定义。
  1. 数据库级权限 (Database Privileges)

这些权限适用于单个数据库中的所有表、视图、存储过程等。

  • CREATE:允许在该数据库中创建表、视图等。
  • ALTER:允许修改数据库中的表结构。
  • DROP:允许删除数据库中的表或视图。
  • INDEX:允许创建和删除索引。
  • CREATE TEMPORARY TABLES:允许创建临时表。
  • LOCK TABLES:允许锁定表(用于多线程操作时确保数据一致性)。
  1. 表级权限 (Table Privileges)

这些权限适用于数据库中的单个表。

  • SELECT:允许读取表中的数据。
  • INSERT:允许向表中插入数据。
  • UPDATE:允许更新表中的数据。
  • DELETE:允许删除表中的数据。
  • CREATE:允许在该表上创建触发器和视图。
  • DROP:允许删除表。
  • ALTER:允许修改表的结构。
  • INDEX:允许在表上创建或删除索引。
  • CREATE VIEW:允许在该表上创建视图。
  • SHOW VIEW:允许查看视图的结构。
  1. 列级权限 (Column Privileges)

这些权限适用于表中的单个列。

  • SELECT:允许读取该列的数据。
  • INSERT:允许插入数据到该列。
  • UPDATE:允许更新该列的数据。

3. 刷新权限

授权完成后,执行以下命令以使权限立即生效:

FLUSH PRIVILEGES;

4. 查看用户权限

如果你想查看某个用户的权限,可以使用以下命令:

SHOW GRANTS FOR 'newuser'@'localhost';

5. 删除用户

如果你要删除用户,可以使用以下命令:

DROP USER 'newuser'@'localhost';

总结:

  • 使用 CREATE USER 创建新用户。
  • 使用 GRANT 授予权限。
  • 使用 FLUSH PRIVILEGES 刷新权限。
  • 使用 SHOW GRANTS 查看用户权限。
  • 使用 DROP USER 删除用户。

http://www.kler.cn/a/392911.html

相关文章:

  • Web安全攻防入门教程——hvv行动详解
  • 线性代数行列式
  • 自学记录HarmonyOS Next的HMS AI API 13:语音合成与语音识别
  • 简单讲解关于微信小程序调整 miniprogram 后, tabbar 找不到图片的原因之一
  • 【Python】 -- python3 读取 aws athena 表数据
  • 安全合规遇 AI 强援:深度驱动行业发展新引擎 | 倍孜网络CEO聂子尧出席ICT深度观察报告会!
  • Flink 开发工程应加载哪些依赖
  • JavaScript逆向爬虫教程-------基础篇之JavaScript密码学以及CryptoJS各种常用算法的实现
  • 英语中从句和复合句简单介绍
  • 老旧城区供水管网改造优先等级分析
  • stm32学习之路——八种GPIO口工作模式
  • el-form el-table 前端排序+校验+行编辑
  • LLMs之VDB:Elasticsearch的简介、安装和使用方法、案例应用之详细攻略
  • 服务器显卡和桌面pc显卡有什么不同
  • C++builder中的人工智能(17):神经网络中的自我规则非单调(Mish)激活函数
  • sklearn.datasets中make_classification函数
  • 3216. 交换后字典序最小的字符串
  • 单词反转和数组去重,附经典面试题一份
  • C/C++内存管理 | new的机制 | 重载自己的operator new
  • Mysql:使用binlog的一些常用技巧
  • TreeSet是什么
  • 分享一些Kafka集群优化的最佳实践?
  • DeepSpeed:PyTorch优化库,使模型分布式训练能高效使用内存和更快速
  • flink+kafka 如何保证精准一次
  • Java 中的字符输入流详解
  • IOS开发之AR问题汇总