mysql存储过程中定义权限
2017-03-02 17:25
274 查看
【definer和invoker的解释】
创建存储过程的时候可以指定 SQL SECURITY属性,设置为 DEFINER 或者INVOKER,用来奉告mysql在执行存储过程的时候,,是以DEFINER用户的权限来执行,还是以调用者*(invoker)的权限来执行。
默认情况下,使用DEFINER方式,此时调用存储过程的用户必须有存储过程的EXECUTE权限,并且DEFINER指定的用户必须是在mysql.user表中存在的用户。
DEFINER模式下,默认DEFINER=CURRENT_USER,在存储过程执行时,MySQL会检查DEFINER定义的用户'user_name'@'host_name'的权限;
INVOKER模式下,在存储过程执行时,会检查存储过程调用者的权限。
等同于oracle 中的 authid current_user
创建存储过程的时候可以指定 SQL SECURITY属性,设置为 DEFINER 或者INVOKER,用来奉告mysql在执行存储过程的时候,,是以DEFINER用户的权限来执行,还是以调用者*(invoker)的权限来执行。
默认情况下,使用DEFINER方式,此时调用存储过程的用户必须有存储过程的EXECUTE权限,并且DEFINER指定的用户必须是在mysql.user表中存在的用户。
DEFINER模式下,默认DEFINER=CURRENT_USER,在存储过程执行时,MySQL会检查DEFINER定义的用户'user_name'@'host_name'的权限;
INVOKER模式下,在存储过程执行时,会检查存储过程调用者的权限。
等同于oracle 中的 authid current_user
相关文章推荐
- mysql 存储过程中变量的定义与赋值操作
- java调用mysql存储过程报权限方面错误
- JDBC连接执行MySQL存储过程报权限错误
- JDBC连接执行 MySQL 存储过程报权限错误
- mysql 存储过程中变量的定义与赋值操作
- mysql 生成完整的存储过程定义语句
- Mysql 存储过程、临时变量定义、IF、Case
- mysql修改存储过程的权限
- JDBC连接执行 MySQL 存储过程报权限错误:User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted,
- 如何在MySQL的存储过程中实现把过程参数用在游标定义的SELECT命令里面作为表名引用
- MySQL存储过程权限分析
- (原)mysql存储过程的权限 definer invoker
- mysql存储过程的权限 definer
- JDBC连接执行MySQL存储过程报空指针或权限错误
- MySQL存储过程权限检查主要点 推荐
- mysql+asp.net开发注意大全:mysql创建数据库的时候,创建新用户,并且付给权限。mysql存储过程的编写,mysql数据库引擎的区别,mysql数据库文件夹备份
- mysql存储过程执行权限问题
- (原)mysql存储过程的权限 definer invoker
- JDBC连接执行MySQL存储过程报空指针或权限错误
- MySQL 用户执行存储过程的权限