MySQL: phpMyAdminを使ってユーザーを作成し、権限を付与する方法
MySQLデータベースに対する全ての権限を付与する方法
このチュートリアルでは、MySQLデータベースに対する全ての権限をユーザーに付与する方法を解説します。
対象者
- MySQLデータベースを管理するユーザー
- ユーザー権限の管理方法を理解したいユーザー
前提条件
- MySQLサーバーがインストールされている
- MySQLデータベースへのアクセス権を持つユーザー
手順
コマンドラインツールの起動
ターミナルまたはコマンドプロンプトを起動し、MySQLサーバーに接続します。
mysql -u root -p
上記のコマンドで、root
ユーザーとしてMySQLサーバーに接続します。パスワードはプロンプトで入力します。
ユーザーの作成
まだ存在しない場合は、権限を付与するユーザーを作成します。
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
上記のコマンドで、username
という名前のユーザーを作成し、パスワードをpassword
に設定します。localhost
は、ユーザーが接続できるホストを指定します。
権限の付与
以下のコマンドで、ユーザーにデータベースに対する全ての権限を付与します。
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
上記のコマンドで、username
ユーザーにdatabase_name
データベースに対する全ての権限を付与します。
オプション
- 特定の権限のみを付与したい場合は、
ALL PRIVILEGES
ではなく、必要な権限を個別に指定します。 - 権限を付与する対象を特定のテーブルやカラムに限定したい場合は、
database_name.*
ではなく、対象となるテーブルやカラムを指定します。
設定の確認
以下のコマンドで、ユーザーに付与されている権限を確認できます。
SHOW GRANTS FOR 'username'@'localhost';
権限の種類
MySQLでは、以下の種類の権限があります。
- グローバル権限: サーバー全体に対する権限
- データベース権限: 特定のデータベースに対する権限
- テーブル権限: 特定のテーブルに対する権限
補足
- このチュートリアルでは、MariaDBにも適用できます。
- 権限の付与は慎重に行い、必要以上の権限を付与しないようにしてください。
注意
- 上記のコマンドは、MySQL 8.0をベースにしています。他のバージョンのMySQLでは、コマンドの構文が異なる場合があります。
改善点
- 権限の種類の説明を追加しました。
- 参考情報に、MariaDBに関する情報も追加しました。
-- ユーザーの作成
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
-- データベースに対する全ての権限の付与
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
-- 設定の確認
SHOW GRANTS FOR 'username'@'localhost';
解説
CREATE USER
ステートメントは、ユーザーを作成します。GRANT
ステートメントは、ユーザーに権限を付与します。
例
-- ユーザーの作成
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
-- データベースに対する全ての権限の付与
GRANT ALL PRIVILEGES ON mydb.* TO 'username'@'localhost';
-- 設定の確認
SHOW GRANTS FOR 'username'@'localhost';
MySQLデータベースに対する全ての権限を付与する他の方法
MySQL Workbench は、MySQLデータベースを管理するためのGUIツールです。
- MySQL Workbench を起動し、接続情報を入力してサーバーに接続します。
- 左側のナビゲーションツリーで、Users を展開します。
- Create User をクリックします。
- ユーザー名、パスワード、ホストなどの情報を入力します。
- Schema Privileges タブで、All privileges を選択します。
- Apply をクリックして、ユーザーを作成し、権限を付与します。
phpMyAdmin は、WebブラウザからMySQLデータベースを管理するためのツールです。
- Webブラウザで phpMyAdmin にアクセスします。
- 左側のメニューで、Privileges をクリックします。
- Database セクションで、All privileges を選択します。
GRANT ステートメントを使用して、コマンドラインからユーザーに権限を付与することができます。
- 以下のコマンドを実行します。
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
コマンド解説
GRANT
: 権限を付与するステートメントALL PRIVILEGES
: 全ての権限database_name
: 権限を付与するデータベース名.*
: データベース内の全てのオブジェクトTO
: 権限を付与するユーザー@
: ユーザーのホスト
注意事項
- 上記の方法はいずれも、MySQL 5.7 以降で使用できます。
mysql mariadb mysql-error-1142