MySQL revoke取消权限

时间:2019-02-04 12:52:28  来源:igfitidea点击:

在本教程中,我们将学习如何在MySQL中取消对表、函数和过程的权限。

在MySQL中授予和撤消对各种数据库对象的权限。然后,您可以使用SHOW GRANTS命令查看分配给用户的权限。

取消授予表的权限

语法

撤销MySQL中表的权限的语法为:

REVOKE privileges ON object FROM user;
参数说明
privilegesSELECT,INSERT,UPDATE,DELETE,INDEX,CREATE,ALTER,DROP,GRANT OPTION或者ALL中的任意值
object撤消其权限的数据库对象的名称。 例如表名,视图名,过程名等。
user拥有这些权限的用户的名称。

撤销授予表的权限示例

  1. 撤销用户root对表contacts的DELETE和UPDATE权限:
REVOKE DELETE, UPDATE ON contacts FROM 'root'@'localhost';
  1. 撤消用户mysql对表的所有权限(GRANT OPTION除外)(使用ALL关键字):
REVOKE ALL ON contacts FROM 'mysql'@'localhost';
  1. 撤消所有用户在contacts表的SELECT权限:
REVOKE SELECT ON contacts FROM '*'@'localhost';

撤销函数/程序的权限

语法

在MySQL中,取消对函数或过程的权限的语法为:

REVOKE EXECUTE ON [ PROCEDURE | FUNCTION ] object FROM user;
参数说明
EXECUTE执行权限
PROCEDURE要取消权限的对象是过程
FUNCTION要取消权限的对象是函数
object要撤消其权限的数据库对象的名称。
user被撤销EXECUTE权限的用户名。

取消对函数的权限示例

  1. 取消用户mysql对函数GenTree的可执行权限:
REVOKE EXECUTE ON FUNCTION GenTree FROM 'smithj'@'localhost';
  1. 取消所有对函数GenTree的可执行权限:
REVOKE EXECUTE ON FUNCTION CalcIncome FROM '*'@'localhost';

取消对过程的权限示例

回收用户yunkaibj对过程MyFirstProc的EXECUTE权限

REVOKE EXECUTE ON PROCEDURE MyFirstProc FROM 'yunkaibj'@'localhost';