MySQL 8.0 リファレンスマニュアル


13.7.1.2 CREATE ROLE ステートメント

CREATE ROLE [IF NOT EXISTS] role [, role ] ...

CREATE ROLE では、権限の名前付きコレクションである 1 つ以上のロールが作成されます。 このステートメントを使用するには、グローバル CREATE ROLE または CREATE USER 権限が必要です。 read_only システム変数が有効になっている場合、CREATE ROLE にはさらに CONNECTION_ADMIN 権限 (または非推奨の SUPER 権限) が必要です。

作成されたロールはロックされ、パスワードがなく、デフォルトの認証プラグインが割り当てられます。 (これらのロール属性は、後で ALTER USER ステートメントを使用して、グローバル CREATE USER 権限を持つユーザーが変更できます。)

CREATE ROLE は、すべての名前付きロールに対して成功するか、ロールバックされ、エラーが発生しても効果はありません。 デフォルトでは、すでに存在するロールを作成しようとするとエラーが発生します。 IF NOT EXISTS 句が指定されている場合、ステートメントは、エラーではなく、すでに存在する名前付きロールごとに警告を生成します。

ステートメントが成功した場合はバイナリログに書き込まれますが、失敗した場合は書き込まれず、ロールバックが発生して変更は行われません。 バイナリログに書き込まれるステートメントには、すべての名前付き役割が含まれます。 IF NOT EXISTS 句が指定されている場合は、すでに存在していて作成されていないロールも含まれます。

各ロール名は、セクション6.2.5「ロール名の指定」 で説明されている形式を使用します。 例:

CREATE ROLE 'administrator', 'developer';
CREATE ROLE 'webapp'@'localhost';

ロール名のホスト名部分は、省略すると'%'にデフォルト設定されます。

ロールの使用例は、セクション6.2.10「ロールの使用」 を参照してください。


関連キーワード:  ステートメント, CREATE, TABLE, DROP, ROLE, ロール, サブクエリー, FUNCTION, SLAVE, 関数