普通用户如何隐藏系统库,mysql8.0布置完成以后授权了普通用户,要如何取消普通用户查看infomation_schema和performance_scheme这两个系统表。
该回答引用GPTᴼᴾᴱᴺᴬᴵ
MySQL 8.0中,普通用户无法直接取消查看information_schema和performance_schema这两个系统表的权限,因为这些表包含了关于MySQL服务器运行状态的重要信息。但是,你可以创建一个视图,隐藏这些系统表,然后将视图授权给普通用户。
以下是具体步骤:
创建一个视图,用于隐藏information_schema和performance_schema这两个系统表:
CREATE VIEW my_view AS SELECT * FROM my_table WHERE table_schema NOT IN ('information_schema', 'performance_schema');
此语句创建了一个名为my_view的视图,该视图将从my_table表中选择所有记录,但仅显示不属于information_schema和performance_schema的表。
授予普通用户对该视图的SELECT权限:
GRANT SELECT ON my_view TO my_user;
此命令将对普通用户my_user授予my_view视图的SELECT权限。
确保普通用户无法访问information_schema和performance_schema这两个系统表:
REVOKE SELECT ON information_schema.* FROM my_user;
REVOKE SELECT ON performance_schema.* FROM my_user;
这两条命令将撤销普通用户my_user对information_schema和performance_schema这两个系统表的SELECT权限。
注意:如果需要在视图中使用INFORMATION_SCHEMA或PERFORMANCE_SCHEMA内的数据,则需要在创建视图时指定DEFINER选项,并使用具有足够权限的特权帐户作为definer。