我正在推出一些軟件的更新,其中包括運行SQL腳本來創建觸發器。如何在表上執行CREATE TRIGGER時刪除默認的DEFINER?
在我的.sql
文件語法中,我沒有包含任何DEFINER子句,因爲我希望我的客戶的生產MySQL用戶(他們自己設置)能夠在程序運行時執行這些觸發器。
問題是,測試表明MySQL自動爲TRIGGER創建了一個DEFINER,其中'CURRENT_USER'@'%'
。 當你做了明智的事情,並使用一個(限制)帳戶進行日常數據操作,另一個帳戶用於大型更新(root?)時,最終嘗試執行TRIGGER與一個或多個沒有許可做到這一點。
有沒有辦法刪除這個「自動添加定義」功能?
我試過輸入DEFINER = '%'@'%'
但這不被接受。
看看這個 - http://stackoverflow.com/questions/9956839/phpmyadmin-export-view-without-database-name-or-algorithm – Devart 2012-04-23 13:42:13