本記事では、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 | ユーザーがProcedureとFunctionを作成できるかどうかを決定します。 |
| データベース権限 | ALTER ROUTINE | ユーザーがProcedureとFunctionを変更または削除できるかどうかを決定します。 |
| データベース権限 | EXECUTE | ユーザーがProcedureとFunctionを実行できるかどうかを決定します。 |
| データベース権限 | 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 | ユーザーがProcedureとFunctionを作成できるかどうかを決定します。 |
| グローバル権限 | ALTER ROUTINE | ユーザーがProcedureとFunctionを変更または削除できるかどうかを決定します。 |
| グローバル権限 | 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 関数を呼び出せるかどうかを決定します。ユーザーが ENCRYPT 権限と対応するDML権限の両方を持っている場合にのみ、上記の暗号化関数をDMLステートメントで使用できます。GRANT/REVOKE ALL PRIVILEGES にはこの権限は含まれません。この権限はV4.3.5 BP1以降でサポートされています。 |
| グローバル権限 | DECRYPT | ユーザーが ENHANCED_AES_DECRYPT 関数を呼び出すことができるかどうかを決定します。ユーザーが DECRYPT 権限と対応するDML権限の両方を持っている場合にのみ、上記の復号関数をDMLステートメントで使用できます。GRANT/REVOKE ALL PRIVILEGES にはこの権限は含まれていません。この権限はV4.3.5 BP1からサポートされています。 |
| グローバル権限 | PROXY | ユーザーが別のユーザーとして接続および操作を行うことを許可します。例えば、パスワードを共有しない状況で、ユーザーAがユーザーBにユーザーAとしての接続および操作権限を付与できるようにします。利用シナリオとしては、アプリケーションが異なる権限レベルのアカウントを使用する必要がある場合や、ユーザー権限の委任を実現する場合などが挙げられます。この権限はV4.3.5 BP1からサポートされています。 |
| データディレクトリレベル権限 | CREATE CATALOG | ユーザーが CREATE EXTERNAL CATALOG、DROP CATALOG ステートメントを実行できるかどうかを決定します。 |
| データディレクトリレベル権限 | USE CATALOG | ユーザーが SET CATALOG、SHOW CATALOGS、SHOW CREATE CATALOG、SELECT FROM CATALOG ステートメントを実行できるかどうかを決定します。 |
| ユーザーレベル権限 | CREATE SENSITIVE RULE | ユーザーが CREATE/DROP SENSITIVE RULE ステートメントを実行できるかどうかを決定します。この権限はV4.3.5 BP3からサポートされています。 |
| ユーザーレベル権限 | PLAINACCESS | ユーザーが機密データを含むすべての平文データにアクセスできるかどうかを決定します。機密ルールの制限を受けません。GRANT/REVOKE ALL PRIVILEGES にはこの権限は含まれていません。この権限はV4.3.5 BP3からサポートされています。 |
| ルールレベル権限 | PLAINACCESS | ユーザーが特定のルールに関連付けられた列上の平文データにアクセスできるかどうかを決定します。この権限はV4.3.5 BP3からサポートされています。 |