SQL GRANTステートメントを使ってMySQLユーザーアカウントを設定する方法
MySQLでは、CREATE USERステートメントを使用しなくても、SQLのGRANTコマンドだけでユーザーアカウントを新規作成し、同時に権限を付与することができます。ここでは、具体的な例を使ってその手順を解説します。
GRANTステートメントによるユーザー作成の例
この例では、TUTORIALSというデータベースに対して、パスワードzara123を持つユーザーZaraを追加します。
root@host# mysql -u root -p password;
Enter password:*******
mysql> use mysql;
Database changed
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON TUTORIALS.*
-> TO 'zara'@'localhost'
-> IDENTIFIED BY 'zara123';
各項目の意味
- SELECT, INSERT, UPDATE, DELETE, CREATE, DROP:このユーザーに与える権限の一覧です。データの参照・追加・更新・削除、およびテーブルの作成・削除が可能になります。
- ON TUTORIALS.*:権限を適用する対象です。この場合、TUTORIALSデータベース内のすべてのテーブルが対象となります。
- TO 'zara'@'localhost':作成するユーザー名と接続元ホストを指定します。ここではローカルホストからの接続に限定しています。
- IDENTIFIED BY 'zara123':ユーザーのログインパスワードを設定します。
実行結果について
上記のステートメントを実行すると、指定されたユーザーが存在しない場合は自動的にアカウントが作成され、MySQLデータベース内のuserテーブルに新しいエントリが登録されます。つまり、GRANTステートメントは「ユーザーの作成」と「権限の付与」を一度に行える便利なコマンドなのです。
-
MySQLでprintステートメントをシミュレートする方法|SELECT文を使った文字列・数値の出力
MySQLには、他のプログラミング言語のようなprintステートメントが用意されていません。しかし、SELECT文を活用することで、同じように値を画面に出力できます。デバッグや動作確認の際に非常に便利なテクニックなので、ぜひ覚えておきましょう。基本的な構文MySQLでprintのように出力するには、以下の構文を使用します。SELECT 任意の文字列や数値 AS ;AS の部分は列名(エイリアス)を空にする指定です。これにより、余計な列名を表示せずに出力結果だけを見やすくすることができます。ケース1:文字列を出力するまず、文字列を出力する基本例を確認してみましょう。mysql> SEL
-
MySQLでユーザーに全ストアドプロシージャへのアクセス権限を付与する方法
MySQLですべてのストアドプロシージャへのアクセス権限をユーザーに許可する手順MySQLでは、GRANT EXECUTE 構文を使用することで、特定のユーザーに対してデータベース内のすべてのストアドプロシージャ(およびストアドファンクション)を実行する権限を簡単に付与できます。ここでは、その具体的な手順を順を追って解説します。ステップ1:現在登録されているユーザーの確認まず、mysql.user テーブルから既存のユーザーとホストの一覧を表示して確認しましょう。mysql> SELECT user, host FROM mysql.user;このクエリを実行すると、次のような出力が得ら