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;
参数 | 说明 |
---|---|
privileges | SELECT,INSERT,UPDATE,DELETE,INDEX,CREATE,ALTER,DROP,GRANT OPTION或者ALL中的任意值 |
object | 授予权限的数据库对象的名称。例如表名,视图名,过程名等。 |
user | 被授予权限的用户名。 |
对表进行授予权限示例
- 授予用户root在contact的表上的SELECT,INSERT,UPDATE和DELETE权限:
GRANT SELECT, INSERT, UPDATE, DELETE ON contacts TO 'root'@'localhost';
- 给用户mysql授予除GRANT OPTION之外的所有权限:
GRANT ALL ON contacts TO 'mysql'@'localhost';
参数ALL是授予除了GRANT选项外的所有权限。
- 将contacts表上的SELECT访问权限授予localhost上的所有用户: (使用***星号**)
GRANT SELECT ON contacts TO '*'@'localhost';
授予函数或者过程权限
语法
在MySQL中为函数/过程授予可执行权限的语法是:
GRANT EXECUTE ON [ PROCEDURE | FUNCTION ] object TO user;
参数| 说明
EXECUTE | 允许执行函数或者过程
PROCEDURE | 授权的对象是一个过程
FUNCTION | 授权的对象是一个函数
object | 授予权限的数据库对象的名称。
user | 被授予EXECUTE权限的用户名。
授予函数权限示例
- 向用户root授予对函数CalcArea的EXECUTE访问权限:
GRANT EXECUTE ON FUNCTION CalcIArea TO 'root'@'localhost';
- 授予所有用户对函数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';