首页 > 数据库 > mysql教程 > 如何撤销 MySQL 数据库范围管理员的表权限?

如何撤销 MySQL 数据库范围管理员的表权限?

Linda Hamilton
发布: 2024-11-05 03:54:02
原创
433 人浏览过

How to Revoke Table Privileges from a Database-Wide Administrator in MySQL?

撤销数据库范围管理员的特定表权限

作为 MySQL 管理员,您有时可能需要授予用户对某个表的完全权限。数据库,同时限制对特定表的访问。这个看似简单的任务通过传统方法实现起来却非常具有挑战性。

授予除 Select 之外的所有权限

一种常见的方法是授予数据库的所有权限(例如, db_name.*) 后跟对排除表的选择权限的特定授予。但是,此方法无效,因为后续授予不会覆盖最初的无限制访问权限。

选择性权限方法

首选解决方案包括授予表权限 -按表计算,不包括您希望限制的表。虽然这种方法对于具有大量表的数据库来说可能很乏味,但它可以确保精度并防止无意访问受保护的表。

使用信息架构

为了方便起见,您可以利用 information_schema 数据库生成必要的授予语句。以下查询将返回特定数据库中所有表的授予命令列表,不包括您要保护的表:

SELECT CONCAT("GRANT UPDATE ON db.", table_name, " TO user@localhost;")
FROM information_schema.TABLES
WHERE table_schema = "YourDB" AND table_name <> "table_to_skip";
登录后复制

结论

授予所有除特定表之外的数据库权限可以通过手动逐表授予权限或使用 information_schema 数据库为所有表(不包括要保护的表)生成授予语句来实现。后一种方法为这种常见的 MySQL 管理任务提供了高效可靠的解决方案。

以上是如何撤销 MySQL 数据库范围管理员的表权限?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板