zoukankan      html  css  js  c++  java
  • MySQL 存储过程 函数 routine 权限

    MySQL 存储过程 函数 routine 权限

    1 mysql存储过程/函数权限

    Mysql 某个用户在执行存储过程、函数时,需要检查相关对象的操作权限,比如是否有执行 该函数的权限 ,某个用户是否操作(DML)相关对象的权限 。

    在创建存储过程或者函数时,有一个关键词,sql_security, 该关键词决定了对哪个用户进行权限检查。下面是创建存储过程或者函数的语法:

    • delimiter //    -- 声明分隔符(命令结束符)
      
      create
      
        definer = user@hostname | current_user
      
        [procedure| function] 对象名(参数)
      
        comment '注释'
      
        sql security definer | invoker   -- sql 的安全设置
      
      begin
      
         body
      
      end
      
      //
      
      delimiter ;    -- 声明分隔符(命令结束符)

    1.1 相关对象操作权限检查

         sql_security 主要 是检查调用 者或者definer指定的用户,有没有操作相关对象的权限 。 该选项有两种值可选,一个是definer,一个是invoker.

    • DEFINER

      definer 检查指定的用户, 创建存储过程时可以省略掉。省略时,默认DEFINER=CURRENT_USER.

      sql security 设置为definer时,则数据库根据definer 是否有操作相应对象的权限 。

    • INVOKER

      检查调用存储过程/函数的用户是否有操作相应对象的处理权限 。

    1.2 执行权限

    Mysql可以(取消)授权给指定用户去执行某个存储过程或者函数等。

    • 授权给指定用户

      grant execute on <schema>.<procedure_name> to 'user'@'host';
      
    • 取消授权

      revoke  execute on <schema>.<procedure_name> from 'user'@'host';
      

    Author: halberd.lee

    Created: 2019-07-18 Thu 17:49

    Validate

  • 相关阅读:
    Cesium 中的图形变换:局部平移、缩放、旋转思路及代码实现
    Cesium中的图形技术:Fabric —— 材质JSON规范
    【Cesium 历史博客】多视锥体优化:使用对数深度缓存
    Cesium中的图形技术:Primitive API 高级
    Cesium中的图形技术:Primitive API 简介
    【Cesium 历史博客】Cesium 中的图形技术:顶点压缩
    【Cesium 历史博客】Cesium 中的图形技术:图形结构
    【Cesium 历史博客】Cesium 中的图形技术:渲染体系结构
    Excel筛选后复制单元格提示无法对合并单元格执行操作解决方法
    plsql导入sql脚本时提示逗号等字符错误或遗失不匹配问题处理方法
  • 原文地址:https://www.cnblogs.com/halberd-lee/p/11189909.html
Copyright © 2011-2022 走看看