MySQL 8.4 參考手冊  /  ...  /  預存常式和 MySQL 權限

27.2.2 預存常式和 MySQL 權限

MySQL 授權系統會以下列方式將預存常式納入考量

  • 需要 CREATE ROUTINE 權限才能建立預存常式。

  • 需要 ALTER ROUTINE 權限才能變更或刪除預存常式。如果必要,此權限會自動授予常式的建立者,並在刪除常式時從建立者移除。

  • 需要 EXECUTE 權限才能執行預存常式。但是,如果必要,此權限會自動授予常式的建立者 (並在刪除常式時從建立者移除)。此外,常式的預設 SQL SECURITY 特性是 DEFINER,這使得能夠存取與常式相關聯的資料庫的使用者可以執行常式。

  • 如果 automatic_sp_privileges 系統變數為 0,則不會自動將 EXECUTEALTER ROUTINE 權限授予常式建立者,也不會從常式建立者移除。

  • 常式的建立者是執行其 CREATE 陳述式的帳戶。這可能與常式定義中命名為 DEFINER 的帳戶不同。

  • 在常式 DEFINER 中命名的帳戶可以看到所有常式屬性,包括其定義。因此,該帳戶可以完全存取由以下項目產生的常式輸出:

  • 對於除了在常式 DEFINER 中命名的帳戶之外的帳戶,存取常式屬性取決於授予該帳戶的權限