All Products
Search
Document Center

PolarDB:Pengelolaan akun dan izin

Last Updated:Aug 28, 2026

Topik ini menjelaskan cara mengelola akun dan izin.

Sistem akun dan izin PolarDB-X kompatibel dengan MySQL 5.7. Sistem ini mendukung pernyataan seperti GRANT, REVOKE, SHOW GRANTS, CREATE USER, DROP USER, dan SET PASSWORD. Anda dapat memberikan izin pada level database dan level tabel. Izin level global dan level kolom tidak didukung.

Membuat akun

Sintaks

CREATE USER [IF NOT EXISTS] user IDENTIFIED BY 'password';

Parameter

Parameter user menentukan akun, yang merupakan kombinasi dari username dan hostname. Formatnya adalah 'username'@'host'.

  • username harus mengikuti aturan berikut:

    • Bersifat case-sensitive.

    • Terdiri dari 4 hingga 20 karakter.

    • Diawali dengan huruf.

    • Dapat berisi huruf kapital, huruf kecil, dan angka.

  • host menentukan host tempat pengguna dapat login. Sebuah akun diidentifikasi secara unik oleh kombinasi username dan hostname-nya. host harus mengikuti aturan berikut:

    • host harus berupa alamat IP. Anda dapat menggunakan wildcard _ dan %. Nilai host yang mengandung wildcard harus diapit tanda petik tunggal, misalnya lily@'30.9.%.%' dan david@'%'.

      Catatan

      _ mencocokkan satu karakter, sedangkan % mencocokkan nol atau lebih karakter.

    • Jika dua akun pengguna sesuai dengan upaya login, sistem akan menggunakan akun dengan Pencocokan awalan terpanjang. Misalnya, jika sistem memiliki dua pengguna, david@'30.9.12_.234' dan david@'30.9.1%.234', upaya login untuk david dari host 30.9.127.234 akan menggunakan akun david@'30.9.12_.234'.

    • Alamat IP host dapat berubah saat Anda menggunakan Virtual Private Cloud (VPC). Untuk mencegah konfigurasi akun dan izin menjadi tidak valid, atur host menjadi '%' agar sesuai dengan semua alamat IP.

  • Parameter password harus memenuhi persyaratan berikut:

    • Terdiri dari 6 hingga 20 karakter.

    • Dapat berisi huruf kapital, huruf kecil, angka, dan karakter khusus berikut: @#$%^&+=.

Contoh

CREATE USER 'user1'@'127.0.0.1' IDENTIFIED BY '123456';

CREATE USER IF NOT EXISTS 'user2'@'%' identified by '123456';

Mengubah password akun

Sintaks

SET PASSWORD FOR user = PASSWORD('auth_string')

Contoh

SET PASSWORD FOR 'user1'@'127.0.0.1' = PASSWORD('654321');
Catatan

Anda tidak dapat menggunakan Pernyataan SQL untuk mengubah password akun istimewa.

Menghapus akun

Sintaks

DROP USER user;

Contoh

DROP USER 'user2'@'%';
Catatan

Anda tidak dapat menggunakan Pernyataan SQL untuk menghapus akun istimewa.

Memberikan izin kepada akun

Sintaks

GRANT privileges ON database.table TO user;

Parameter

Parameter privileges menentukan jenis izin. Tingkat izin, dari tertinggi ke terendah, adalah: level global (tidak didukung), level database, level tabel, dan level kolom. PolarDB-X mendukung delapan izin dasar terkait tabel: CREATE, DROP, ALTER, INDEX, INSERT, DELETE, UPDATE, dan SELECT.

  • Operasi TRUNCATE memerlukan izin DROP pada tabel tersebut.

  • Operasi REPLACE memerlukan izin INSERT dan DELETE pada tabel tersebut.

  • Operasi CREATE INDEX dan DROP INDEX memerlukan izin INDEX pada tabel tersebut.

  • CREATE SEQUENCE memerlukan izin CREATE pada level database.

  • DROP SEQUENCE memerlukan izin DROP pada level database.

  • ALTER SEQUENCE memerlukan izin ALTER pada level database.

  • Pernyataan INSERT ON DUPLICATE UPDATE memerlukan izin INSERT dan UPDATE pada tabel tersebut.

Contoh

GRANT SELECT,UPDATE ON `db1`.* TO 'user1'@'127.0.0.1';
Catatan

Anda tidak dapat menggunakan Pernyataan SQL untuk memberikan izin kepada akun istimewa.

Menampilkan izin akun

Sintaks

SHOW GRANTS [FOR user];
Catatan

Anda dapat menggunakan current_user() untuk melihat pengguna saat ini.

Contoh

SHOW GRANTS FOR 'user1'@'127.0.0.1';
+------------------------------------------------------+
| GRANTS FOR 'USER1'@'127.0.0.1'                       |
+------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user1'@'127.0.0.1'            |
| GRANT SELECT, UPDATE ON db1.* TO 'user1'@'127.0.0.1' |
+------------------------------------------------------+

SHOW GRANTS FOR current_user();
+------------------------------------------------------+
| GRANTS FOR 'USER1'@'127.0.0.1'                       |
+------------------------------------------------------+
| GRANT USAGE ON *.* TO 'user1'@'127.0.0.1'            |
| GRANT SELECT, UPDATE ON db1.* TO 'user1'@'127.0.0.1' |
+------------------------------------------------------+

Mencabut izin dari akun

Sintaksis

REVOKE privileges ON database.table FROM user;

Contoh

REVOKE UPDATE ON db1.* FROM 'user1'@'127.0.0.1';

SHOW GRANTS FOR 'user1'@'127.0.0.1';
+----------------------------------------------+
| GRANTS FOR 'USER1'@'127.0.0.1'               |
+----------------------------------------------+
| GRANT USAGE ON *.* TO 'user1'@'127.0.0.1'    |
| GRANT SELECT ON db1.* TO 'user1'@'127.0.0.1' |
+----------------------------------------------+
Catatan

Anda tidak dapat menggunakan Pernyataan SQL untuk mencabut izin dari akun istimewa.