MySQL ユーザー権限の管理

MySQLBeginner
オンラインで実践に進む

はじめに

このプロジェクトでは、MySQL データベースでユーザー権限を管理する方法を学びます。具体的には、新しいローカルユーザー「Rong」を作成し、performance_schema データベースへのアクセス権を付与します。

👀 プレビュー

MariaDB [(none)]> SHOW GRANTS FOR Rong@localhost;
+-------------------------------------------------------------------------------------------------------------+
| Grants for Rong@localhost                                                                                   |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `Rong`@`localhost` IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT ON `performance_schema`.* TO `Rong`@`localhost`                                                |
+-------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)

🎯 タスク

このプロジェクトでは、以下を学びます。

  • MySQL サーバーを起動し、MySQL ターミナルにログインする方法
  • 特定のパスワードで新しいローカルユーザーを作成する方法
  • 特定のデータベースとそのテーブルへのユーザーアクセス権を付与する方法

🏆 成果

このプロジェクトを完了すると、以下のことができるようになります。

  • MySQL データベースでユーザーアカウントと権限を管理する
  • ユーザーに対するデータベースアクセスの付与と取り消しのプロセスを理解する
  • 独自の MySQL ベースのアプリケーションでユーザー権限を設定するためにこれらのスキルを適用する

MySQL を起動してログインする

このステップでは、MySQL サーバーを起動し、MySQL ターミナルにログインする方法を学びます。

  1. システム上のターミナルを開きます。

  2. 次のコマンドを実行して MySQL サービスを起動します。

    sudo /etc/init.d/mysql start
    
  3. MySQL ターミナルにログインします。

    mysql -uroot
    

    これで MySQL ターミナルに入っており、MySQL コマンドを入力できるようになります。

ローカルユーザーを作成する

このステップでは、パスワード「123456」で新しいローカルユーザー「Rong」を作成する方法を学びます。

  1. ~/project ディレクトリに manUser.sql ファイルを作成します。

  2. ユーザーを作成するために、次のコードをファイルに追加します。

    CREATE USER 'Rong'@'localhost' IDENTIFIED BY '123456';
    

    これにより、パスワード「123456」で新しいユーザー「Rong」が作成され、ローカルマシン(localhost)からのログインが許可されます。

performance_schema へのアクセス権を付与する

このステップでは、「Rong」ユーザーに performance_schema データベースへのアクセス権を付与する方法を学びます。

  1. manUser.sql ファイルを開きます。

  2. 前のステップで追加したコードの後に必要な権限を付与します。

    GRANT SELECT ON performance_schema.* TO 'Rong'@'localhost';
    

    これにより、「Rong」ユーザーに performance_schema データベースのすべてのテーブルに対する SELECT 権限が付与されます。

  3. 最後に、特権をフラッシュして変更を有効にします。

    FLUSH PRIVILEGES;
    

ソリューションを検証する

  1. MySQL プロンプトで SQL スクリプトを実行します。
SOURCE /home/labex/project/manUser.sql;
  1. MySQL ターミナルで次のコマンドを実行して結果を検証します。
SHOW GRANTS FOR Rong@localhost;

これにより、「Rong」ユーザーの権限が表示され、performance_schema データベースに対する SELECT 権限も含まれます。

MariaDB [(none)]> SHOW GRANTS FOR Rong@localhost;
+-------------------------------------------------------------------------------------------------------------+
| Grants for Rong@localhost                                                                                   |
+-------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `Rong`@`localhost` IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT ON `performance_schema`.* TO `Rong`@`localhost`                                                |
+-------------------------------------------------------------------------------------------------------------+
2 rows in set (0.000 sec)

まとめ

おめでとうございます!このプロジェクトを完了しました。実力を向上させるために、LabEx でさらに多くの実験を行って練習してください。

✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習