Mysql

MySQL 儲存過程使用者權限

  • April 16, 2015

我有一個關於儲存過程的使用者權限的查詢。

如果使用者沒有在數據庫中創建表的權限,但有創建和執行儲存過程的權限

如果這些儲存過程創建表(作為執行的 SQL 程式碼的一部分),那麼使用者在嘗試創建表時執行儲存過程時會出錯嗎?

這取決於SQL SECURITY您在創建過程時定義的特徵。儲存過程的 SQL SECURITY 可以是DEFINERINVOKER

如果您的使用者不能創建表,但儲存過程的定義者可以,那麼您的使用者將能夠通過儲存過程創建表。

預設情況下,SQL SECURITYMySQL 中的特徵是DEFINER.

簡而言之:

  • 儲存過程SQL SECURITY DEFINER:以儲存過程創建者權限執行
  • 帶有 : 的儲存過程以SQL SECURITY INVOKER目前使用者權限執行

引用自:https://dba.stackexchange.com/questions/98015