MySQL授予用户权限命令详解

 更新时间:2023年11月20日 10:25:43   作者:寒雪雪  
这篇文章主要给大家介绍了关于MySQL授予用户权限命令的相关资料,授权就是为某个用户赋予某些权限,例如可以为新建的用户赋予查询所有数据库和表的权限,需要的朋友可以参考下

使用该命令可以展示出mysql中存在的权限。

show privileges;

给用户授权的方式有 2 种,分别是通过把角色赋予用户给用户授权(mysql8.0的特性) 和 直接给用户授权。用户是数据库的使用者,我们可以通过给用户授予访问数据库中资源的权限,来控制用户对数据库的访问,消除安全隐患。

授权命令:该权限如果发现没有该用户,则会直接新建一个用户。

GRANT 权限1,权限2,…权限n ON 数据库名称.表名称 TO 用户名@用户地址 [IDENTIFIED BY ‘密码口令’];

举例:

1、给li4用户用本地命令行方式,授予atguigudb这个库下的所有表的插删改查的权限。

GRANT SELECT,INSERT,DELETE,UPDATE ON atguigudb.* TO li4@localhost ;

2、授予通过网络方式登录的joe用户 ,对所有库所有表的全部权限,密码设为123。如果需要赋予包括grant权限,添加参数“WITH GRANT OPTION”这个选项即可,表示该用户可以将自己拥有的权限授权给其他用户,可以使用grant重复给用户添加权限。

GRANT ALL PRIVILEGES ON *.* TO joe@'%' IDENTIFIED BY '123' with grant option;

我们在开发应用的时候,经常会遇到一种需求,就是要根据用户的不同,对数据进行横向和纵向的分组。

1、所谓横向的分组,就是指用户可以接触到的数据的范围,比如可以看到哪些表的数据;

2、所谓纵向的分组,就是指用户对接触到的数据能访问到什么程度,比如能看、能改,甚至是删除

查看权限

查看当前用户的权限

SHOW GRANTS; 或者 SHOW GRANTS FOR CURRENT_USER; 或者 SHOW GRANTS FOR CURRENT_USER();

查看某些用户的权限

SHOW GRANTS FOR 'user'@'主机地址' ;

收回权限

收回权限就是取消已经赋予用户的某些权限。收回用户不必要的权限可以在一定程度上保证系统的安全性。

MySQL中使用REVOKE语句取消用户的某些权限。使用REVOKE收回权限之后,用户账户的记录将从db、host、tables_priv和columns_priv表中删除,但是用户账户记录仍然在user表中保存(删除user表中的账户记录使用DROP USER语句,在将用户账户从user表删除之前,应该收回相应用户的所有权限。)

收回权限的命令(收回权限后需要用户重新登录才能生效)

REVOKE 权限1,权限2,…权限n ON 数据库名称.表名称 FROM 用户名@用户地址;

举例:

收回全库全表的所有权限:REVOKE ALL PRIVILEGES ON *.* FROM joe@'%';收回mysql库下的所有表的插删改查权限:REVOKE SELECT,INSERT,UPDATE,DELETE ON mysql.* FROM joe@localhost;

附:MySQL grant、revoke 用户权限注意事项

grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。

如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“

grant select on testdb.* to dba@localhost with grant option; 

这个特性一般用不到。实际中,数据库权限最好由 DBA 来统一管理。

总结

到此这篇关于MySQL授予用户权限的文章就介绍到这了,更多相关MySQL授予用户权限内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mysql基础知识点汇总

    Mysql基础知识点汇总

    本文给大家汇总介绍了mysql的23个基础的知识点,这些都是学习mysql的必备知识,小伙伴们可以参考下。
    2015-09-09
  • mysql 服务完全卸载技巧

    mysql 服务完全卸载技巧

    完整的把MYSQL服务删除的步骤。
    2009-06-06
  • MySQL启动1053错误解决方法

    MySQL启动1053错误解决方法

    创建mysql服务时,系统已提示创建服务成功,但是net start命令提示启动失败,并在services.msc中提示1053错误
    2012-11-11
  • mysql出现ERROR 1819 (HY000)的解决方法

    mysql出现ERROR 1819 (HY000)的解决方法

    这篇文章主要为大家详细介绍了mysql出现ERROR 1819 (HY000)的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 分析mysql中一条SQL查询语句是如何执行的

    分析mysql中一条SQL查询语句是如何执行的

    为了充分发挥MySQL的性能并顺利地使用,就必须正确理解其设计思想,因此,了解MySQL的逻辑架构是必要的。本文将通过一条SQL查询语句的具体执行过程来详细介绍MySQL架构中的各个组件
    2021-06-06
  • mysql中提高Order by语句查询效率的两个思路分析

    mysql中提高Order by语句查询效率的两个思路分析

    在MySQL数据库中,Order by语句的使用频率是比较高的。但是众所周知,在使用这个语句时,往往会降低数据查询的性能。
    2011-03-03
  • MySQL InnoDB锁类型及锁原理实例解析

    MySQL InnoDB锁类型及锁原理实例解析

    这篇文章主要为大家介绍了MySQL InnoDB锁类型及锁原理实例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 详解MySQL中varchar和int隐式转换的注意事项

    详解MySQL中varchar和int隐式转换的注意事项

    这篇文章主要为大家详细介绍了MySQL中varchar和int隐式转换的注意事项,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • Mariadb远程登陆配置及问题解决

    Mariadb远程登陆配置及问题解决

    这篇文章主要介绍了Mariadb远程登陆配置及问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Windows 10系统下彻底删除卸载MySQL的方法教程

    Windows 10系统下彻底删除卸载MySQL的方法教程

    mysql数据库的重新安装是一个麻烦的问题,很难卸除干净,下面这篇文章主要给大家介绍了关于在Windows 10系统下彻底删除卸载MySQL的方法教程,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07

最新评论