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

INSERT INTOステートメントでMySQLユーザーアカウントを作成する方法

MySQLへの新規ユーザー追加の基本

MySQLに新しいユーザーを追加するには、mysqlデータベース内のuserテーブルに新しいレコードを挿入します。ここでは、INSERT INTOステートメントを使った具体的な手順を例とともに解説します。

実行例

次の例では、SELECT・INSERT・UPDATE権限を持ち、パスワードが「guest123」である新しいユーザー「guest」を追加しています。実際に実行するSQLクエリは以下のとおりです。

root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changed

mysql> INSERT INTO user (host, user, password, select_priv, insert_priv,
update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y',
'Y');
Query OK, 1 row affected (0.20 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec)

mysql> SELECT host, user, password FROM user WHERE user = 'guest';
+-----------+---------+------------------+
| host      |    user |         password |
+-----------+---------+------------------+
| localhost |   guest | 6f8c114b58f2ce9e |
+-----------+---------+------------------+
1 row in set (0.00 sec)

PASSWORD()関数による暗号化を忘れずに

新しいユーザーを追加する際は、MySQLが提供するPASSWORD()関数を使って、必ずパスワードを暗号化してください。上記の例では、平文のパスワード「guest123」がハッシュ値「6f8c114b58f2ce9e」に変換されて格納されていることが確認できます。

FLUSH PRIVILEGESの役割

FLUSH PRIVILEGESステートメントは、サーバーに対して権限テーブル(grant tables)を再読み込みさせるためのコマンドです。このステートメントを実行しない場合、サーバーを再起動するまで、新しいユーザーアカウントでMySQLに接続できない点に注意しましょう。

注意:MySQL 5.7以降での非推奨について

なお、MySQL 5.7以降ではuserテーブルの「password」カラムが廃止され、「authentication_string」カラムへと変更されたため、INSERT INTOによる直接挿入の方法は非推奨となっています。最新バージョンでは、CREATE USER文やGRANT文を使用してユーザーを作成・権限付与する方法が推奨されています。

  1. JDBCを使ってMySQLデータベースにファイルを保存・挿入する方法

    一般的に、ファイルの内容はMySQLデータベースでは Clob 型(TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT)のカラムに保存されます。 JDBCはClob型をサポートしており、これを利用することでファイルの内容をデータベースのテーブルに格納できます。 PreparedStatement インターフェースが提供する setCharacterStream() メソッドは、パラメータのインデックス(位置)を表す整数と、Readerオブジェクトを引数として受け取ります。 このメソッドを使うと、指定したインデックスのプレースホルダ(?)に対して、Readerオブジェクト(ファイ

  2. Javaを使ってDATE型の値をMySQLカラムに挿入する方法【PreparedStatement活用】

    はじめに JavaからMySQLのDATE型カラムに日付データを挿入したい場合、PreparedStatementを使用するのが最も安全で推奨される方法です。SQLインジェクション対策にもなり、日付型の変換もスムーズに行えます。 本記事では、Javaプログラムから現在の日付をMySQLテーブルに挿入する手順を、サンプルコード付きでわかりやすく解説します。 1. サンプルテーブルの作成 まず、DATE型のカラム「ArrivalDate」を含むテーブルを作成します。以下はMySQLでの作成例です。 mysql> create table DemoTable( PassengerId