2016-06-10 69 views
0

mysql db用戶使用mysqldump文件和恢復所需的最低特權是多少?用於從mysqldump恢復的Mysql用戶權限

  1. 在我的情況下,不能使用root數據庫用戶。
  2. 已使用mysqldump實用程序對轉儲文件中的所有模式進行了完全備份。
  3. 需要知道爲數據庫用戶(除root用戶以外的用戶)提供的最低必需特權,以便它可以用於從mysqldump文件恢復。

回答

-1

從MySQL官方網站:

的mysqldump需要傾倒表用於傾倒觸發至少SELECT權限,對傾倒的觀點 SHOW視圖,觸發器和LOCK TABLES 如果--single -transaction選項不使用。某些選項 可能需要其他權限,如選項說明中所述。

--single事務

該選項設置事務隔離模式重複讀和可 傾銷 數據之前發送一個START TRANSACTION SQL語句到服務器。它僅適用於諸如InnoDB, 之類的事務表,因爲那樣在發出START TRANSACTION而不阻止任何應用程序時,它會在時間 處轉儲數據庫的一致狀態。

總之,權限是:

  • 選擇(需要)
  • 鎖表(必須)
  • 節目的意見和觸發(可選)
+1

問題是關於恢復,而不是傾銷。 –

+0

@ Michael-sqlbot感謝您指出,我沒有注意到這一點。 – lulyon

2

這是不可能的將未經修改的完整轉儲文件恢復到沒有SUPER權限的MySQL服務器。

「root」用戶不是神奇的用戶。它恰好是默認創建的用戶,並具有GRANT ALL PRIVILEGES ON *.* ... WITH GRANT OPTION。另一個用戶可以被賦予相同的權限。

從本質上說,恢復數據庫意味着刪除服務器上的所有內容,並將其替換爲其他內容,包括所有用戶帳戶,因此需要使用SUPER

如果對轉儲文件進行了某些修改,例如刪除所有DEFINER語句以及修改mysql模式的處理方式,則可以使用更多有限權限,但這些修改是帶有系統特定注意事項的高級主題。

0

我已經開始使用SUPER,INSERT,& ALTER並嘗試重複添加新的,直到恢復成功。

這是我已經結束了:

  • SUPER
  • ALTER
  • INSERT
  • CREATE
  • DROP
  • LOCK TABLES
  • REFERENCES
  • SELECT

如果你有程序和觸發器,那麼你就需要這兩個額外的:

  • CREATE ROUTINE
  • TRIGGER

希望這有助於。