Data Management (DMS) mendukung kontrol izin terperinci untuk database MySQL. Sebagai contoh, Anda dapat mengelola izin pada level database, tabel, bidang, dan tampilan. Topik ini menjelaskan cara mengelola izin pengguna pada database MySQL di DMS.
Prasyarat
Sebuah ApsaraDB RDS for MySQL, PolarDB for MySQL, instance AnalyticDB for MySQL, database MySQL yang dikelola sendiri, database MariaDB asli, atau database ApsaraDB for MariaDB digunakan.
Peran sistem Anda dapat berupa administrator DMS, administrator basis data (DBA), atau pengguna biasa seperti pemilik suatu instance.
database account dan database password untuk database MongoDB telah diperoleh.
Ikhtisar
Anda dapat mengelola izin kasar pada database MySQL dalam instance ApsaraDB RDS for MySQL atau instance PolarDB for MySQL melalui konsol yang sesuai. Sebagai contoh, Anda dapat memberikan pengguna lain izin baca-saja atau izin baca dan tulis pada database MySQL. Selain itu, Anda juga dapat memberikan izin untuk mengeksekusi pernyataan DML atau DDL pada database tersebut. Namun, jika memerlukan manajemen izin yang lebih fleksibel dan terperinci, Anda dapat menggunakan fitur manajemen izin pengguna DMS. Contohnya:
Memberikan Pengguna A izin global untuk mengeksekusi pernyataan
SELECTdanUPDATE.CatatanIzin global berlaku untuk semua database dalam instance database. Untuk informasi lebih lanjut, lihat Izin Global yang Didukung.
Memberikan Pengguna B izin untuk mengeksekusi pernyataan
SELECTpada tabel tertentu atau izin untuk mengeksekusi pernyataanUPDATEpada bidang tertentu.CatatanIzin terperinci dapat berlaku untuk database tertentu atau semua database dalam instance database. Untuk informasi lebih lanjut, lihat Izin Terperinci yang Didukung.
Membuat pengguna
- Masuk ke Konsol DMS V5.0.
Masuk ke database PostgreSQL. Untuk informasi lebih lanjut, lihat Masuk ke Instance Database.
Di panel navigasi sisi kiri Konsol DMS, klik kanan instance yang ingin Anda kelola dan pilih Account Management.
CatatanJika Anda masuk ke Konsol DMS dalam mode sederhana, klik Database instances di panel navigasi sisi kiri. Dalam daftar instance yang muncul, klik kanan instance yang ingin Anda kelola dan pilih Account Management.
Di halaman Account Management, klik Create User di pojok kiri atas.
Di kotak dialog Buat Pengguna, lakukan langkah-langkah berikut:
Di tab Basic settings, konfigurasikan parameter yang dijelaskan dalam tabel berikut.

