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

 更新时间:2022年06月07日 10:11:16   作者:一念去殇  
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”部分,则用户的密码将为空。

明文创建用户

密文创建用户

1.2 查看用户信息

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

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

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

查看mysql.user表

1.3 重命名用户

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

1.4 删除用户

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

1.5 修改用户密码

1.修改当前的用户密码

set password = password('新密码')

2.修改其他用户密码

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

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

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注释或者删掉,不然再执行一次重启数据库,还是可以无密码登录,很危险

二、授权

2.1 用户授权

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

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

2.2 查看所授予的权限

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

2.3 撤销权限

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

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

相关文章

  • MySQL数据库实现高可用架构之MHA的实战

    MySQL数据库实现高可用架构之MHA的实战

    本文主要介绍了MySQL数据库实现高可用架构之MHA的实战,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • MySQL如何计算连续登录天数

    MySQL如何计算连续登录天数

    这篇文章主要介绍了MySQL如何计算连续登录天数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • MySQL 5.5/5.6/5.7及以上版本安装包安装时如何选择安装路径

    MySQL 5.5/5.6/5.7及以上版本安装包安装时如何选择安装路径

    最近mysql官方网站的安装包从5.5-5.7起都是新版的安装界面,各种环境要求支持,看样子以后老点的系统安装都够费劲的了,这里脚本之家小编特为大家整理一下安装步骤与方法
    2016-04-04
  • 高效利用mysql索引指南

    高效利用mysql索引指南

    这篇文章主要介绍了高效利用mysql索引指南,你知道如何创建恰当的索引吗?在数据量小的时候,不合适的索引对性能并不会有太大的影响,但是当数据逐渐增大时,性能便会急剧的下降。,需要的朋友可以参考下
    2019-06-06
  • mysql中的int(10)int(20)分别代表什么意思

    mysql中的int(10)int(20)分别代表什么意思

    这篇文章主要介绍了mysql中的int(10)int(20)分别代表什么意思,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • MySQL中的CONCAT()函数:轻松拼接字符串的利器

    MySQL中的CONCAT()函数:轻松拼接字符串的利器

    这篇文章主要介绍了MySQL中的CONCAT()函数:轻松拼接字符串的利器,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • mysql中redo log和 binlog的区别

    mysql中redo log和 binlog的区别

    本文主要介绍了mysql中redo log和 binlog的区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Mysql8创建用户及赋权操作实战记录

    Mysql8创建用户及赋权操作实战记录

    一般在开发中,我们需要新建一个账户,并赋予某个数据库的访问权限,下面这篇文章主要给大家介绍了关于Mysql8创建用户及赋权操作的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • mysql求和函数使用示例

    mysql求和函数使用示例

    求和函数在某些有计算的情况下会使用到,在本将为大家介绍下mysql中时如何实现求和的,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-09-09
  • mysql截取函数常用方法使用说明

    mysql截取函数常用方法使用说明

    常用的mysql截取函数有:left(), right(), substring(), substring_index(),很多新手朋友不是很了解,接下来详细说明,需要的朋友可以参考下
    2012-12-12

最新评论