GRANT 文を使用して、テーブルに対する読み取り権限や書き込み権限、またはデータベースに対するすべての権限など、特定の権限を付与します。
適用エンジン
GRANT 文は LindormTable および LindormTSDB に適用されます。バージョン制限はありません。
構文
grant_permission_statement ::= GRANT privilege_definition ON resource_definition TO user_identifier
privilege_definition ::= ALL | READ | WRITE | ADMIN | TRASH | SYSTEM
resource_definition ::= GLOBAL | DATABASE identifier | SCHEMA identifier | TABLE identifier注意事項
GRANT 文が正常に実行できるかどうかは、実行するユーザーの権限によって決まります。
権限 (privilege_definition)
利用可能な権限は次のとおりです:
権限 | 説明 |
ALL または ALL PRIVILEGE | ユーザーにすべての権限を付与します。これには、READ、WRITE、ADMIN、および TRASH 権限が含まれます。 |
READ | ユーザーに読み取り権限を付与します。 |
WRITE | ユーザーに書き込み権限を付与します。 |
ADMIN | ユーザーに「管理者」権限を付与します。 重要 ADMIN 権限は、READ 権限および WRITE 権限から独立しています。データベースに対して ADMIN 権限を付与しても、そのデータベース内のテーブルに対する読み取りまたは書き込みの権限は付与されません。テーブルに対する読み取り権限と書き込み権限は、別途付与する必要があります。 |
TRASH | ユーザーに削除権限を付与します。 |
SYSTEM | ユーザーにクラスターレベルの管理権限を付与します。これには、GLOBAL ADMIN 権限が含まれます。 重要 SYSTEM 権限をデータベースレベルで付与することはできません。 |
権限スコープ (resource_definition)
LindormTable および LindormTSDB の GRANT 文は、次のリソーススコープをサポートしています:
スコープ | LindormTable | LindormTSDB | 説明 |
GLOBAL | ✔ | ✔ | すべてのグローバルリソースに対する特定の権限を付与します。 重要 GLOBAL 権限、特に GLOBAL ALL PRIVILEGES の付与は避けることを推奨します。 |
DATABASE | • | ✔ | データベースに対する特定の権限を付与します。これは SCHEMA と同等です。 説明 LindormTable バージョン 2.5.3.3 以降は |
TABLE | ✔ | サポートされていません | 指定されたテーブルに対する特定の権限を付与します。 |
リソーススコープの優先順位は、GLOBAL > DATABASE (SCHEMA) > TABLE です。たとえば、あるユーザーが GLOBAL READ 権限を持っている場合、そのユーザーはどのデータベース内のテーブルでも読み取れます。
DATABASE、SCHEMA、または TABLE キーワードを使用する場合、オブジェクトの名前 (識別子) を指定する必要があります。たとえば、DATABASE default、SCHEMA default、および TABLE test は、default データベースと test テーブルをそれぞれ参照します。
権限付与対象 (user_identifier)
user_identifier は、権限を付与する対象のユーザー名です。
例
すべての権限の付与
db1 データベースに対するすべての権限をユーザー user1 に付与します。
GRANT ALL ON DATABASE db1 TO user1;
-- または
GRANT ALL ON SCHEMA db1 TO user1;特定の権限の付与
db2 データベースの table2 テーブルに対する管理者権限をユーザー user2 に付与します。
GRANT ADMIN ON TABLE db2.table2 TO user2;現在のデータベースの table3 テーブルに対する書き込み権限をユーザー user3 に付与します。
GRANT WRITE ON TABLE table3 TO user3;グローバル読み取り権限をユーザー user4 に付与します。
GRANT READ ON GLOBAL TO user4;