MySQL grant授权

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

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

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

对表授予权限

可以向用户授予对表的各种权限。这些权限包括SELECT,INSERT,UPDATE,DELETE,INDEX,CREATE,ALTER,DROP,GRANT OPTION或ALL。

语法

在MySQL中为表授予权限的语法为:

GRANT privileges ON object TO user;
参数说明
privilegesSELECT,INSERT,UPDATE,DELETE,INDEX,CREATE,ALTER,DROP,GRANT OPTION或者ALL中的任意值
object授予权限的数据库对象的名称。例如表名,视图名,过程名等。
user被授予权限的用户名。

对表进行授予权限示例

  1. 授予用户root在contact的表上的SELECT,INSERT,UPDATE和DELETE权限:
GRANT SELECT, INSERT, UPDATE, DELETE ON contacts TO 'root'@'localhost';
  1. 给用户mysql授予除GRANT OPTION之外的所有权限:
GRANT ALL ON contacts TO 'mysql'@'localhost';

参数ALL是授予除了GRANT选项外的所有权限。

  1. 将contacts表上的SELECT访问权限授予localhost上的所有用户: (使用***星号**)
GRANT SELECT ON contacts TO '*'@'localhost';

授予函数或者过程权限

语法

在MySQL中为函数/过程授予可执行权限的语法是:

GRANT EXECUTE ON [ PROCEDURE | FUNCTION ] object TO user;

参数| 说明
EXECUTE | 允许执行函数或者过程
PROCEDURE | 授权的对象是一个过程
FUNCTION | 授权的对象是一个函数
object | 授予权限的数据库对象的名称。
user | 被授予EXECUTE权限的用户名。

授予函数权限示例

  1. 向用户root授予对函数CalcArea的EXECUTE访问权限:
GRANT EXECUTE ON FUNCTION CalcIArea TO 'root'@'localhost';
  1. 授予所有用户对函数CalcArea的EXECUTE访问权限:
GRANT EXECUTE ON FUNCTION CalcIArea TO '*'@'localhost';

授予过程权限示例

授予用户root对过程MyFirstProc的EXECUTE访问权限:

GRANT EXECUTE ON PROCEDURE MyFirstProc TO 'root'@'localhost';

授予所有用户执行该过程的权限:

GRANT EXECUTE ON PROCEDURE MyFirstProc TO '*'@'localhost';