MySQL 存儲過程 函數 routine 權限

 

 

MySQL 存儲過程 函數 routine 權限css

MySQL 存儲過程 函數 routine 權限

1 mysql存儲過程/函數權限

Mysql 某個用戶在執行存儲過程、函數時,須要檢查相關對象的操做權限,好比是否有執行 該函數的權限 ,某個用戶是否操做(DML)相關對象的權限 。html

1.1 相關對象操做權限檢查

     sql_security 主要 是檢查調用 者或者definer指定的用戶,有沒有操做相關對象的權限 。 該選項有兩種值可選,一個是definer,一個是invoker.java

  • DEFINERpython

    definer 檢查指定的用戶, 建立存儲過程時能夠省略掉。省略時,默認DEFINER=CURRENT_USER.mysql

    sql security 設置爲definer時,則數據庫根據definer 是否有操做相應對象的權限 。sql

  • INVOKERshell

    檢查調用存儲過程/函數的用戶是否有操做相應對象的處理權限 。數據庫

  • 示例sass

    delimiter //    -- 聲明分隔符(命令結束符)
    
    create
    
      definer = user@hostname | current_user
    
      [procedure| function] 對象名(參數)
    
      comment '註釋'
    
      sql security definer | invoker   -- sql 的安全設置
    
    begin
    
       body
    
    end
    
    //
    
    delimiter ;    -- 聲明分隔符(命令結束符)
    

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

相關文章
相關標籤/搜索