[英]Allow non-SELECT permission user to run MySQL stored procedure which has SELECT query
我有兩個MySQL用戶:
mysql_user_1創建了一個存儲過程getRecord(int uid_of_record)
,該存儲過程運行SELECT * FROM TABLE WHERE uid=?
。 mysql_user_2
可以在沒有SELECT
特權的情況下執行該存儲過程?
這在MySQL文檔“存儲程序和視圖的訪問控制”中有詳細解釋。
可以使用以下任一方法定義存儲過程:
SQL SECURITY DEFINER
要么
SQL SECURITY INVOKER
如果是DEFINER
,則該過程將在定義該過程的用戶的權限下執行; 在您的情況下,如果mysql_user_1
具有SELECT
特權,則該過程適用於mysql_user_2
。
如果是INVOKER
,則該過程將在運行該過程的用戶的權限下執行。 在這種情況下,該過程不適用於mysql_user_2
。
如果過程中沒有此子句,則默認為DEFINER
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.