如果希望某个账户只能访问指定的数据库,在 users and privileges中的 schema privileges 中设置,但是如果 设置了revoke all privileges(取消所有特权),将不能再设置。
那就得通过命令方式来实现:
查询权限:mysql> show grants for test@"%"
结果是:
GRANT USAGE ON *.* TO 'test'@'%' IDENTIFIED BY PASSWORD '*4FCD52CE474BA156B1C8B2C2C2A4033439167EC4'
设置权限:
mysql> grant select,delete,update,create on redfish.* to test@"%" identified by "123123";
指定执行权限,象存储过程必须有这个权限:
GRANT USAGE ON *.* TO 'test@'%' IDENTIFIED BY PASSWORD '*4FCD52CE474BA156B1C8B2C2C2A4033439167EC4'
当然,这步的设置完全可以在MySQL Workbench中进行。
设置执行权限后,虽然不能通过存储过程名称边上的闪电图标运行存储过程,但,可以通过代码执行:
use redfish;
call commonselect(3,22,"username","t_huodan","","username");
flush privileges;
记得每次设置权限后,用户需要重新登录MySQL Workbench 才能有效。切记。