MySQL Workbenchを使ってユーザーを作成し、データベースへのアクセス権を設定する方法
MySQLで新しいユーザーを作成し、1つのデータベースへのフルアクセス権を与える方法
概要
手順
-
MySQLにログイン
-
新しいユーザーを作成
以下の
CREATE USER
コマンドを使用して、新しいユーザーを作成します。CREATE USER 'ユーザー名'@'ホスト名' IDENTIFIED BY 'パスワード';
ユーザー名
: 新しいユーザーの名前ホスト名
: ユーザーが接続するホスト名。localhost
を指定すると、ローカルホストからの接続のみ許可されます。パスワード
: ユーザーのパスワード
-
データベースへのアクセス権を付与
以下の
GRANT
コマンドを使用して、新しいユーザーに特定のデータベースへのフルアクセス権を付与します。GRANT ALL PRIVILEGES ON データベース名.* TO 'ユーザー名'@'ホスト名';
データベース名
: フルアクセス権を付与するデータベースの名前.*
: データベース内のすべてのテーブルへのアクセス権を付与します。ALL PRIVILEGES
: データベースに対するすべての権限を付与します。
-
権限の変更を反映
FLUSH PRIVILEGES;
例
以下の例は、testuser
という名前の新しいユーザーを作成し、mydb
データベースへのフルアクセス権を与える方法を示しています。
# 新しいユーザーを作成
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
# データベースへのアクセス権を付与
GRANT ALL PRIVILEGES ON mydb.* TO 'testuser'@'localhost';
# 権限の変更を反映
FLUSH PRIVILEGES;
注意点
ALL PRIVILEGES
コマンドを使用すると、ユーザーにデータベースに対するすべての権限が与えられます。必要最低限の権限のみを付与するようにしてください。GRANT
コマンドには、さまざまなオプションがあります。詳細は、MySQLの公式ドキュメントを参照してください。
補足
- MySQL WorkbenchなどのGUIツールを使用すると、コマンドラインよりも簡単にユーザーを作成して権限を設定することができます。
- ユーザーを作成する前に、ユーザー名とパスワードのセキュリティ要件を確認してください。
新しいユーザーを作成し、1つのデータベースへのフルアクセス権を与える
# 新しいユーザーを作成
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
# データベースへのアクセス権を付与
GRANT ALL PRIVILEGES ON mydb.* TO 'testuser'@'localhost';
# 権限の変更を反映
FLUSH PRIVILEGES;
特定のテーブルへのアクセス権を与える
# テーブルへのSELECT、INSERT、UPDATE、DELETE権限を付与
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.mytable TO 'testuser'@'localhost';
特定の権限のみを与える
# データベースへのSELECT権限のみを付与
GRANT SELECT ON mydb.* TO 'testuser'@'localhost';
複数のユーザーに権限を与える
# 複数のユーザーに同時に権限を与える
GRANT ALL PRIVILEGES ON mydb.* TO 'testuser1'@'localhost', 'testuser2'@'localhost';
新しいユーザーを作成し、1つのデータベースへのフルアクセス権を与える他の方法
MySQL Workbenchを使用する
- MySQL Workbenchを起動し、MySQLサーバーに接続します。
- ナビゲーションパネルで ユーザー を選択します。
- ユーザー タブで 追加 をクリックします。
- ユーザー名、ホスト名、パスワード を入力します。
- 権限 タブで データベース を選択します。
- 追加 をクリックして、アクセス権を与えるデータベースを選択します。
- OK をクリックして、ユーザーを作成します。
GRANT OPTION
権限を持つユーザーは、他のユーザーに権限を付与することができます。
GRANT OPTION
権限をユーザーに付与します。
GRANT GRANT OPTION ON mydb.* TO 'testuser'@'localhost';
- ユーザーが他のユーザーに権限を付与します。
GRANT SELECT ON mydb.mytable TO 'newuser'@'localhost' BY 'testuser'@'localhost';
注意事項
- GUIツールを使用する場合、ツールのバージョンによって操作方法が異なる場合があります。
GRANT OPTION
権限は強力な権限です。必要最低限の権限のみを付与するようにしてください。
sql mysql database