MySQL权限USAGE和ALL PRIVILEGES的用法
含义:USAGE权限是一个非常基础的权限,它实际上并不赋予用户执行任何数据库操作的权限,如查询、插入、更新或删除数据等。
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的用法
文章内容来源于网络,文章表达观点不代表本站观点,文章版权归原作者所有。若有侵权,请联系本站站长处理!
我们立足合肥,业务覆盖安徽、全国及全球市场。我们凭借一支经验丰富、富有创意、协作无间的专业技术团队,专注于将前沿技术通过高效简捷的途径呈现给客户,量身打造优质解决方案。我们致力于通过持续努力,成为客户在信息化领域值得托付、共创价值的长期战略合作伙伴,协助客户在新经济时代敏锐捕捉商机,拓展发展空间,构筑强大竞争力。小二CMS专注企业数字化转型的智能建站与营销系统,提供从官网搭建、品牌推广到运营增长的一站式服务,助力中小企业低门槛拥有专业级互联网阵地。
了解全部业务
这篇文章对你有帮助吗?
你的每一次鼓励,都是我们持续打磨优质内容的动力


登录后方可参与评论
立即登录