ここでは弊社の新人エンジニア研修の参考にユーザー権限の付与について解説します。MySQLをインストールすると作成されるrootユーザーはスーパーユーザーとも呼ばれ強力な権限を持っています。

rootユーザーは、全てのデータベースとその中の全てのテーブルに対してフルアクセス権を持っています。そのため、データベースの作成、変更、削除、ユーザーの作成、ユーザー権限の管理など、MySQLデータベースシステム上で可能な全ての操作を実行できます。

もしも、rootユーザーの認証情報が漏洩すれば、攻撃者はデータベースシステムを自由に操作でき、データの変更や削除を行うことが可能になります。また、そこまで行かなくてもうっかり設定を誤ってしまうと、重要なデータを失う恐れもあります。

そのため、必要な時だけrootユーザーを使い、その他の時は権限の範囲を制限したユーザーを使うようにします。また、rootユーザーの使用は開発環境やテスト環境で主に行われ、本番環境では通常は限定された権限を持つユーザーを作成して使用すべきです。

MySQL Workbenchを使う方法

  • データベースに接続するための新しい接続を作成するか、既存の接続を選択します。接続を選択するには、「SQL Development」または「MySQL Connections」タブをクリックします。
  • 接続が確立されたら、ツールバーの「Server」メニューから「Users and Privileges」を選択します。
  • 「Users and Privileges」ウィンドウが開きます。ウィンドウの下部にある「Add Account」ボタンをクリックします。
  • 「Create User Account」ウィンドウが表示されます。必要な情報を入力します。
  • 「Login Name」:ユーザーのログイン名を入力します。
  • 「Limit to Hosts Matching」:ユーザーが接続できるホストを指定する場合に入力します。通常はデフォルトのままにしておきます。
  • 「Password」:ユーザーのパスワードを入力します。
  • 「Retype Password」:パスワードをもう一度入力して確認します。
  • 「Account Limits」:必要に応じてアカウントの制限を設定します。
  • 必要な情報を入力したら、「Apply」ボタンをクリックしてユーザーアカウントを作成します。
  • ユーザーアカウントが作成されると、そのユーザーの特権を設定するための「Administrative Roles」タブが表示されます。必要な特権を選択し、「Apply」ボタンをクリックして特権を設定します。
  • 特権の設定が完了したら、「Apply」ボタンをクリックして変更を保存します。

コマンドを使う方法

MySQLのコマンドを使用しユーザーを作成し、権限を付与する方法は以下の通りです。

1.MySQLにrootユーザーとしてログインします。

mysql -u root -p

2.ユーザーを作成します。以下のコマンドを使用します。

CREATE USER 'ユーザー名'@'ホスト' IDENTIFIED BY 'パスワード';

ここで、

  • 'ユーザー名'は新しいユーザーの名前を指定します。
  • 'ホスト'は新しいユーザーが接続を許可されるホストを指定します。通常はローカルホスト(localhost)を指定します。
  • 'パスワード'は新しいユーザーのパスワードを指定します。

たとえば、新しいユーザー名が「newuser」、ホストが「localhost」、パスワードが「0」とすると、以下のようになります。

CREATE USER 'newuser'@'localhost' IDENTIFIED BY '0';

3.ユーザーに権限を付与します。以下のコマンドを使用します。

GRANT 権限 ON データベース名.* TO 'ユーザー名'@'ホスト';

ここで、

  • '権限'はユーザーに付与する権限を指定します。例えば、すべての権限を付与する場合は「ALL PRIVILEGES」とします。
  • 'データベース名'はユーザーに権限を付与するデータベースの名前を指定します。すべてのデータベースに対して権限を付与する場合は「*」とします。

たとえば、新しいユーザー「newuser」にすべての権限を付与する場合は、以下のようになります。

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';

4.変更内容を反映させるために、以下のコマンドを実行します。

FLUSH PRIVILEGES;

以上、MySQLで新しいユーザーを作成し、権限を付与する方法でした

最後までお読みいただきありがとうございます。