権限設定のオプション
GRANT文を使って権限を設定する場合のオプションについて確認します。
GRANT OPTION
1つ目はGRANT OPTIONです。このオプションを設定すると他のユーザーに対する権限を設定することができるようになります。書式は次の通りです。
GRANT 権限 ON レベル TO user WITH GRANT OPTION;
GRANT OPTIONはレベル毎に設定することが可能です。そして他のユーザーに権限を与えることができる権限は、自分が与えられている権限だけです。
例えばデータベースレベルでSELECT権限が設定されているユーザーに、データベースレベルでWITH GRANT OPTIONを設定すると、他のユーザーに対してデータベースレベルでのSELECT権限を設定することが可能になります。
例として管理者である'root'@'localhost'ユーザーに設定されている権限を見てみます。
mysql> show grants for 'root'@'localhost'¥G
現時点での権限は次のように表示されます。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '****' WITH GRANT OPTION
'root'@'localhost'ユーザーはグローバルレベルに対して全ての権利が与えられており、そしてGRANT OPTIONが付いていますので全ての権限に関して他のユーザーに設定することが可能です。
MAX_QUERIES_PER_HOUR, MAX_UPDATES_PER_HOUR, MAX_CONNECTIONS_PER_HOUR
2つ目はMAX_QUERIES_PER_HOUR count、MAX_UPDATES_PER_HOUR count、そして MAX_CONNECTIONS_PER_HOURです。これらのオプションは1時間ごとに行う処理数の制限を行います。書式は次の通りです。
GRANT 権限 ON レベル TO user WITH MAX_QUERIES_PER_HOUR count; GRANT 権限 ON レベル TO user WITH MAX_UPDATES_PER_HOUR count; GRANT 権限 ON レベル TO user WITH MAX_CONNECTIONS_PER_HOUR count;
MAX_QUERIES_PER_HOURは1時間の間にユーザが行う事ができるクエリ数を設定します。MAX_UPDATES_PER_HOURは1時間の間にユーザが行う事ができる更新数を設定します。MAX_CONNECTIONS_PER_HOURは1時間の間にユーザがログインできる回数を設定します。
MAX_USER_CONNECTIONS
3つ目はMAX_USER_CONNECTIONSです。このオプションは同時接続数の最大数を設定します。書式は次の通りです。
GRANT 権限 ON レベル TO user WITH MAX_USER_CONNECTIONS count;
この値に0を設定した場合は制限がなくなります。
( Written by Tatsuo Ikura )