Gunakan pernyataan GRANT untuk memberikan izin tertentu, seperti izin baca dan tulis pada suatu tabel atau semua izin pada suatu database.
Engine yang berlaku
Pernyataan GRANT berlaku untuk LindormTable dan LindormTSDB tanpa batasan versi.
Sintaks
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 identifierCatatan penggunaan
Keberhasilan eksekusi pernyataan GRANT bergantung pada izin pengguna yang menjalankannya.
Izin (privilege_definition)
Izin berikut tersedia:
Izin | Deskripsi |
ALL atau ALL PRIVILEGE | Memberikan semua izin kepada pengguna. Ini mencakup izin READ, WRITE, ADMIN, dan TRASH. |
READ | Memberikan izin baca kepada pengguna. |
WRITE | Memberikan izin tulis kepada pengguna. |
ADMIN | Memberikan izin "Administrator" kepada pengguna. Penting Izin ADMIN bersifat independen dari izin READ dan WRITE. Memberikan izin ADMIN pada sebuah database tidak memberikan izin untuk membaca atau menulis ke tabel dalam database tersebut. Anda harus memberikan izin baca dan tulis untuk tabel secara terpisah. |
TRASH | Memberikan izin hapus kepada pengguna. |
SYSTEM | Memberikan izin management tingkat kluster kepada pengguna. Ini mencakup izin GLOBAL ADMIN. Penting Anda tidak dapat memberikan izin SYSTEM pada tingkat database. |
Cakupan izin (resource_definition)
Pernyataan GRANT di LindormTable dan LindormTSDB mendukung cakupan resource berikut:
Izin | LindormTable | LindormTSDB | Deskripsi |
GLOBAL | 0 | 0 | Memberikan izin tertentu pada semua resource global. Penting Hindari pemberian izin GLOBAL, terutama GLOBAL ALL PRIVILEGES. |
DATABASE | • | 0 | Memberikan izin tertentu pada sebuah database. Ini setara dengan SCHEMA. Catatan Versi LindormTable 2.5.3.3 dan yang lebih baru mendukung kata kunci |
TABLE | 0 | Tidak didukung | Memberikan izin tertentu pada tabel tertentu. |
Prioritas cakupan resource adalah GLOBAL > DATABASE (SCHEMA) > TABLE. Sebagai contoh, jika pengguna memiliki izin GLOBAL READ, mereka dapat membaca tabel di database mana pun.
Saat menggunakan kata kunci DATABASE, SCHEMA, atau TABLE, Anda harus menentukan nama objek (identifier). Misalnya, DATABASE default, SCHEMA default, dan TABLE test merujuk ke database default dan tabel test.
Objek otorisasi (user_identifier)
user_identifier adalah username pengguna yang akan diberikan izin.
Contoh
Berikan semua izin
Berikan semua izin pada database db1 kepada pengguna user1.
GRANT ALL ON DATABASE db1 TO user1;
-- Atau
GRANT ALL ON SCHEMA db1 TO user1;Berikan izin tertentu
Berikan izin administrator pada tabel table2 di database db2 kepada pengguna user2.
GRANT ADMIN ON TABLE db2.table2 TO user2;Berikan izin tulis pada tabel table3 di database saat ini kepada pengguna user3.
GRANT WRITE ON TABLE table3 TO user3;Berikan izin baca global kepada pengguna user4.
GRANT READ ON GLOBAL TO user4;