説明
このステートメントは、ロールを作成するために使用します。ロールを使用して権限を管理できます。
権限要件
ロールの作成には、現在のユーザーが
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