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

MySQL 用户管理与权限控制

前言

如果我们智能使用root用户进行操作的话,相当于我们进行访问root 权限下的OS,之前我们了解过一切皆文件的思想,使用mysql其实也就是在系统中进行对数据库文件或者表文件进行管理,当所有人都具有权限时这是很危险的,容易出现误删文件等安全隐患。此时我们就需要进行使用MySQL进行用户管理。

进行查看用户信息

查看用户的基本信息(用户名,这个用户对应的从哪个主机登陆,如果是localhost,表示只能从本机登陆,用户密码通过password函数加密后的密码)

select user,host,authentication_string from mysql.user;
  • user: 用户名
  • host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆
  • authentication_string: 用户密码通过password函数加密后的

  • mysql.infoschema:这是 MySQL 系统数据库用户,用于 MySQL 的信息架构。

  • mysql.session:这是 MySQL 用于会话信息的系统用户。

  • mysql.sys:这是 MySQL 系统数据库的内部用户,主要用于 MySQL 8.0+ 的系统管理。

创建用户

create user '用户名'@'登陆主机/ip' identified by '密码'; 

进行创建用户之后,需要进行刷新一下,因为进行创建用户的信息是在内存中的,需要将内存中的信息进行刷新的磁盘中

flush privileges;

进行创建出来的用户能不能通过远端进行登录呢?

答案是不可以的,因为刚刚进行创建出来的用户是没有权限的,我们在进行创建的时候,需要将host 进行设置成 ' % '。

删除用户

drop user '用户名'@'主机名';

修改用户密码

更改密码的本质就是对密码表进行增删查改

  • mysql老版本进行修改自己的密码 (mysql 8.0之后废弃)

自己进行更改自己的密码 

​​​set password=password('新的密码');

root 用户进行修改指定用户的密码

set password for '用户名'@'主机名'=password('新的密码');
  •  mysql新版本进行修改自己的密码
alter user '用户名'@'主机地址' identified by 'new_password';

权限的管理

权限上下文说明
CREATECreate_priv数据库、表或索引的创建权限
DROPDrop_priv数据库、表或索引的删除权限
GRANT OPTIONGrant_priv授权其他用户此权限的权限
REFERENCESReferences_priv创建外键约束的权限
ALTERAlter_priv修改表的结构(如添加列、修改列)
DELETEDelete_priv删除表中的记录权限
INDEXIndex_priv创建和删除索引的权限
INSERTInsert_priv向表中插入记录的权限
SELECTSelect_priv查询数据的权限
UPDATEUpdate_priv修改表中的数据权限
CREATE VIEWCreate_view_priv创建视图的权限
SHOW VIEWShow_view_priv显示视图的权限
ALTER ROUTINEAlter_routine_priv修改存储过程、函数的权限
CREATE ROUTINECreate_routine_priv创建存储过程、函数的权限
EXECUTEExecute_priv执行存储过程、函数的权限
FILEFile_priv访问文件的权限(如 LOAD DATA INFILE)
CREATE TEMPORARY TABLESCreate_tmp_table_priv创建临时表的权限
LOCK TABLESLock_tables_priv锁定表的权限
CREATE USERCreate_user_priv创建用户的权限
PROCESSProcess_priv查看和管理后台进程的权限
RELOADReload_priv重新加载数据库的权限
REPLICATION CLIENTRepl_client_priv客户端复制权限(复制相关操作)
REPLICATION SLAVERepl_slave_priv复制从服务器权限
SHOW DATABASESShow_db_priv查看数据库列表的权限
SHUTDOWNShutdown_priv停止 MySQL 服务的权限
SUPERSuper_priv管理 MySQL 实例的超级权限

给用户授权

刚刚创建的用户没有任何权限,需要root用户给对应的用户进行授权。

grant 权限列表 on 库.对象名 to '用户名'@'登录位置(ip)' [identified by '密码']

回收权限

revoke 权限列表 on 库.对象名 from '用户名'@'登录位置(ip)';

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

相关文章:

  • Python 的内置函数 print
  • vue动态绑定样式
  • 利用tcp转发搭建私有云笔记
  • (第三篇)HMTL+CSS+JS-新手小白循序渐进案例入门
  • Spring Cloud 微服务(链路追踪与日志聚合)
  • Springboot开发常见注解一览
  • Rust 安装使用教程
  • 【数字后端】- 什么是AOI、OAI cell?它们后面数字的含义
  • 无代码自动化测试工具介绍
  • windows系统下将Docker Desktop安装到除了C盘的其它盘中
  • SpringSSM
  • SQLMesh中的SQL模型:从基础定义到高级应用
  • Python3完全新手小白的学习手册 10 文件和异常
  • C++ 完美转发(泛型模板函数)
  • Python训练营Day1
  • Spring生态在Java开发
  • AI:什么是Agent
  • [学习记录] HLSL-编译指示及属性
  • C#上位机串口接口
  • Android Studio使用HTTP代理下载依赖
  • 红黑树:高效平衡的秘密
  • linux中的种子下载方案ED2K BT
  • OpenGL空间站场景实现方案
  • 网络协议传输层UDP协议
  • SpringBoot+Docker+Graylog - 让错误自动报警
  • HCIA-实现VLAN间通信
  • 应用密码学纲要
  • vue中ref()和reactive()区别
  • 智能物流革命:Spring Boot+AI实现最优配送路径规划
  • AI之Tool:Glean的简介、安装和使用方法、案例应用之详细攻略