SET DEFAULT ROLE
{NONE | ALL | role [, role ] ...}
TO user [, user ] ...
このステートメントは、TO
キーワードの直後に指定された user
ごとに、ユーザーがサーバーに接続して認証したとき、またはユーザーがセッション中に SET ROLE DEFAULT
ステートメントを実行したときにアクティブになる役割を定義します。
SET DEFAULT ROLE
は、ALTER USER ... DEFAULT ROLE
の代替構文です (セクション13.7.1.1「ALTER USER ステートメント」 を参照)。 ただし、ALTER USER
では単一のユーザーに対してのみデフォルトを設定できますが、SET DEFAULT ROLE
では複数のユーザーに対してデフォルトを設定できます。 一方、ALTER USER
ステートメントのユーザー名として CURRENT_USER
を指定できますが、SET DEFAULT ROLE
のユーザー名は指定できません。
SET DEFAULT ROLE
には、次の権限が必要です:
別のユーザーのデフォルトロールを設定するには、
mysql.default_roles
システムテーブルに対するグローバルCREATE USER
権限またはUPDATE
権限が必要です。自分のデフォルトロールを設定する場合、デフォルトとして必要なロールが付与されているかぎり、特別な権限は必要ありません。
各ロール名は、セクション6.2.5「ロール名の指定」 で説明されている形式を使用します。 例:
SET DEFAULT ROLE administrator, developer TO 'joe'@'10.0.0.1';
ロール名のホスト名部分は、省略すると'%'
にデフォルト設定されます。
DEFAULT ROLE
キーワードに続く句では、次の値が許可されます:
NONE
: デフォルトをNONE
(ロールなし) に設定します。ALL
: アカウントに付与されているすべてのロールにデフォルトを設定します。
: デフォルトを名前付きロールに設定します。このロールは、role
[,role
] ...SET DEFAULT ROLE
の実行時に存在し、アカウントに付与される必要があります。
SET DEFAULT ROLE
と SET ROLE DEFAULT
は異なるステートメントです:
SET DEFAULT ROLE
では、アカウントセッション内でデフォルトでアクティブ化するアカウントロールを定義します。SET ROLE DEFAULT
は、現在のセッション内のアクティブロールを現在のアカウントのデフォルトロールに設定します。
ロールの使用例は、セクション6.2.10「ロールの使用」 を参照してください。