説明
このステートメントは、ロールを作成するために使用されます。ロールを使用して権限を管理できます。
権限要件
ロールを新規作成するには、現在のユーザーが
CREATE USER権限またはCREATE ROLE権限を持っている必要があります。OceanBaseデータベースの権限の詳細については、MySQLモードの権限分類を参照してください。現在のテナントのシステム変数
read_onlyの値が1の場合、つまりテナントが読み取り専用モードの場合、現在のユーザーはCREATE ROLEステートメントを実行するためにSUPER権限も追加で持っている必要があります。システム変数
read_onlyは、テナントが読み取り専用モードかどうかを設定するために使用されます。デフォルトは0で、テナントが読み書きモードであることを示します。システム変数read_onlyの詳細については、read_onlyを参照してください。
構文
CREATE ROLE [IF NOT EXISTS] role_name [, role_name ...];
パラメータの説明
| パラメータ | 説明 |
|---|---|
| IF NOT EXISTS | オプションです。この句を指定すると、作成対象のロールが現在のテナント内に既に存在している場合でもエラーは報告されず、システムから警告メッセージが表示されます。指定しない場合はエラーが報告されます。 |
| role_name | 作成するロールの名前を指定します。複数のロールを同時に作成する場合は、ロール名を英字のカンマ(,)で区切ります。 |
例
ロール
role001を作成します。obclient [test]> CREATE ROLE role001;ロール
role001とrole002を同時に作成します。obclient [test]> CREATE ROLE IF NOT EXISTS role001, role002;実行結果は次のとおりです:
Query OK, 0 rows affected, 1 warningSHOW WARNINGS;ステートメントを使用してWarning情報を照会すると、実行結果は次のとおりです:+-------+------+-----------------------------------------------+ | Level | Code | Message | +-------+------+-----------------------------------------------+ | Note | 3163 | Authorization ID 'role001'@'%' already exists | +-------+------+-----------------------------------------------+ 1 row in set