権限設定のオプション

広告

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

p7-1

現時点での権限は次のように表示されます。

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 )