本記事では、OceanBaseデータベースのMySQLモードにおける権限分類について説明します。
分類
MySQLモードの権限は3つのレベルに分かれています:
- グローバル権限:テナント全体に影響を及ぼす権限です。例えば、システム設定の変更やすべてのテーブルへのアクセスなどの権限が含まれます。
- データベース権限:特定のデータベース内のすべてのオブジェクトに影響を及ぼす権限です。例えば、対応するデータベース内でテーブルの作成・削除、テーブルへのアクセスなどの権限が含まれます。
- オブジェクト権限:特定のオブジェクトに影響を及ぼす権限です。例えば、特定のテーブル、ビュー、またはインデックスへのアクセス権限が含まれます。
現在のOceanBaseデータベースにおけるMySQLモード関連の権限リストは、次の表のとおりです。
権限の種類 |
権限 |
説明 |
|---|---|---|
| オブジェクト権限 | CREATE | ユーザーが CREATE TABLE ステートメントを実行できるかどうかを確認します。 |
| オブジェクト権限 | SELECT | ユーザーがテーブルのすべての列または指定された列のデータをクエリできるかどうかを確認します。 |
| オブジェクト権限 | INSERT | ユーザーがテーブルのすべての列または指定された列にデータを挿入できるかどうかを確認します。 |
| オブジェクト権限 | UPDATE | ユーザーがテーブルのすべての列または指定された列のデータを更新できるかどうかを確認します。 |
| オブジェクト権限 | DELETE | ユーザーが既存のデータを削除できるかどうかを確認します。 |
| オブジェクト権限 | DROP | ユーザーが DROP TABLE、DROP VIEW などのステートメントを実行できるかどうかを確認します。 |
| オブジェクト権限 | INDEX | ユーザーがテーブルインデックスを作成および削除できるかどうかを確認します。 |
| オブジェクト権限 | ALTER | ユーザーが RENAME TABLE、ALTER TABLE などのステートメントを実行できるかどうかを確認します。 |
| オブジェクト権限 | CREATE VIEW | ユーザーがビューを作成できるかどうかを確認します。 |
| オブジェクト権限 | SHOW VIEW | ユーザーがビューを表示したり、ビューの実行方法を確認したりできるかどうかを確認します。 |
| オブジェクト権限 | REFERENCES | ユーザーが外部キーを作成できるかどうかを確認します。テーブルに外部キーを作成する際には、親テーブルに対する REFERENCES 権限が必要です。 |
| オブジェクト権限 | TRIGGER | ユーザーがトリガー操作を有効化できるかどうかを確認します。トリガーの作成、表示、削除にはこの権限が必要です。 |
| データベース権限 | SELECT | ユーザーがテーブル内のデータをクエリできるかどうかを確認します。 |
| データベース権限 | INSERT | ユーザーがテーブルに行データを挿入できるかどうかを確認します。 |
| データベース権限 | UPDATE | ユーザーが既存のデータを変更できるかどうかを確認します。 |
| データベース権限 | DELETE | ユーザーが既存のデータを削除できるかどうかを確認します。 |
| データベース権限 | CREATE | ユーザーが CREATE DATABASE、CREATE TABLE、CREATE SEQUENCE、CREATE OUTLINE などのステートメントを実行できるかどうかを確認します。 |
| データベース権限 | DROP | ユーザーが DROP DATABASE、DROP TABLE、DROP VIEW、DROP SEQUENCE、DROP OUTLINE などのステートメントを実行できるかどうかを決定します。 |
| データベース権限 | INDEX | ユーザーがテーブルインデックスを作成および削除できるかどうかを決定します。 |
| データベース権限 | ALTER | ユーザーが ALTER DATABASE、RENAME TABLE、ALTER TABLE、ALTER SEQUENCE、ALTER OUTLINE などのステートメントを実行できるかどうかを決定します。 |
| データベース権限 | CREATE VIEW | ユーザーがビューを作成できるかどうかを決定します。 |
| データベース権限 | SHOW VIEW | ユーザーがビューを参照したり、ビューの実行方法を確認したりできるかどうかを決定します。 |
| データベース権限 | CREATE ROUTINE | ユーザーがプロシージャとファンクションを作成できるかどうかを決定します。 |
| データベース権限 | ALTER ROUTINE | ユーザーがプロシージャとファンクションを変更または削除できるかどうかを決定します。 |
| データベース権限 | EXECUTE | ユーザーがプロシージャとファンクションを実行できるかどうかを決定します。 |
| データベース権限 | REFERENCES | ユーザーが外部キーを作成できるかどうかを決定します。 |
| データベース権限 | TRIGGER | ユーザーがトリガー操作を有効化できるかどうかを決定します。トリガーの作成、参照、削除にはこの権限が必要です。 |
| グローバル権限 | CREATE | ユーザーが CREATE DATABASE、CREATE TABLEGROUP、CREATE TABLE、CREATE SEQUENCE、CREATE OUTLINE などのステートメントを実行できるかどうかを決定します。 |
| グローバル権限 | ALTER | ユーザーが ALTER DATABASE、ALTER TABLEGROUP、RENAME TABLE、ALTER TABLE、ALTER SEQUENCE、ALTER OUTLINE などのステートメントを実行できるかどうかを決定します。 |
| グローバル権限 | SELECT | ユーザーがテーブル内のデータをクエリできるかどうかを決定します。 |
| グローバル権限 | INSERT | ユーザーがテーブルに行データを挿入できるかどうかを決定します。 |
| グローバル権限 | UPDATE | ユーザーが既存データを変更できるかどうかを決定します。 |
| 全局権限 | DELETE | ユーザーが既存データを削除できるかどうかを決定します。 |
| 全局権限 | DROP | ユーザーが DROP DATABASE、DROP TABLEGROUP、DROP TABLE、DROP VIEW、DROP SEQUENCE、DROP OUTLINE などのステートメントを実行できるかどうかを決定します。 |
| 全局権限 | INDEX | ユーザーがテーブルインデックスを作成および削除できるかどうかを決定します。 |
| 全局権限 | CREATE VIEW | ユーザーがビューを作成できるかどうかを決定します。 |
| 全局権限 | SHOW VIEW | ユーザーがビューを参照またはビューの実行方法を確認できるかどうかを決定します。 |
| 全局権限 | REFERENCES | ユーザーが外部キーを作成できるかどうかを決定します。 |
| 全局権限 | ALTER TENANT | テナント情報を変更する権限。 |
| 全局権限 | ALTER SYSTEM | ALTER SYSTEM コマンドを実行する権限。 |
| 全局権限 | CREATE RESOURCE POOL | リソースプールを作成、変更、削除する権限。 |
| 全局権限 | CREATE RESOURCE UNIT | リソースユニットを作成、変更、削除する権限。 |
| 全局権限 | CREATE DATABASE LINK | データベースリンクを作成する権限。 |
| 全局権限 | DROP DATABASE LINK | データベースリンクを削除する権限。 |
| 全局権限 | CREATE USER | ユーザーが CREATE USER、ALTER USER、DROP USER、CREATE ROLE、DROP ROLE などのステートメントを実行できるかどうかを決定します。 |
| 全局権限 | CREATE ROUTINE | ユーザーがプロシージャと関数を作成できるかどうかを決定します。 |
| 全局権限 | ALTER ROUTINE | ユーザーがプロシージャと関数を変更または削除できるかどうかを決定します。 |
| 全局権限 | CREATE TABLESPACE | ユーザーが CREATE TABLESPACE、ALTER TABLESPACE、DROP TABLESPACE などのステートメントを実行できるかどうかを決定します。 |
| 全局権限 | CREATE ROLE | ユーザーが CREATE ROLE ステートメントを実行できるかどうかを決定します。 |
| 全局権限 | DROP ROLE | ユーザーが DROP ROLE ステートメントを実行できるかどうかを決定します。 |
| 全局権限 | EXECUTE | ユーザーがプロシージャとファンクションを実行できるかどうかを決定します。 |
| 全局権限 | PROCESS | ユーザーが SHOW PROCESSLIST コマンドで他ユーザーのプロセスを確認できるかどうかを決定します。 |
| 全局権限 | TRIGGER | ユーザーがトリガー操作を有効化できるかどうかを決定します。トリガーの作成、表示、削除にはこの権限が必要です。 |
| 全局権限 | SHOW DB | ユーザーがサーバー上のすべてのデータベース名を確認できるかどうかを決定します。これには、ユーザーが十分なアクセス権限を持つデータベースも含まれます。 |
| 全局権限 | SHUTDOWN | ユーザーが mysqladmin shutdown コマンドを実行できるかどうかを決定します。
説明
|
| 全局権限 | RELOAD | ユーザーがフラッシュ操作を実行できるかどうかを決定します。
説明
|
| 全局権限 | FILE | ユーザーが SELECT INTO OUTFILE および LOAD DATA INFILE コマンドを実行できるかどうかを決定します。 |
| 全局権限 | SUPER | ユーザーが KILL コマンドでユーザープロセスを削除したり、SET GLOBAL でグローバルMySQL変数を変更したり、レプリケーションやログに関するさまざまなコマンドを実行したりするなど、一部の強力な管理機能を実行できるかどうかを決定します。 |
| 全局権限 | GRANT OPTION | ユーザーが自身が持つ権限を他のユーザーに付与できるようにします。通常は SELECT、INSERT、UPDATE などの他の権限と併用します。 |
| 全局権限 | ALL PRIVILEGES | ユーザーがデータベース内のすべての利用可能な権限(GRANT OPTION/ENCRYPT/DECRYPT を除く)を持つことを意味します。 |
| 全局権限 | ENCRYPT | ユーザーが ENHANCED_AES_ENCRYPT 関数を呼び出せるかどうかを決定します。DMLステートメントで上記の暗号化関数を使用するには、ユーザーが ENCRYPT 権限と対応するDML権限の両方を持っている必要があります。GRANT/REVOKE ALL PRIVILEGES にはこの権限は含まれません。 |
| グローバル権限 | DECRYPT | ユーザーが ENHANCED_AES_DECRYPT 関数を呼び出せるかどうかを決定します。ユーザーが DECRYPT 権限と対応するDML権限の両方を持っている場合にのみ、DMLステートメントで上記の復号関数を使用できます。GRANT/REVOKE ALL PRIVILEGES にはこの権限は含まれません。 |
| グローバル権限 | PROXY | あるユーザーが別のユーザーの身分で接続および操作を行えるようにします。例えば、パスワードを共有することなく、ユーザーAがユーザーBに対して、ユーザーAの身分で接続および操作を行う権限を付与できるようにします。利用シナリオとしては、アプリケーションが異なる権限レベルのアカウントを使用する必要がある場合や、ユーザー権限の委譲を実現する場合などがあります。現在のバージョンではこのキーワード権限のみがサポートされており、機能は有効ではありません。 |
| グローバル権限 | CREATE LOCATION
説明OceanBaseデータベースV4.4.x系では、V4.4.1バージョンから |
ユーザーが CREATE LOCATION、ALTER LOCATION、DROP LOCATION ステートメントを実行できるかどうかを決定します。 |
| データディレクトリレベル権限 | CREATE CATALOG | ユーザーが CREATE EXTERNAL CATALOG、DROP CATALOG ステートメントを実行できるかどうかを決定します。 |
| データディレクトリレベル権限 | USE CATALOG | ユーザーが SET CATALOG、SHOW CATALOGS、SHOW CREATE CATALOG、SELECT FROM CATALOG ステートメントを実行できるかどうかを決定します。 |
| オブジェクト権限 | CREATE AI MODEL | ユーザーが DBMS.AI_SERVICE システムパッケージのプログラムの中から CREATE_AI_MODEL と CREATE_AI_MODEL_ENDPOINT を呼び出せるかどうかを決定します。 |
| オブジェクト権限 | ALTER AI MODEL | ユーザーが DBMS.AI_SERVICE システムパッケージのプログラムの中から ALTER_AI_MODEL_ENDPOINT を呼び出せるかどうかを決定します。 |
| オブジェクト権限 | DROP AI MODEL | ユーザーが DBMS.AI_SERVICE システムパッケージのプログラムの中から DROP_AI_MODEL と DROP_AI_MODEL_ENDPOINT を呼び出せるかどうかを決定します。 |
| オブジェクト権限 | ACCESS AI MODEL | ユーザーが AI_COMPLETE、AI_EMBED、AI_RERANK などのAI関数を呼び出せるかどうかを決定します。 |
| グローバル権限 | CREATE SENSITIVE RULE | ユーザーが CREATE/DROP SENSITIVE RULE ステートメントを実行できるかどうかを決定します。rootユーザーはデフォルトでこの権限を持ち、REVOKE することはできません。新しいクラスタを作成したり、アップグレードした後も自動的にこの権限が付与されます。 |
| グローバル権限 | PLAINACCESS | ユーザーが機密データを含むすべての平文データにアクセスできるかどうかを決定します。これは機密ルールの制限を受けません。GRANT/REVOKE ALL PRIVILEGES にはこの権限は含まれません。rootユーザーはデフォルトでこの権限を持ち、REVOKE することはできません。新しいクラスタを作成したり、アップグレードした後も自動的にこの権限が付与されます。 |
| ルールレベル権限 | PLAINACCESS | ユーザーが特定のルールに関連付けられた列上の平文データにアクセスできるかどうかを決定します。ルールを作成したユーザーは、そのルールのPLAINACCESS権限を自動的に持つわけではなく、個別に権限を付与する必要があります。 |