MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでユーザーを作成する方法|CREATE USERとGRANTコマンドの使い方を解説

MySQLでは、CREATE USERコマンドを使うことで、新しいユーザーとパスワードを簡単に作成できます。さらに、GRANTコマンドを組み合わせれば、特定のデータベースへのアクセス権限を付与することも可能です。本記事では、ユーザー作成から権限付与、作成結果の確認までの手順を順番に解説します。

1. ユーザー作成の基本構文(CREATE USER)

まず、CREATEコマンドを使用してユーザー名とパスワードを設定します。基本構文は以下の通りです。

CREATE USER 'yourUserName'@'localhost' IDENTIFIED BY 'yourPassword';

2. 権限を付与する基本構文(GRANT)

続いて、特定のデータベースに対するすべての権限をユーザーに付与する構文は以下の通りです。

GRANT ALL PRIVILEGES ON yourDatabaseName.* TO 'yourUserName'@'localhost';

それでは、上記の構文を実際に実行して、ユーザーの作成と権限の付与を行ってみましょう。

ステップ1:ユーザーを作成する

ユーザー「Adam Smith」をパスワード付きで作成するクエリは以下のようになります。

mysql> create user 'Adam Smith'@'localhost' IDENTIFIED BY 'Adam123456';
Query OK, 0 rows affected (0.29 sec)

「Query OK」と表示されれば、ユーザーの作成は成功です。

ステップ2:ユーザーにすべての権限を付与する

次に、データベース「test」に対する全権限を先ほど作成したユーザーに付与します。クエリは以下の通りです。

mysql> GRANT ALL PRIVILEGES ON test.* TO 'Adam Smith'@'localhost';
Query OK, 0 rows affected (0.19 sec)

3. ユーザーが作成されたか確認する方法

ユーザーが正しく作成されているかどうかを確認するには、MySQL.userテーブルを参照します。確認用のクエリは以下の通りです。

mysql> select user,host from MySQL.user;

実行すると、以下のような出力が得られます。

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| Manish           | %         |
| User2            | %         |
| mysql.infoschema | %         |
| mysql.session    | %         |
| mysql.sys        | %         |
| root             | %         |
| Adam Smith       | localhost |
| User1            | localhost |
| am               | localhost |
+------------------+-----------+
9 rows in set (0.00 sec)

上記の出力例を見ると、「Adam Smith」というユーザーがホスト「localhost」としてMySQL.userテーブルに登録されていることが確認できます。これで、ユーザー作成と権限付与が正しく完了したことがわかります。

まとめ

MySQLでのユーザー管理は、CREATE USERでユーザーを作成し、GRANTで必要な権限を付与するという2段階の流れが基本です。作成後はMySQL.userテーブルをSELECTすることで、登録状況を簡単にチェックできます。権限の範囲を適切に設定することで、セキュアなデータベース運用につながりますので、用途に応じて権限レベルを調整することをおすすめします。

  1. MySQLのUNHEX()に相当するPHP関数とは?hex2bin()の使い方を解説

    PHPにおけるMySQLのUNHEX()相当の関数MySQLのUNHEX()関数と同じ処理をPHPで行いたい場合は、hex2bin()関数を使用します。この関数は、16進数形式の文字列をバイナリデータ(元の文字列)に変換するもので、まさにMySQLのUNHEX()に相当する機能を持っています。hex2bin()の基本構文構文は以下の通りです。$anyVariableName = hex2bin(yourHexadecimalValue);引数には16進数の文字列を指定し、戻り値として変換後のバイナリデータが返されます。PHPでの実装例実際にhex2bin()を使用したサンプルコードを見てみまし

  2. MySQLでCHAR()関数の逆の処理を行う方法|ASCII()とORD()の違いを解説

    MySQLにおいて、CHAR()関数の逆の働きをするのは ASCII() 関数と ORD() 関数です。CHAR() は数値(文字コード)を文字に変換する関数ですが、ASCII() は引数の文字列の左端の文字に対応する数値(ASCIIコード)を返し、ORD() は左端の文字の文字コードを返します。 ASCII()とORD()の違い どちらも文字から数値への変換を行う点は共通していますが、以下のような違いがあります。 ASCII():シングルバイト文字専用。マルチバイト文字を渡すと警告が出て64を返します。 ORD():マルチバイト文字にも対応しており、最初のバイトの値に基づいて計算された文字