文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  預存常式與 MySQL 權限

27.2.2 預存常式與 MySQL 權限

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

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

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

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

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

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

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

  • 對於指定為常式 DEFINER 以外的帳戶,存取常式屬性的權限取決於授予該帳戶的權限:

    • 具有 SHOW_ROUTINE 權限或全域 SELECT 權限的帳戶可以看到所有常式屬性,包括其定義。

    • 若在包含常式的範圍授予 CREATE ROUTINEALTER ROUTINEEXECUTE 權限,則該帳戶可以看到除了定義以外的所有常式屬性。