Parameter
Deskripsi
User name
Nama pengguna yang ingin Anda gunakan untuk masuk ke database.
Host
Menunjukkan bahwa akun diizinkan untuk mengakses database dari alamat IP.
CatatanJika Anda tidak mengonfigurasi parameter ini, pengguna tidak dibatasi untuk mengakses database yang diizinkan dari alamat IP tertentu. Nilai default dari parameter ini adalah
%.Password
Password yang ingin Anda gunakan untuk masuk ke database dalam instance saat ini.
Confirm Password
Masukkan password lagi untuk mengonfirmasi password.
CatatanSetelah mengonfigurasi parameter di atas, DMS secara otomatis menghasilkan pernyataan SQL berdasarkan parameter yang dikonfigurasi. Kemudian, DMS mengeksekusi pernyataan tersebut untuk setiap database dalam instance saat ini. Sintaks pernyataan SQL adalah
CREATE USER 'Username'@'Hostname' IDENTIFIED BY 'Password';.Anda dapat mengklik Advanced Options untuk melengkapi lebih banyak konfigurasi.
Sebagai contoh, Anda dapat menetapkan batasan tertentu untuk pengguna, seperti yang ditunjukkan pada gambar berikut. Dalam hal ini, DMS menghasilkan dan mengeksekusi pernyataan SQL berikut:
GRANT USAGE ON *.* TO 'Username'@'Hostname' WITH MAX_QUERIES_PER_HOUR 100 MAX_UPDATES_PER_HOUR 200 MAX_CONNECTIONS_PER_HOUR 300 MAX_USER_CONNECTIONS 400;
Klik tab Global permissions dan pilih satu atau lebih izin yang ingin Anda berikan kepada pengguna.
CatatanJika Anda tidak dapat menemukan izin yang Anda butuhkan, izin tersebut tidak didukung oleh instance atau akun Alibaba Cloud Anda tidak diizinkan untuk memberikan izin tersebut. Jika Anda menggunakan akun standar, masuk ke Konsol DMS menggunakan akun istimewa dan coba ulangi langkah ini.
Klik tab Object permissions dan konfigurasikan parameter untuk memberikan izin terperinci kepada pengguna.
Sebagai contoh, Anda dapat mengizinkan pengguna untuk menanyakan atau menyisipkan data dalam database, serta menghapus data dari tabel dalam database, seperti yang ditunjukkan pada gambar berikut. Dalam hal ini, DMS menghasilkan dan mengeksekusi pernyataan SQL berikut:
GRANT SELECT,INSERT ON `rds_db`.* TO 'Username'@'Hostname'; GRANT DELETE ON `rds_db`.`rds_table` TO 'Username'@'Hostname';
Klik Confirm.
Di pesan Preview SQL Statement, klik Confirm.
CatatanPernyataan SQL dapat dihasilkan berdasarkan parameter yang Anda konfigurasikan. Jika instance database dikelola dalam mode Kolaborasi Keamanan, pernyataan SQL mungkin gagal dieksekusi karena aturan keamanan. Dalam hal ini, Anda dapat melakukan operasi dengan mengikuti petunjuk di layar atau hubungi administrator basis data (DBA) atau administrator DMS. Untuk informasi tentang cara memodifikasi aturan keamanan, lihat FAQ dari topik ini.
Memodifikasi atau menghapus pengguna
Anda dapat memodifikasi username, password, global permissions, dan fine-grained permissions dari pengguna yang Anda berwenang untuk kelola.
- Masuk ke Konsol DMS V5.0.
Di panel navigasi sisi kiri Konsol DMS, klik kanan instance yang ingin Anda kelola dan pilih Account Management.
CatatanJika Anda masuk ke Konsol DMS dalam mode sederhana, klik Database instances di panel navigasi sisi kiri. Dalam daftar instance yang muncul, klik kanan instance yang ingin Anda kelola dan pilih Account Management.
Di halaman Manajemen Akun, temukan pengguna yang ingin Anda kelola dan klik Edit di kolom Operasi untuk memodifikasi informasi tentang pengguna, atau klik Delete di kolom Operasi untuk menghapus pengguna.
Izin global yang didukung
Izin | Objek | Deskripsi |
CREATE | Database, tabel, atau indeks | Mengizinkan pengguna membuat database, tabel, atau indeks. |
DROP | Database, tabel, atau tampilan | Mengizinkan pengguna menghapus database, tabel, atau tampilan. |
GRANT OPTION | Database, tabel, atau prosedur tersimpan | Mengizinkan pengguna memberikan atau mencabut satu atau lebih izin untuk pengguna lain. |
REFERENCES | Database, tabel, atau bidang | Mengizinkan pengguna membuat kunci asing untuk mereferensikan database, tabel, atau bidang. |
LOCK TABLES | Database | Mengizinkan pengguna mengunci tabel dalam database. |
EVENT | Database | Mengizinkan pengguna menanyakan, membuat, memodifikasi, atau menghapus event dalam database. |
ALTER | Tabel atau tampilan | Mengizinkan pengguna memodifikasi tabel atau tampilan. Sebagai contoh, pengguna dapat diizinkan untuk menambahkan bidang ke tabel, membuat indeks, atau memodifikasi bidang dalam tabel. |
DELETE | Tabel | Mengizinkan pengguna menghapus data dari tabel. |
INDEX | Tabel | Mengizinkan pengguna membuat atau menghapus indeks untuk tabel. |
INSERT | Tabel atau bidang | Mengizinkan pengguna menyisipkan data ke tabel atau bidang. |
SELECT | Tabel atau bidang | Mengizinkan pengguna menanyakan data dalam tabel atau bidang. |
UPDATE | Tabel atau bidang | Mengizinkan pengguna memperbarui data dalam tabel atau bidang. |
CREATE VIEW | Tampilan | Mengizinkan pengguna membuat tampilan. |
SHOW VIEW | Tampilan | Mengizinkan pengguna memeriksa tampilan. |
TRIGGER | Pemicu | Mengizinkan pengguna membuat, menghapus, mengeksekusi, atau menampilkan pemicu. |
ALTER ROUTINE | Prosedur tersimpan | Mengizinkan pengguna memodifikasi prosedur tersimpan. |
CREATE ROUTINE | Prosedur tersimpan | Mengizinkan pengguna membuat prosedur tersimpan. |
EXECUTE | Prosedur tersimpan | Mengizinkan pengguna mengeksekusi prosedur tersimpan. |
FILE | Akses file pada host server | Mengizinkan pengguna mengakses file pada host server. |
CREATE TEMPORARY TABLES | Administrasi server | Mengizinkan pengguna membuat tabel sementara pada server. |
CREATE USER | Administrasi server | Mengizinkan pengguna membuat pengguna pada server. |
PROCESS | Administrasi server | Mengizinkan pengguna menanyakan informasi tentang thread yang sedang berjalan pada server. |
RELOAD | Administrasi server | Mengizinkan pengguna menjalankan perintah pada server, seperti perintah |
REPLICATION CLIENT | Administrasi server | Mengizinkan pengguna memeriksa status server utama, server replika, dan log biner. Izin ini diperlukan untuk replikasi. Berikan izin ini kepada pengguna yang dibuat untuk menghubungkan server replika ke server sumber. |
REPLICATION SLAVE | Administrasi server | Mengizinkan pengguna memeriksa status server utama, server replika, dan log biner. Izin ini diperlukan untuk replikasi. Berikan izin ini kepada pengguna yang dibuat untuk menghubungkan server replika ke server sumber. |
SHOW DATABASES | Administrasi server | Mengizinkan pengguna melihat nama semua database pada server. |
SHUTDOWN | Administrasi server | Mengizinkan pengguna mematikan server. |
SUPER | Administrasi server | Mengizinkan pengguna mengeksekusi pernyataan KILL untuk menghentikan thread yang sedang berjalan pada server. Catatan ApsaraDB RDS for MySQL dan ApsaraDB for MariaDB tidak mendukung izin SUPER. |
Izin terperinci yang didukung
Izin | Objek | Deskripsi |
CREATE | Database, tabel, atau indeks | Mengizinkan pengguna membuat database, tabel, atau indeks. |
DROP | Database, tabel, atau tampilan | Mengizinkan pengguna menghapus database, tabel, atau tampilan. |
GRANT OPTION | Database, tabel, atau prosedur tersimpan | Mengizinkan pengguna memberikan atau mencabut satu atau lebih izin untuk pengguna lain. |
REFERENCES | Database, tabel, atau bidang | Mengizinkan pengguna membuat kunci asing untuk mereferensikan database, tabel, atau bidang. |
LOCK TABLES | Database | Mengizinkan pengguna mengunci tabel dalam database. |
EVENT | Database | Mengizinkan pengguna menanyakan, membuat, memodifikasi, atau menghapus event dalam database. |
ALTER | Tabel atau tampilan | Mengizinkan pengguna memodifikasi tabel atau tampilan. Sebagai contoh, pengguna dapat diizinkan untuk menambahkan bidang ke tabel, membuat indeks, atau memodifikasi bidang dalam tabel. |
DELETE | Tabel | Mengizinkan pengguna menghapus data dari tabel. |
INDEX | Tabel | Mengizinkan pengguna membuat atau menghapus indeks untuk tabel. |
INSERT | Tabel atau bidang | Mengizinkan pengguna menyisipkan data ke tabel atau bidang. |
SELECT | Tabel atau bidang | Mengizinkan pengguna menanyakan data dalam tabel atau bidang. |
UPDATE | Tabel atau bidang | Mengizinkan pengguna memperbarui data dalam tabel atau bidang. |
CREATE VIEW | Tampilan | Mengizinkan pengguna membuat tampilan. |
SHOW VIEW | Tampilan | Mengizinkan pengguna memeriksa tampilan. |
TRIGGER | Pemicu | Mengizinkan pengguna membuat, menghapus, mengeksekusi, atau menampilkan pemicu. |
FAQ
T: Mengapa sistem memberi tahu saya bahwa saya tidak dapat mengeksekusi pernyataan CREATE USER untuk membuat pengguna dengan izin tertentu karena aturan keamanan?
A: Lakukan pemecahan masalah berdasarkan pesan kesalahan yang dikembalikan. Ikuti langkah-langkah berikut:
Kueri set aturan keamanan yang dikonfigurasikan untuk instance.
Di panel navigasi sisi kiri, klik kanan instance saat ini dan pilih View Details.
Modifikasi aturan keamanan.
Masuk ke Konsol DMS V5.0.
Di bilah navigasi atas, pilih .
Di tab Security Rules, temukan set aturan keamanan yang ingin Anda kelola dan klik Edit di kolom Actions.
Di panel navigasi sisi kiri, klik SQL Correct.
Setel parameter Checkpoints ke SQL execution rules.
Dalam daftar aturan keamanan, temukan aturan keamanan All DCL can execute directly in SQLConsole dan klik Edit di kolom Actions.
Di kotak dialog Change Rule - SQL Correct, tambahkan CREATE_USER di editor SQL.
Klik Submit.