LoginSignup
9
9

More than 5 years have passed since last update.

mysqlのユーザ管理

Posted at

過去メモの放流中。mysqlでユーザを管理する方法のまとめ。

参考:MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.5.1.3 GRANT 構文 :

ユーザの登録

 ユーザ登録には,GRANT文を用いる。

GRANT priv_type ON database.table TO user_name INDENTIFIED BY 'password';

priv_type

 作成するユーザの権限を設定する。コンマ区切りで複数指定することも可能。

priv_type description
ALL [PRIVILEGES] 一部を除く全てのシンプルな権限を設定します。
ALTER ALTER TABLE の使用を可能にします。
CREATE CREATE TABLE の使用を可能にします。
CREATE TEMPORARY TABLES CREATE TEMPORARY TABLE の使用を可能にします。
CREATE USER CREATE USER、DROP USER、RENAME USER、REVOKE ALL PRIVILEGES の使用を可能にします。
DELETE DELETE の使用を可能にします。
DROP DROP TABLE の使用を可能にします。
INSERT INSERTの使用を可能にします。
SELECT SELECT の使用を可能にします。
UPDATE UPDATE の使用を可能にします。
USAGE 「権限が無い」 の同義語です。

database.table

 権限を付与するデータベース名,テーブル名を指定する。ワイルドカード*が使用可能。

user_name

 user_nameの項には,後ろに@付きで続けることで,host_nameの指定も可能。コレによりホスト名に応じたアクセス権の供与が可能となる。引用符を用いる場合の書式は,’sample_name'@'localhost' のように@の前後でそれぞれクオートする。

 ホスト名にはワイルドカード%が利用可能。ユーザ名でのワイルドカードは不可で,匿名ユーザは空文字列で作成する。匿名ユーザにもホストの指定は可能。

’test_user1’@'%.mkkn.info' --mkkn.infoのサブドメイン全てにマッチ
'test_user2'@'192.168.0.%' --192.168.0.xxxの全IPにマッチ

password

 パスワードは平文で記述すれば,自動的にハッシュ化された値が登録されるよう。なお,SET PASSWORD構文で後からセットすることも可能。

 SET PASSWORD FOR user_name = PASSWORD(’password’);

ユーザの管理

ユーザ権限の削除

 REVOKE構文を用いて行う。

REVOKE ALL ON *.* FROM mkkn@localhost;

ユーザの削除

 ユーザ情報は,userという名前のテーブルから確認できる。列はいろいろあるが,表示,確認の際には以下のコマンドで十分だろう。

SELECT host, user, password FROM mysql.user;

ここから普通のテーブルと同様にDelete構文を実行すれば,ユーザを削除できる。

ユーザ権限情報の更新

 mysql.userテーブルに変更を加えた場合,必ず以下のコマンドを入力すること。

FLUSH PRIVILEGES;

これはDBのユーザ情報を更新する、という意味でコレを実行しないとDBに加えたユーザ除法の変更は反映されない。

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9