第2章MySQLの運営
index--TOP--prevpage
MySQLが提供する権限

MySQLの権限には、テーブルへのデータ挿入・削除や、更新などがある。権限の設定はmysqlデータベースのuser、db、host、tables_priv、columns_privで行う。下記のテーブルを参照してほしい。
権限ColumnContext
selectSelect_privtables
insertInsert_privtables
updateUpdate_privtables
deleteDelete_privtables
indexIndex_privtables
alterAlter_privtables
createCreate_privdatabases,tables/indexes
dropDrop_privdatabases/tables
grantGrant_privdatabases/tables
reloadReload_privserveradministration
shutdownShutdown_privserveradministration
processProcess_privserveradministration
fileFile_privfileaccessonserver


・select,insert,update,deleteの権限は、存在しているデータベースのテーブルに対して許可される。
・select権限はテーブルから行を取り出すことができる。
・index権限はインデックスの作成と破棄(削除)を許可する。
・alter権限はALTERTABLEの実行を許可する。
・createとdrop(※1)権限は、新しいデータベースやテーブルの作成、あるいは既に存在するデータベース、テーブルの破棄(削除)を許可する。
・grant権限は、他のユーザーに対して自分の権限を持たせる事を許可する。
・fileの権限を与えると、LOADDATAINFILEとSELECT...INTOOUTFILE構文を使用して、サーバーのファイルを読み書きする事ができる。


※mysqlデータベースに登録されているユーザーにdrop権限を与えると、そのユーザーはMySQLのアクセス権限が格納されているデータベースを破棄できます

管理者操作に関する許可

残りの権限は管理者操作に関する許可だ。この権限により、mysqladminコマンドの実行権が設定される。mysqladminコマンドのどれが、どの権限に対応しているかは次の表の通り。
権限コマンド
reloadreload,refresh,flush-privileges,flush-hosts,flush-logs,flush-tables
shutdownshutdown
processprocesslist,kill


各コマンドの詳細

・reloadはサーバーに権限の設定を再読込させるように伝える。
・refreshコマンドは全てのテーブルをフラッシュし、ログファイルを開き直す。
・flush-privilegesはreloadと同義。
・その他のflush-・コマンドはrefreshの動作とよく似ているが、適用範囲を絞っており、ちょっとした場合に有効だ。例えば、ログファイルだけをフラッシュしたい場合、refreshを行うよりもflush-logsが効果的な方法だ。
・shutdownコマンドは、。
・processlistコマンドはサーバーが実行しているスレッドの情報を表示する。killコマンドはサーバーのスレッドをkillする。自分のスレッドは常に表示、killできるが、他人のスレッドをそうするにはprocess権限が必要だ。