Mysql

mysql’SHOW CREATE PROCEDURE’的權限?

  • October 20, 2021

我正在創建一個“只讀”mysql 數據庫。我希望使用者能夠看到所有內容,但不能修改任何內容。我的使用者目前擁有以下授權:

GRANT USAGE ON . TO 'sqlprostudio-ro'@'%' IDENTIFIED BY PASSWORD '*x'
GRANT SELECT, EXECUTE, SHOW VIEW ON northwind.* TO 'sqlprostudio-ro'@'%'

我可以看到儲存過程,但如果我執行:

SHOW CREATE PROCEDURE x

“創建過程”列返回 null。有沒有辦法允許只讀使用者查看創建過程而不能修改它?

man的第二行說:

要使用任一語句,您必須是常式 DEFINER 子句中指定的使用者或對 mysql.proc 表具有 SELECT 訪問權限。如果您沒有常式本身的權限,則為 Create Procedure 或 Create Function 欄位顯示的值將為 NULL。

另一個選項(只是一個建議)您可以設計一個程序或功能(最好)來顯示有問題的資訊。

問候,

在 MySQL 8.0 下,情況發生了變化,您必須向使用者授予全域 SELECT 權限,因此您需要執行以下操作:

GRANT SELECT ON *.* to ....

引用自:https://dba.stackexchange.com/questions/184724