CREATE ROLE ステートメントを使用してロールを作成し、ロールを通じて権限を管理できます。
前提条件
ロールを作成するには、現在のユーザーが
CREATE USER権限またはCREATE ROLE権限を持っている必要があります。現在のユーザーが持つ権限に関する操作の詳細については、ユーザー権限の確認を参照してください。該当する権限がない場合は、管理者に連絡して追加してもらい、ユーザーに権限を付与する操作の詳細については、直接権限付与を参照してください。
現在のテナントのシステム変数
read_onlyの値が1の場合、つまりテナントが読み取り専用モードの場合、現在のユーザーはCREATE ROLEステートメントを実行するためにSUPER権限も追加で持っている必要があります。システム変数
read_onlyは、テナントが読み取り専用モードかどうかを設定します。デフォルトは0で、テナントは読み書きモードを意味します。システム変数read_onlyの詳細については、read_onlyを参照してください。
操作例
ロール role1 を作成します。
obclient [oceanbase]> CREATE ROLE role1;
または
obclient [oceanbase]> CREATE ROLE IF NOT EXISTS role1;
上記の例では、IF NOT EXISTS 句を追加しない場合、現在のテナント内に同名の role1 が既に存在すると、システムはエラーを報告します。IF NOT EXISTS 句を追加した場合、システムはWarningメッセージを表示します。
obclient [oceanbase]> CREATE ROLE IF NOT EXISTS role1;
Query OK, 0 rows affected, 1 warning
SHOW WARNINGS; ステートメントを使用してWarningメッセージを照会すると、表示結果は次のとおりです:
+-------+------+---------------------------------------------+
| Level | Code | Message |
+-------+------+---------------------------------------------+
| Note | 3163 | Authorization ID 'role1'@'%' already exists |
+-------+------+---------------------------------------------+
1 row in set
次のステップ
ロールの作成が成功した後、他のロールや権限をそのロールに付与できます。具体的な操作については、以下を参照してください:
関連ドキュメント
CREATE ROLE ステートメントの詳細については、CREATE ROLEを参照してください。