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 'ユーザー名'@'ホスト名' |
+---------------------------------------------------------------+