Kyl*_*yle 2 mysql stored-procedures permissions
我正在创建一个“只读”的 mysql 数据库。我希望用户能够看到所有内容,但不能修改任何内容。我的用户目前拥有以下授权:
GRANT USAGE ON . TO 'sqlprostudio-ro'@'%' IDENTIFIED BY PASSWORD '*x'
GRANT SELECT, EXECUTE, SHOW VIEW ON northwind.* TO 'sqlprostudio-ro'@'%'
Run Code Online (Sandbox Code Playgroud)
我可以看到存储过程,但是如果我运行:
SHOW CREATE PROCEDURE x
Run Code Online (Sandbox Code Playgroud)
“创建过程”列返回空值。有没有一种方法可以让只读用户看到创建过程而不能修改它?
从 MySQL 8.0.20 开始,不再添加全局 SELECT 权限(太宽泛),而是添加新的 SHOW_ROUTINE 权限:
GRANT SHOW_ROUTINE ON *.* TO <USER>@<LOCATION>;
Run Code Online (Sandbox Code Playgroud)