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

【2024】MySQL账户管理

当前MySQL版本为:

mysql> select version();
+-----------+
| version() |
+-----------+
| 8.4.2     |
+-----------+
1 row in set (0.01 sec)

目录

  • 创建普通用户
  • 为用户授权
  • 查看用户权限
  • 修改用户权限
  • 修改用户密码
  • 删除用户

创建普通用户

使用CREATE USER语句创建用户

mysql> CREATE USER 'user01'@'localhost' IDENTIFIED BY '1qaz@WSX';
Query OK, 0 rows affected (1.01 sec)

此sql是创建一个user01的本地用户,密码为1qaz@WSX。

注意确保安全性,密码最好采用8位以上包含大写字母、小写字母、数字和特殊字符。

限制用户连接来源,如本例中的localhost,只允许本地登录;或指定某个某些个IP可登录。

除此之外创建用户时还可以使用加密连接和设置密码过期时间:

  • REQUIRE SSL:指定用户必须使用SSL连接
  • PASSWORD EXPIRE INTERVAL 90 DAY:设置密码过期时间为90天
ALTER USER 'user02'@'192.168.10.%' PASSWORD EXPIRE INTERVAL 90 DAY;

为用户授权

MySQL支持在创建用户后为用户赋予相应的权限,比如对数据库的查询、修改等权限。

在MySQL中使用GRANT语句为用户授权。

使用GRANT语句也可以创建用户,但是不建议,建议使用CREATE USER语句创建用户

常见权限主要分为以下:

  • 数据库级别权限:
CREATE:创建数据库
ALTER:修改数据库
DROP:删除数据库
SELECT:读取数据库中表数据
INSERT:向数据库中表插入数据
UPDATE:更新数据库中表数据
DELETE:删除数据库中表数据
  • 表级别权限
CREATE TABLE:创建表
ALTER TABLE:修改表
DROP TABLE:删除表
  • 其他
ALL PRIVILEGES:所有权限

示例:

  • 授予用户user03对database01库的所有权限
GRANT ALL PRIVILEGES ON database01.* TO 'user03'@'host';
  • 授予用户对特定数据库的只读权限
GRANT SELECT ON database_name.* TO 'username'@'host';
  • 授予用户对特定表的插入和更新权限
GRANT INSERT, UPDATE ON database_name.table_name TO 'username'@'host';

查看用户权限

在 MySQL 中,用户信息存储在mysql.user表中。可以通过查询该表来获取有哪些用户

mysql>    SELECT user, host FROM mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
| user01           | localhost |
+------------------+-----------+
5 rows in set (0.01 sec)

使用SHOW GRANTS语句来查看特定用户的权限。

mysql> SHOW GRANTS FOR 'user01'@'localhost';
+--------------------------------------------+
| Grants for user01@localhost                |
+--------------------------------------------+
| GRANT USAGE ON *.* TO `user01`@`localhost` |
+--------------------------------------------+
1 row in set (0.01 sec)

由于未给user01用户授权,所以看不到权限。

修改用户权限

在 MySQL 中可以使用 GRANTREVOKE语句来修改原有用户的权限。

使用GRANT语句添加权限:

给用户 user1 在数据库 mydb 上添加 INSERT 和 UPDATE 权限

GRANT INSERT, UPDATE ON mydb.* TO 'user1'@'localhost';

使用REVOKE语句撤销权限:

撤销用户 user1 在数据库 mydb 上的 DELETE 权限

REVOKE DELETE ON mydb.* FROM 'user1'@'localhost';

注意:做这些动作时,确保你有足够的权限来操作。

修改用户密码

在 MySQL 中可以使用ALTER USER方法来修改用户密码(进入MySQL中)

使用ALTER USER语句将user01密码改为12#¥qwER

mysql> ALTER USER 'user01'@'localhost' IDENTIFIED BY '12#$qwER';
Query OK, 0 rows affected (1.02 sec)

删除用户

在 MySQL 中可以使用DROP USER语句来删除用户。

DROP USER 'username'@'host';

删除前要确保其用户是真的用不到的。

http://www.lryc.cn/news/442834.html

相关文章:

  • 轻量级流密码算法Trivium
  • MapReduce基本原理
  • 数据结构之栈(python)
  • 浅谈人工智能之基于HTTP方式调用本地QWen OPenAI接口(Java版)
  • 【python设计模式7】行为型模式2
  • 基于PHP的CRM管理系统源码/客户关系管理CRM系统源码/php源码/附安装教程
  • 【乐企】基础版接口代码实现
  • 题目--力扣----各位相加
  • git 如何基于某个分支rebase?
  • 倒序循环(一)
  • Shell篇之编写apache启动脚本
  • 头条|司法部公法局局长访谈:推进高水平公立鉴定机构建设!加快推进司法鉴定立法!
  • 高密原型验证系统解决方案(上篇)
  • 新产品,推出 MLX90372GVS 第三代 Triaxis® 位置传感器 IC,适用于汽车和工业系统(MLX90372GVS-ACE-308)
  • JAVA毕业设计178—基于Java+Springboot+vue的智能家具管理系统(源代码+数据库+万字论文)
  • 掌握 Python 异步上下文管理器
  • 当你问AI“有点烦”
  • 音视频入门基础:AAC专题(3)——AAC的ADTS格式简介
  • 高可用web集群面经:集群搭建、nginx+keepalived高可用、prometheus+zabbix监控、nfs+dns
  • vue3+ts+supermap iclient3d for cesium功能集合
  • 【案例71】配置https之后 IE打不开登陆页面 Uclient没有问题
  • ROS 设置dhcp option 6 多个地址格式
  • Python 二级考试
  • Linux笔记---简单指令
  • 软考无损连接判断
  • 微服务-- Sentinel的使用
  • TS React 项目中使用TypeScript
  • 【JavaEE】IP协议 应用层协议
  • CRM如何助力科技服务机构突破业务瓶颈?
  • 牛啊,GitHub 代理加速图文教程