mysqldumpするための権限

mysqldumpができるユーザーの権限について調べました。
というのも、初めはデータベースを選択してテーブル一覧を参照することができれば、そのユーザーとパスワードでdumpファイルが取得できると勘違いしていたため、備忘録として残しておきます。

mysqldumpを使用する際に必要な権限

①SELECT権限:データを読みとるために必要。
②LOCK TABLES権限:テーブルをロックして、一貫性のあるバックアップを作成するために必要です(特にトランザクションのあるデータベースの場合)
③SHOW VIEW権限(オプション):もしビューもバックアップする場合は必要。

上記については

SHOW GRANTS FOR 'ユーザー名'@'ホスト名';

のコマンドで

+------------------------------------------------------------------+
| Grants for ユーザー名@ホスト名                                    |
+------------------------------------------------------------------+
| GRANT SELECT ON データベース名.* TO 'ユーザー名'@'ホスト名'   |
| GRANT LOCK TABLES ON データベース名.* TO 'ユーザー名'@'ホスト名' |
| GRANT SHOW VIEW ON データベース名.* TO 'ユーザー名'@'ホスト名' |
+------------------------------------------------------------------+

というように表示され、SELECTとLOCK TABLESの権限があるかどうかを確認する。
また、全権限がある、と表示されることもある。その場合は以下のようになる。

+---------------------------------------------------------------+
| Grants for ユーザー名@ホスト名                                 |
+---------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'ホスト名'       |
+---------------------------------------------------------------+

この記事を書いた人