首頁 >資料庫 >mysql教程 >為什麼我在 phpMyAdmin 中建立函數時收到「錯誤:存取被拒絕;此操作需要超級權限」?

為什麼我在 phpMyAdmin 中建立函數時收到「錯誤:存取被拒絕;此操作需要超級權限」?

Susan Sarandon
Susan Sarandon原創
2024-10-31 17:13:301032瀏覽

Why Am I Getting

錯誤:存取被拒絕:在phpMyAdmin 中建立函數

在phpMyAdmin 中執行SQL 查詢建立函數時,使用者可能會遇到查詢函數時,使用者可能會遇到「錯誤:存取被拒絕;您需要超級權限才能執行此操作」訊息。此錯誤源於權限要求。

識別問題

兩個主要問題可能導致此錯誤:

  1. 缺失CREATE ROUTINE 權限:
  2. 缺失CREATE ROUTINE 權限:
  3. 缺失CREATE ROUTINE 權限:

缺失5.0.3 及更高版本需要CREATE ROUTINE 權限才能執行CREATE PROCEDURE 和CREATE FUNCTION 查詢。

DEFINER 限制: DEFINER 屬性指定擁有權限的使用者預存程序或函數。如果 DEFINER 設定為受限用戶,則呼叫者必須擁有 SUPER 權限才能建立物件。

解決方案
<code class="sql">CREATE FUNCTION `f_calc_gst`(p_ht decimal(15,3), p_province varchar(2)) RETURNS varchar(255) CHARSET utf8
...</code>

刪除DEFINER 屬性:

要消除對SUPER 屬性:

要消除對SUPER 權限的需要,請從SQL查詢中刪除DEFINER 屬性。這會將函數的所有權授予目前使用者。

  • 在phpMyAdmin 中設定分隔符號欄位:
在執行修改後的查詢之前,請確保分隔符號欄位為在phpMyAdmin 中的SQL 文字方塊下正確設定。 附加說明:二進位日誌記錄可能需要 SUPER 權限。 一旦函數建立後,使用者可以向其他使用者或角色授予特定權限。

以上是為什麼我在 phpMyAdmin 中建立函數時收到「錯誤:存取被拒絕;此操作需要超級權限」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn