All Products
Search
Document Center

PolarDB:Kelola akun dan izin

Last Updated:Jul 02, 2025

Topik ini menjelaskan cara mengelola akun dan izin.

Akun dan izin di PolarDB-X dikelola dengan cara yang sama seperti di MySQL 5.7. PolarDB-X mendukung pernyataan seperti GRANT, REVOKE, SHOW GRANTS, CREATE USER, DROP USER, dan SET PASSWORD. PolarDB-X memungkinkan Anda memberikan izin ke database dan tabel, tetapi tidak menawarkan pengaturan izin global atau tingkat kolom.

Buat akun

Syntax

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

Parameters

user adalah akun yang terdiri dari nama pengguna dan nama host dalam format 'username'@'host'.

  • username menentukan nama pengguna yang ingin dibuat. Nama pengguna harus memenuhi persyaratan berikut:

    • Nama pengguna bersifat case-sensitive.

    • Panjang nama pengguna harus antara 4 hingga 20 karakter.

    • Nama pengguna harus dimulai dengan huruf.

    • Nama pengguna dapat berisi huruf dan angka.

  • host menentukan host dari mana akun dapat masuk ke database. Jika nama pengguna akunnya sama tetapi nama hostnya berbeda, akun tersebut dianggap berbeda. Nama host harus memenuhi persyaratan berikut:

    • Nama host harus berupa nilai yang mewakili satu atau lebih alamat IP. Nilai tersebut dapat berisi garis bawah (_) dan wildcard (%). Garis bawah (_) mewakili satu karakter, sedangkan wildcard (%) mewakili nol atau lebih karakter. Nama host yang berisi wildcard harus diapit oleh tanda kutip tunggal ('), seperti lily@'30.9.%.%' dan david@'%'.

      Catatan

      "_" mewakili satu karakter, sedangkan "%" mewakili nol atau lebih karakter.

    • Jika dua akun di PolarDB-X cocok dengan pengguna masuk pada sebuah host, akun dengan nama host yang memiliki awalan lebih panjang akan digunakan. Awalan nama host adalah blok CIDR yang mendahului wildcard dalam alamat IP host. Sebagai contoh, jika akun david@'30.9.12_.234' dan david@'30.9.1%.234' tersedia di sistem, dan Anda menggunakan nama pengguna david untuk masuk dari host 30.9.127.234, akun david@'30.9.12_.234' akan digunakan.

    • Setelah Virtual Private Cloud (VPC) diaktifkan, alamat IP host berubah. Untuk mencegah konfigurasi akun dan izin yang tidak valid, disarankan untuk menetapkan nama host menjadi '%' agar mencocokkan semua alamat IP.

  • password menentukan kata sandi akun. Kata sandi harus memenuhi persyaratan berikut:

    • Panjang kata sandi harus antara 6 hingga 20 karakter.

    • Kata sandi dapat berisi huruf, angka, dan karakter khusus berikut: @#$%^&+=

Example

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

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

Ubah kata sandi akun

Syntax

SET PASSWORD FOR user = PASSWORD('auth_string')

Example

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

Anda tidak dapat menggunakan pernyataan SQL untuk mengubah kata sandi akun istimewa.

Hapus akun

Syntax

DROP USER user;

Example

DROP USER 'user2'@'%';
Catatan

Anda tidak dapat menggunakan pernyataan SQL untuk menghapus akun istimewa.

Berikan izin kepada akun

Syntax

GRANT privileges ON database.table TO user;

Parameters

Dalam pernyataan sebelumnya, privileges menunjukkan jenis izin tertentu. Izin akun database berikut terdaftar berdasarkan level dalam urutan menurun: izin global, izin tingkat database, izin tingkat tabel, dan izin tingkat kolom. PolarDB-X mendukung delapan izin tabel dasar: CREATE, DROP, ALTER, INDEX, INSERT, DELETE, UPDATE, dan SELECT.

  • Untuk menjalankan pernyataan TRUNCATE pada tabel, Anda harus memiliki izin DROP pada tabel tersebut.

  • Untuk menjalankan pernyataan REPLACE pada tabel, Anda harus memiliki izin INSERT dan DELETE pada tabel tersebut.

  • Untuk menjalankan pernyataan CREATE INDEX dan DROP INDEX, Anda harus memiliki izin INDEX pada tabel tersebut.

  • Untuk menjalankan pernyataan CREATE SEQUENCE, Anda harus memiliki izin CREATE tingkat database.

  • Untuk menjalankan pernyataan DROP SEQUENCE, Anda harus memiliki izin DROP tingkat database.

  • Untuk menjalankan pernyataan ALTER SEQUENCE, Anda harus memiliki izin ALTER tingkat database.

  • Untuk menjalankan pernyataan INSERT ON DUPLICATE UPDATE pada tabel, Anda harus memiliki izin INSERT dan UPDATE pada tabel tersebut.

Example

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

Anda tidak dapat menggunakan pernyataan SQL untuk memberikan otorisasi kepada akun istimewa.

Lihat izin akun

Syntax

SHOW GRANTS [FOR user];
Catatan

Anda dapat menentukan fungsi current_user() untuk melihat nama pengguna pengguna saat ini.

Example

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' |
+------------------------------------------------------+

Cabut izin akun

Syntax

REVOKE privileges ON database.table FROM user;

Example

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 akun istimewa.