MySQL权限USAGE和ALL PRIVILEGES的用法

 更新时间:2024年09月02日 10:34:31   作者:半桶水专家  
本文主要介绍了MySQL权限USAGE和ALL PRIVILEGES的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

USAGE

含义USAGE权限是一个非常基础的权限,它实际上并不赋予用户执行任何数据库操作的权限,如查询、插入、更新或删除数据等。它的主要目的是允许用户连接到MySQL服务器,但除此之外没有其他操作权限。当你只想让用户能够登录到数据库,而不希望他们进行任何数据操作时,就会使用这个权限。

用法:通常在创建用户时,如果你不想立刻指定具体的权限,而又希望用户能够登录验证,可以使用USAGE权限。创建用户不授予权限时,默认为USAGE权限。例如:

CREATE USER 'limited_user'@'localhost' IDENTIFIED BY 'password';

ALL PRIVILEGES

含义ALL PRIVILEGES代表授予所有可能的权限,包括但不限于对数据库的创建、删除、修改权限,对表的数据操作权限(如SELECT、INSERT、UPDATE、DELETE),以及执行存储过程、管理用户等高级权限。简而言之,拥有ALL PRIVILEGES的用户几乎可以执行数据库中的任何操作。

用法:当你想要给某个用户分配全面的数据库管理权限时,就会使用ALL PRIVILEGES。这通常是为数据库管理员或者需要广泛操作权限的用户准备的。例如:

GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'localhost' IDENTIFIED BY 'password';

这里,admin_user被赋予了对所有数据库和表的所有权限。

mysql中all privileges包含哪些权限

mysql> grant all privileges on test.* to 'ybb'@'%' identified by 'ybb';
Query OK, 0 rows affected (0.07 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql> select host,user,password from mysql.user where user='ybb' and host='%';
+-----------+---------+-------------------------------------------+
| host      | user    | password                                  |
+-----------+---------+-------------------------------------------+
| %         | ybb      | *C85EE1EAA8E69C43CE790C4CFFCF1ED2F88039EB |
+-----------+---------+-------------------------------------------+
1 rows in set (0.00 sec)
 
mysql> show grants for ybb;
+---------------------------------------------------------------------------------------------------+
| Grants for ybb@%                                                                                   |
+---------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'ybb'@'%' IDENTIFIED BY PASSWORD '*C85EE1EAA8E69C43CE790C4CFFCF1ED2F88039EB' |
| GRANT ALL PRIVILEGES ON `test`.* TO 'ybb'@'%'                                                      |
+---------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
 
mysql> revoke insert on test.* from ybb@'%';
Query OK, 0 rows affected (0.00 sec)
 
mysql> show grants for ybb;
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for ybb@%                                                                                                                                                                                                    |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'ybb'@'%' IDENTIFIED BY PASSWORD '*C85EE1EAA8E69C43CE790C4CFFCF1ED2F88039EB'                                                                                                                  |
| GRANT SELECT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `test`.* TO 'ybb'@'%' |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
 
mysql>

 从上可以看出all privileges包含以下权限:

select,
insert,
update,
delete,
create,
drop,
references,
index,
alter,
create temporary tables,
lock tables,
execute,
create view,
show view,
create routine,
alter routine,
event,
trigger

注意点

  • 授予ALL PRIVILEGES时需谨慎,因为它给予了用户极大的权限,可能对数据库安全构成威胁。
  • USAGE虽然看起来权限很有限,但在某些场景下非常有用,比如仅为用户提供验证连接的能力,而不涉及数据操作,可以作为一种安全实践。
  • 在实际操作中,应遵循最小权限原则,即只给予执行任务所需的最小必要权限,以保障数据库的安全性。

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

相关文章

  • Mysql基础教程之增删改查语句

    Mysql基础教程之增删改查语句

    这篇文章主要给大家介绍了关于Mysql基础教程之增删改查语句的相关资料,以下是MySQL最基本的增删改查语句,很多IT工作者都必须要会的命令,也是IT行业面试最常考的知识点,需要的朋友可以参考下
    2023-10-10
  • Mysql通过存储过程分割字符串为数组

    Mysql通过存储过程分割字符串为数组

    今天小编就为大家分享一篇关于Mysql通过存储过程分割字符串为数组,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • MySQL教程子查询示例详解

    MySQL教程子查询示例详解

    这篇文章主要为大家介绍了MySQL教程中子查询的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-10-10
  • 简单了解MySQL union all与union的区别

    简单了解MySQL union all与union的区别

    这篇文章主要介绍了简单了解MySQL union all与union的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Mysql 前模糊索引失效原因及解决方式

    Mysql 前模糊索引失效原因及解决方式

    前模糊查询导致索引失效是因为B+树无法对不确定首字符进行有序检索,下面介绍了几种解决方法,感兴趣的可以来了解一下
    2026-03-03
  • 分享一下Mysql常见的几个错误问题及解决方法

    分享一下Mysql常见的几个错误问题及解决方法

    这篇文章主要为大家分享一下Mysql常见的几个错误问题及解决方法,需要的朋友可以参考下
    2015-08-08
  • MySQL索引优化之适合构建索引的几种情况详解

    MySQL索引优化之适合构建索引的几种情况详解

    我们知道正确的建立索引可以加快数据库的查询,但是如果索引建立不当,或者随意的建立过多索引不仅不会提升数据库的效率,反而在进行数据更新操作的时候需要耗费系统资源对索引进行维护,同时占用大量的存储空间来对索引进行存储,本文主要讲述在哪些情况下适合建立索引
    2022-07-07
  • mysql下怎样运行脚本以运行niuzi.sql为例

    mysql下怎样运行脚本以运行niuzi.sql为例

    mysql下运行脚本,有两种方法,都是在命令行下进行的,需要的朋友可以记录下
    2014-07-07
  • MYSQL 常用语句速查(最新整理)

    MYSQL 常用语句速查(最新整理)

    这篇文章主要介绍了MYSQL 常用语句速查,包括库级操作、表级操作、字段级操作和数据级操作,需要的朋友可以参考下
    2024-12-12
  • SQL中current_date()函数的实现

    SQL中current_date()函数的实现

    日期时间类型的数据也是经常要用到的,SQL中也提供了一些函数对这些数据进行处理,本文主要介绍了SQL中current_date()函数的实现,具有一定的参考价值
    2024-02-02

最新评论