mysql db用戶使用mysqldump文件和恢復所需的最低特權是多少?用於從mysqldump恢復的Mysql用戶權限
- 在我的情況下,不能使用root數據庫用戶。
- 已使用mysqldump實用程序對轉儲文件中的所有模式進行了完全備份。
- 需要知道爲數據庫用戶(除root用戶以外的用戶)提供的最低必需特權,以便它可以用於從mysqldump文件恢復。
mysql db用戶使用mysqldump文件和恢復所需的最低特權是多少?用於從mysqldump恢復的Mysql用戶權限
從MySQL官方網站:
的mysqldump需要傾倒表用於傾倒觸發至少SELECT權限,對傾倒的觀點 SHOW視圖,觸發器和LOCK TABLES 如果--single -transaction選項不使用。某些選項 可能需要其他權限,如選項說明中所述。
--single事務
該選項設置事務隔離模式重複讀和可 傾銷 數據之前發送一個START TRANSACTION SQL語句到服務器。它僅適用於諸如InnoDB, 之類的事務表,因爲那樣在發出START TRANSACTION而不阻止任何應用程序時,它會在時間 處轉儲數據庫的一致狀態。
總之,權限是:
這是不可能的將未經修改的完整轉儲文件恢復到沒有SUPER
權限的MySQL服務器。
「root」用戶不是神奇的用戶。它恰好是默認創建的用戶,並具有GRANT ALL PRIVILEGES ON *.* ... WITH GRANT OPTION
。另一個用戶可以被賦予相同的權限。
從本質上說,恢復數據庫意味着刪除服務器上的所有內容,並將其替換爲其他內容,包括所有用戶帳戶,因此需要使用SUPER
。
如果對轉儲文件進行了某些修改,例如刪除所有DEFINER
語句以及修改mysql模式的處理方式,則可以使用更多有限權限,但這些修改是帶有系統特定注意事項的高級主題。
我已經開始使用SUPER
,INSERT
,& ALTER
並嘗試重複添加新的,直到恢復成功。
這是我已經結束了:
SUPER
ALTER
INSERT
CREATE
DROP
LOCK TABLES
REFERENCES
SELECT
如果你有程序和觸發器,那麼你就需要這兩個額外的:
CREATE ROUTINE
TRIGGER
希望這有助於。
問題是關於恢復,而不是傾銷。 –
@ Michael-sqlbot感謝您指出,我沒有注意到這一點。 – lulyon