mysqldumpができるユーザーの権限について調べました。
というのも、初めはデータベースを選択してテーブル一覧を参照することができれば、そのユーザーとパスワードでdumpファイルが取得できると勘違いしていたため、備忘録として残しておきます。
mysqldumpを使用する際に必要な権限
①SELECT権限:データを読みとるために必要。
②LOCK TABLES権限:テーブルをロックして、一貫性のあるバックアップを作成するために必要です(特にトランザクションのあるデータベースの場合)
③SHOW VIEW権限(オプション):もしビューもバックアップする場合は必要。
上記については
1 |
SHOW GRANTS FOR 'ユーザー名'@'ホスト名'; |
のコマンドで
1 2 3 4 5 6 7 |
+------------------------------------------------------------------+ | Grants for ユーザー名@ホスト名 | +------------------------------------------------------------------+ | GRANT SELECT ON データベース名.* TO 'ユーザー名'@'ホスト名' | | GRANT LOCK TABLES ON データベース名.* TO 'ユーザー名'@'ホスト名' | | GRANT SHOW VIEW ON データベース名.* TO 'ユーザー名'@'ホスト名' | +------------------------------------------------------------------+ |
というように表示され、SELECTとLOCK TABLESの権限があるかどうかを確認する。
また、全権限がある、と表示されることもある。その場合は以下のようになる。
1 2 3 4 5 |
+---------------------------------------------------------------+ | Grants for ユーザー名@ホスト名 | +---------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'ホスト名' | +---------------------------------------------------------------+ |