【MySQL】ユーザーの確認、作成方法、権限の付与方法
一般的にデータベースのユーザーと作成者は別になります。
扱える権限もそれぞれ変更したいことが多いです。
そのためにはユーザーを複数作成する必要があるので、ユーザーの確認と作成方法と権限の付与方法を紹介します。
現在ユーザーの確認
-- 現在ユーザーの確認
select user();
-- root@localhost
rootというのが、ユーザーです。
@の次の文字列は、接続可能なホスト名です。
rootを使ってログインするためには、localhostに接続する必要があります。
MySQLでは、上のように、ユーザー名とホスト名を対で管理します。
ユーザーの作成方法
-- ユーザーの作成方法
create user {ユーザー名}@{接続元のホスト名} identified by 'password';
create user 't_user'@'localhost' identified by 'pwd';
create userのあとに上で確認したユーザー名@ホスト名を記述します。
そして、パスワードを指定します。
データベースの接続時、認証の情報でユーザー名とパスワードを記載しますが、
(MAMPならroot、root)、上の場合、ユーザー名がt_userで、パスワードがpwdとすることで
接続することができます。
ユーザー一覧の確認方法
-- ユーザー一覧
select * from mysql.user;
上のコマンドを実行することでユーザー一覧を確認できます。
ユーザーの削除方法
-- ユーザーの削除
drop user 'test'@'%';
dropを使用します。
ユーザー権限の付与方法
-- grant {権限名} on {対象のデータベースオブジェクト} to {ユーザー};
-- selectの権限を付与
grant select on t_db.* to 't_user'@'localhost';
-- すべてのデータベースのすべてのオブジェクトに対してselectの権限を付与
grant select on *.* to 't_user'@'localhost';
-- updateとinsertの権限を付与
grant update, insert on t_db.* to 't_user'@'localhost';
-- createとalterの権限を付与
grant create, alter on t_db.* to 't_user'@'localhost';
-- すべての権限を付与
grant all on t_db.* to 't_user'@'localhost';
t_dbのすべてのオブジェクトへのアクセス権限を付与したいとき、
t_db.*と指定します。
テーブルごとに権限を付与することも可能ですが、
管理が煩雑になるので、基本的にはデータベースごとに権限を付与します。
ユーザー権限の確認方法
-- 権限の確認
show grants for t_user@localhost;
ユーザー権限の削除
-- 権限の削除
revoke all on t_db.* from 't_user'@'localhost';
revokeを使用することで権限を削除できます。