2011-12-28 14 views
60

(トリガーが!!欠けている)私は、MySQLのユーザーは、以下のパーマでダンプと呼ばれています:完全なスキーマをダンプするためにmysqldumpに必要な最小限のGRANT?

GRANT USAGE ON *.* TO 'dump'@'%' IDENTIFIED BY ... 
GRANT SELECT, LOCK TABLES ON `mysql`.* TO 'dump'@'%' 
GRANT SELECT, LOCK TABLES ON `myschema`.* TO 'dump'@'%' 

は、私はすべてのデータをダンプしたいダンプユーザーを使用して(トリガーや手順を含みます)。私は、次のようにmysqldumpをを呼び出す:

mysqldump -u dump -p --routines --triggers --quote-names --opt \ 
    --add-drop-database --databases myschema > myschema.sql 

すべては、彼らがが欠落している、トリガを除きダンプファイルを使用してOKです!

mysqldump -u root -p --routines --triggers --quote-names --opt \ 
    --add-drop-database --databases myschema > myschema.sql 

だから、私は...それはパーマの問題だと思い余分な助成金は、私のダンプ MySQLを何:私はルート MySQLユーザーとのmysqldumpをしようとした場合

トリガ

は正しくダンプされます完全なダンプを正しく行うためのユーザーニーズ

答えて

83

あなたもVIEW sおよびEVENT秒を意味する完全なダンプであると仮定すると、あなたが必要になります。

私自身の問題は、なぜデータなしのダンプだけを作成したいのですが、SELECTが必要なのですか?

+1

5.5以降では、トリガーコードをダンプするのにTRIGGER権限は実際には必要ありません。 – bluecollarcoder

+1

私は5.5を使用しており、トリガーコードをダンプするためにTRIGGER特権が必要でした。 – heuri

+0

私の場合、私は自分自身をダンプしようとしているデータベースに 'LOCK TABLES'も必要です...' 5.5.49-MariaDB'を使って – 0xC0000022L

7

私は必要な余分なグラントを見つけました!ここで

GRANT TRIGGER ON `myschema`.* TO 'dump'@'%' 

あなたは、公式ドキュメントの参照を持っている:http://dev.mysql.com/doc/refman/5.5/en/privileges-provided.html#priv_trigger

TRIGGER権限は、トリガー操作を可能にします。そのテーブルのトリガーを作成、削除、または実行するには、この特権が必要です。

GRANT USAGE ON *.* TO 'dump'@'%' IDENTIFIED BY ...; 
GRANT SELECT, LOCK TABLES ON `mysql`.* TO 'dump'@'%'; 
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON `myschema`.* TO 'dump'@'%'; 

を、あなたが関数を実行VIEW秒を持っている場合は、残念ながらあなたもEXECUTEが必要です

+3

を説明するように、これは作者の問題への答え、それが質問に答えていない場合でも – thenickdude

+0

をトリガしませんフルダンプ "。 1つ:EVENTとSHOW VIEWがありません。 – Jannes

+0

5.5以降では、実際にはトリガコードをダンプするための 'TRIGGER'権限は必要ありません。 – bluecollarcoder

1

VIEW DEFINERユーザーが存在しない場合、ダンプが失敗することがあります。 「実行する最小GRANT要件は何ですか:

変更して、名前が実際TRIGGERあるthere

+0

なぜこれが落ちて投票されたのか分かりません。私は定義者を 'person @ localhost'ではなく' person'として指定しました。ありがとう! – stianlik

関連する問題