服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - MySQL超详细实现用户管理实例

MySQL超详细实现用户管理实例

2022-11-07 16:13一念去殇 Mysql

MySQL 是一个多用户数据库,具有功能强大的访问控制系统,可以为不同用户指定不同权限。在前面的章节中我们使用的是 root 用户,该用户是超级管理员,拥有所有权限,包括创建用户、删除用户和修改用户密码等管理权限

一、用户管理

1.1 新建用户

create user '用户名'@'主机名' [identified by [password] '密码'];
  • 用户名就不用解释了,就是我们登录时使用的账号
  • 主机名指定我们创建的用户可以在哪些主机上登陆,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%来表示。
  • identified by译为通过…来进行验证,也就是密码,密码分为明文和密文,明文直接就是identified by 加上’密码’即可,密文则是identified by password ‘密码’,多了password关键字。
  • 若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;若使用加密密码,需要先使用SELECT PASSWORD(‘密码’); 获取密文,再在语句中添加 PASSWORD ‘密文’;若省略“IDENTIFIED BY”部分,则用户的密码将为空。

明文创建用户

MySQL超详细实现用户管理实例

MySQL超详细实现用户管理实例

密文创建用户

MySQL超详细实现用户管理实例

1.2 查看用户信息

查看mysql库中的user表,强调一点,这个库只有root用户能查看,普通用户是没有权限查询这个库的。

MySQL超详细实现用户管理实例

如果我们想要让某一普通用户可以查看这个mysql库,需要使用grant进行授权。注意,授权工作也只能在root用户执行。

MySQL超详细实现用户管理实例

远程登陆,即从其他主机远程登录本机数据库

MySQL超详细实现用户管理实例

查看mysql.user表

MySQL超详细实现用户管理实例

MySQL超详细实现用户管理实例

1.3 重命名用户

rename user '旧用户名'@'旧主机名' to '新用户名'@'新主机名';

MySQL超详细实现用户管理实例

MySQL超详细实现用户管理实例

1.4 删除用户

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

MySQL超详细实现用户管理实例

1.5 修改用户密码

1.修改当前的用户密码

set password = password('新密码')

MySQL超详细实现用户管理实例

2.修改其他用户密码

set password for '用户名'@'主机名' = password('新密码');

普通用户是无法修改其他用户密码的

MySQL超详细实现用户管理实例

MySQL超详细实现用户管理实例

1.6 忘记密码怎么办

vim /etc/my.cnf #修改mysql配置文件
[mysqld]
......
skip-grant-tables #在mysqld模块下添加该配置
wq保存退出
systemctl restart mysqld #重启mysql服务
mysql #mysql直接登录
update mysql.user set authentication_string = password('新密码') where User='root';
flush privileges;
退出重新登陆
切记:修改完后一定将配置文件的skip-grant-tables注释或者删掉,不然再执行一次重启数据库,还是可以无密码登录,很危险

MySQL超详细实现用户管理实例

MySQL超详细实现用户管理实例

MySQL超详细实现用户管理实例

MySQL超详细实现用户管理实例

MySQL超详细实现用户管理实例

 

二、授权

2.1 用户授权

grant,授权,通常用于root用户授予普通用户一些执行权限,比如select,insert,update。

grant 权限列表(select|insert|delete|drop|update等等)on 数据库名.表名(*表示所有) to '用户名'@'主机名' [identified by '密码'];
若授权的用户不存在,mysql会先创建一个用户,然后进行授权操作

MySQL超详细实现用户管理实例

2.2 查看所授予的权限

show grants for '用户名'@'主机名';   #查看指定用户的权限
show grants;   #查看当前用户权限

MySQL超详细实现用户管理实例

2.3 撤销权限

revoke 权限列表 on 库名.表名 from '用户名'@'主机名';
#从用户XXX撤销XX库.XX表的XX操作的权限

MySQL超详细实现用户管理实例

到此这篇关于MySQL超详细实现用户管理实例的文章就介绍到这了,更多相关MySQL用户管理内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_40707090/article/details/125131745

延伸 · 阅读

精彩推荐
  • MysqlMySQL单表查询常见操作实例总结

    MySQL单表查询常见操作实例总结

    这篇文章主要介绍了MySQL单表查询常见操作,结合实例形式总结分析了MySQL创建表以及条件查询常见操作技巧,需要的朋友可以参考下...

    程志伟6792019-07-07
  • Mysqlmysql8.0.12如何重置root密码

    mysql8.0.12如何重置root密码

    这篇文章主要为大家详细介绍了mysql8.0.12如何重置root密码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...

    好记忆和烂笔头5502020-09-09
  • Mysqlmysql连接查询详解

    mysql连接查询详解

    这篇文章主要介绍了mysql连接查询,当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回,本文给大家介绍的非常详...

    one ²⁰¹⁹4062022-10-28
  • MysqlMYSQL必知必会读书笔记第四章之检索数据

    MYSQL必知必会读书笔记第四章之检索数据

    MySQL是一种开放源代码的关系型数据库管理系统(RDBMS)。接下来通过本文给大家介绍MYSQL必知必会读书笔记第四章之检索数据,感兴趣的朋友一起学习吧 ...

    自然鸟神4572020-06-07
  • Mysqlmysql为字段添加和删除唯一性索引(unique) 的方法

    mysql为字段添加和删除唯一性索引(unique) 的方法

    下面小编就为大家带来一篇mysql为字段添加和删除唯一性索引(unique) 的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过...

    mysql教程网8332020-07-19
  • MysqlMySQL在不知道列名情况下的注入详解

    MySQL在不知道列名情况下的注入详解

    这篇文章主要给大家介绍了关于MySQL在不知道列名情况下的注入的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mysql具有一定的参考学...

    se7ensec2542020-09-16
  • Mysql浅谈Mysql在什么情况下会使用内部临时表

    浅谈Mysql在什么情况下会使用内部临时表

    内部临时表是一种特殊轻量级的临时表,本文主要介绍了Mysql在什么情况下会使用内部临时表,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    我和宁拼啦10132021-11-25
  • MysqlMySQL复制的概述、安装、故障、技巧、工具(火丁分享)

    MySQL复制的概述、安装、故障、技巧、工具(火丁分享)

    首先主服务器把数据变化记录到主日志,然后从服务器通过I/O线程读取主服务器上的主日志,并且把它写入到从服务器的中继日志中,接着SQL线程读取中继...

    火丁笔记3732019-11-16