LoginSignup
123

More than 5 years have passed since last update.

MySQLへユーザー追加の手順 grant, revoke

Posted at

ユーザー作成: CREATE USER

CREATE USER '{username}'@"{from_domain(ipaddress)}" IDENTIFIED BY "{password}";

ex) 
CREATE USER 'watashi'@"192.168.%" IDENTIFIED BY "hoge";
CREATE USER 'watashi'@"172.21%" IDENTIFIED BY "hoge";

新規ユーザーの場合、↑をmysql.dbに流し込むと自動で、mysql.userにレコードが出来る。
このとき、権限はなんにもない状況。

権限の付与: GRANT

主な権限の種類

コマンド 内容
all / ALL PRIVIREGES 全ての権限を与える
create テーブルを作成する権限を付与する
alter テーブルを変更する権限を付与する
drop テーブルを削除する権限を付与する
index インデックスを作成/削除する権限を付与する
その他 select,update,insert,delete,truncate.... 各テーブル操作の権限を付与する

GRANT文の書き方

GRANT 権限 ON レベル(対象DB or Table) TO 対象ユーザー;

権限情報管理テーブル

テーブル名 説明
user ユーザーのグローバルレベルの権限とパスワードを管理するテーブル
db ユーザーのデータベースレベルの権限を管理するテーブル
host dbテーブルにホスト名が指定されていない場合に適用される権限を管理するためのテーブル
tables_priv ユーザーのテーブルレベルの権限を管理するテーブル
columns_priv ユーザーのフィールドレベルの権限を管理するテーブル

例文

GRANT SELECT, INSERT, UPDATE  ON hoge.* TO watashi@"192.168.%" IDENTIFIED BY "password";

意味

192.168.~のIPアドレスから、passwordというパスワードでアクセスしてきた、watashiというユーザーに、hogeというDB内へのすべてのリソースに、select/insert/updateをする権限を与える。

権限の削除

例文

REVOKE SELECT ON *.* FROM watashi@"192.168.%";

特定のユーザーからすべての権限を削除したい場合

REVOKE ALL PRIVILEGES, GRANT OPTION FROM watashi@"192.168.%";

GRANT, REVOKE実行後に行うこと

以下のコマンドを叩く

FLUSH PRIVILEGES;

パスワードの設定・変更

書式

SET PASSWORD FOR {username}@"{from_ip_domain}"=PASSWORD('{password}');

例文

SET PASSWORD FOR watashi@"192.168.%"=PASSWORD('watashi');

参考

http://dev.mysql.com/doc/refman/5.7/en/grant.html
http://dev.mysql.com/doc/refman/5.7/en/revoke.html
http://dev.mysql.com/doc/refman/5.7/en/grant-table-structure.html
http://www.dbonline.jp/mysql/user/index6.html
http://linux.kororo.jp/cont/server/mysql_user.php

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
123