Mysql
MySQL 儲存過程使用者權限
我有一個關於儲存過程的使用者權限的查詢。
如果使用者沒有在數據庫中創建表的權限,但有創建和執行儲存過程的權限
如果這些儲存過程創建表(作為執行的 SQL 程式碼的一部分),那麼使用者在嘗試創建表時執行儲存過程時會出錯嗎?
這取決於
SQL SECURITY
您在創建過程時定義的特徵。儲存過程的 SQL SECURITY 可以是DEFINER
或INVOKER
。如果您的使用者不能創建表,但儲存過程的定義者可以,那麼您的使用者將能夠通過儲存過程創建表。
預設情況下,
SQL SECURITY
MySQL 中的特徵是DEFINER
.簡而言之:
- 儲存過程
SQL SECURITY DEFINER
:以儲存過程創建者權限執行- 帶有 : 的儲存過程以
SQL SECURITY INVOKER
目前使用者權限執行