DEFINER總是指創建存儲過程的用戶。這隻能是1個用戶。
如果瑪麗希望看到鮑勃過程中,她可以打電話:
SHOW CREATE PROCEDURE proc_name
要查看程序的代碼。她還可以撥打下列看到代碼:
SELECT ROUTINE_DEFINITION FROM information_schema.ROUTINES WHERE SPECIFIC_NAME='proc_name'
繼承人如何啓用瑪麗通過的MySQL工作臺來訪問程序的視圖:
默認情況下,瑪麗是無法發送SQL編輯器的創建語句。但這只是一件特權事情。 Mary只需要mysql.proc
表中的基本SELECT
權限。要做到這一點,運行下面的SQL語句(通過工作臺命令行或直接):
GRANT SELECT ON mysql.proc TO 'mary'@'%'
此命令使瑪麗從所有主機訪問創建結單。如果你想將其限制在一個特定的主機,你會做這樣的事情:
GRANT SELECT ON mysql.proc TO 'mary'@'192.168.2.1'
如果瑪麗的SELECT權限,她應該能看到做Send to SQL Editor -> CREATE statement
注後的程序:爲了運行GRANT
-Command您需要登錄爲用戶誰擁有的權限授予的權限(如根用戶)
++++++++++++++++++編輯++++++++++++++++++++++
對於大量用戶來說,有一種「快速和骯髒」的方式,無需爲每個用戶編寫一個授予特權的新命令: (請務必與具有權限的用戶插入通過工作臺行)
- 打開一個新的SQL-Tab鍵在工作臺
SELECT * FROM mysql.tables_priv;
類型和運行它
- 上述結果,電網應該有一個小按鈕,它允許你從csv-File導入數據。
創建的CSV文件看起來像這樣:
%,MySQL和簡,PROC,根@本地, 「2016年2月19日22時51分47秒」,選擇, %,mysql的, max,proc,root @ localhost,「2016-02-19 22:51:47」,選擇, %,mysql,steve,proc,root @ localhost,「2016-02-19 22:51:47」,Select , %,mysql,greg,proc,root @ localhost,「2016-02-19 22:51:47」,選擇, %,mysql,jamie,proc,root @ localhost,「2016-02-19 22: 51:47" ,選擇,
...進一步的用戶
簡,馬克斯,史蒂夫,...將是你的用戶。保持其他列的方式。
- 您的CSV,文件
- 運行
FLUSH PRIVILEGES
在SQL-窗口(reloades權限從私法桌)
- 完成!您的所有用戶現在都可以訪問存儲過程
這很好 - 它在MySQL Workbench的設計中似乎有些不正常,提供了選項但不能使其工作。它似乎需要一些必須去爲每個用戶添加此權限(作爲我的情況下的root)!非常感謝您的幫助。 –
@MrAngry:好吧,如果你有大量的用戶,並且懶得給每個用戶輸入這個命令,那麼就有一種「快速和骯髒」的方式來實現這一點。看到我的編輯... –
謝謝內特 - 我有一小部分用戶,所以現在可能會手動做,雖然額外的信息也是有用的知道。我只是感到驚訝,沒有一種更強有力的或者「官方」的方式來做一些看起來(對我來說)是一個相當標準的要求。 –