somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【MySQL】権限の設定

今までよくわからずに権限の設定をしていたので簡単にメモしておきます

権限の適用範囲

適用範囲には以下の5つがあります。

グローバル レベル
以下に示す4つの範囲を扱える
データベース レベル
特定のデータベースを扱える
テーブル レベル
特定のデータベースの特定テーブルを扱える
カラム レベル
特定のデータベースの特定テーブルのカラム単位で扱える
ルーチン レベル
ファンクションとプロシージャを扱える(グローバルとデータベース レベルらしい)

上記以外にもデータベースへのアクセス制限もできます。

権限の設定

ルーチン レベル以外の設定例です。

# グローバル と データベースへのアクセスをローカルからのみに制限(権限を与えるプションつき)
grant all privileges on *.* to 'root'@'localhost' with grant option
# test_databaseデータベースのみを扱えるユーザの作成
grant all privileges on test_database.* to 'test_user' identified by 'test_pass'
# テーブル と テーブルに対する操作を読み書きのみに制限
grant select, insert, update, delete on test_database.test_table to 'test_user'
# 2つのカラムのみ参照できるように制限
grant select(test_id), select(test_name) privileges on test_database.test_table to 'test_user'

参考