Mysql
mysql’SHOW CREATE PROCEDURE’的權限?
我正在創建一個“只讀”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 ....