ユーザーの作成と削除と権限の変更
ユーザーの確認
MySQLデータベースに登録されているユーザーを確認する場合、
select カラム名 from mysql.user;
を入力するわけですが、ほとんど、
select user, host from mysql.user;
と入力してEnterキーを押せば事足りるかと。
これでユーザーの一覧と対応するホストが表示されます。
これでユーザーの一覧と対応するホストが表示されます。
MySQLのユーザーは、mysqlというデータベースのuserというテーブルに格納されるらしいです。
ユーザーの作成
rootユーザーはなんでもできて便利ですが、セキュリティの観点から、rootユーザーで別のユーザーを作成し、そのユーザーを利用してデータベースをいろいろ操作することが望ましいです。
新しいユーザーを作成するには、
create user ユーザー名 identified by 'パスワード';
と入力します。
具体例として、「db1」というデータベースにアクセスするために、「user1」というユーザーを作成するときは、
create user user1@db1 identified by 'user1';
と入力して実行します。
flush privileges;
も実行しておくと良いでしょう。
確認する場合は、
select user, host from mysql.user;
で一覧を表示することができます。
ちなみに、ユーザーの権限を変更するgrantというコマンドでもユーザーを作成することができます。
ユーザーの権限変更
ユーザーの権限を変更する場合は、
grant 権限 データベース名 to ユーザー名 identified by 'パスワード' [with grant option];
と入力します。
最後に[]で囲ってあるwith grant optionというのは、権限を変更できる権限を与える場合に記述するようです。grantコマンドは、ユーザーの作成も兼ね備えているようです。権限の付与・変更は難しいので、簡単なものを具体例として挙げます。
外部から接続可能な権限を与える
具体例として、「db1」のユーザーである「user1」にLANの同じセグメント(192.168.11.*)からのアクセスを許可する場合は、
grant all on db1.* to user1@"192.168.11.%" identified by 'user1';
と入力して実行します。
flush privileges;
も実行しておくと良いでしょう。
確認する場合は、
select user, host from mysql.user;
で一覧を表示することができます。
※外部PCからアクセスする方法は、こちら。
ユーザーの削除
ユーザーの削除は、
drop user ユーザー名;
で実行することができます。
具体例として、
drop user user1@"192.168.11.%";
と入力して実行します。
flush privileges;
も実行しておくと良いでしょう。
確認する場合は、
select user, host from mysql.user;
で一覧を表示することができます。
ただし、このままだと、「192.168.11.*」の「user1」を削除しただけで、「db1」の「user1」は残ったままです。
drop user user1@db1;
も実行し、「user1」を完全に削除する必要があります。