Perbandingan Aurora MySQL versi 3 dan MySQL 8.0 Community Edition - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Perbandingan Aurora MySQL versi 3 dan MySQL 8.0 Community Edition

Anda dapat menggunakan informasi berikut untuk mempelajari tentang perubahan yang harus diperhatikan ketika Anda mengonversi dari sistem yang kompatibel dengan MySQL 8.0 yang berbeda ke Aurora MySQL versi 3.

Secara umum, Aurora MySQL versi 3 mendukung set fitur MySQL 8.0.23 komunitas. Beberapa fitur baru dari MySQL 8.0 edisi komunitas tidak berlaku untuk Aurora MySQL. Beberapa fitur tersebut tidak kompatibel dengan beberapa aspek Aurora, seperti arsitektur penyimpanan Aurora. Fitur lain tidak diperlukan karena layanan manajemen Amazon RDS menyediakan fungsionalitas yang setara. Fitur berikut di MySQL 8.0 komunitas tidak didukung atau berfungsi secara berbeda di Aurora MySQL versi 3.

Untuk catatan rilis untuk semua rilis Aurora MySQL versi 3, lihat Pembaruan mesin basis data untuk Amazon Aurora MySQL versi 3 dalam Catatan Rilis untuk Aurora MySQL.

Fitur MySQL 8.0 tidak tersedia di Aurora MySQL versi 3

Fitur berikut dari MySQL 8.0 komunitas tidak tersedia atau berfungsi secara berbeda di Aurora MySQL versi 3.

  • Grup sumber daya dan pernyataan SQL terkait tidak didukung di Aurora MySQL.

  • Aurora MySQL tidak mendukung ruang tabel undo yang ditentukan pengguna dan pernyataan SQL terkait, seperti, dan. CREATE UNDO TABLESPACE ALTER UNDO TABLESPACE ... SET INACTIVE DROP UNDO TABLESPACE

  • Aurora MySQL tidak mendukung pembatalan pemotongan tablespace untuk versi Aurora MySQL yang lebih rendah dari 3.06. Di Aurora MySQL versi 3.06 dan yang lebih tinggi, pemotongan tablespace undo otomatis didukung.

  • Anda tidak dapat memodifikasi pengaturan plugin MySQL apa pun.

  • Plugin X tidak didukung.

  • Replikasi multisumber tidak didukung.

Model hak akses berbasis peran

Dengan Aurora MySQL versi 3, Anda tidak dapat memodifikasi tabel dalam basis data mysql secara langsung. Secara khusus, Anda tidak dapat mengatur pengguna dengan melakukan penyisipan ke dalam tabel mysql.user. Sebagai gantinya, Anda menggunakan pernyataan SQL untuk memberikan hak akses berbasis peran. Anda juga tidak dapat membuat jenis objek lain seperti prosedur tersimpan dalam basis data mysql. Anda masih dapat mengueri tabel mysql. Jika Anda menggunakan replikasi log biner, perubahan yang dilakukan langsung ke tabel mysql di klaster sumber tidak direplikasi ke klaster target.

Dalam beberapa kasus, aplikasi Anda mungkin menggunakan pintasan untuk membuat pengguna atau objek lain dengan melakukan penyisipan ke dalam tabel mysql. Jika demikian, ubah kode aplikasi Anda untuk menggunakan pernyataan yang sesuai seperti CREATE USER. Jika aplikasi Anda membuat prosedur tersimpan atau objek lain dalam basis data mysql, gunakan basis data yang berbeda sebagai gantinya.

Untuk mengekspor metadata bagi pengguna database selama migrasi dari database MySQL eksternal, Anda dapat menggunakan perintah MySQL Shell sebagai gantinya. mysqldump Untuk informasi selengkapnya, lihat Instance Dump Utility, Schema Dump Utility, dan Table Dump Utility.

Untuk menyederhanakan pengelolaan izin bagi banyak pengguna atau aplikasi, Anda dapat menggunakan pernyataan CREATE ROLE untuk membuat peran yang memiliki serangkaian izin. Kemudian, Anda dapat menggunakan pernyataan GRANT dan SET ROLE serta fungsi current_role untuk menetapkan peran ke pengguna atau aplikasi, mengganti peran saat ini, dan memeriksa peran mana yang berlaku. Untuk informasi selengkapnya tentang sistem izin berbasis peran di MySQL 8.0, lihat Using Roles dalam Panduan Referensi MySQL.

penting

Kami sangat menyarankan agar Anda tidak menggunakan pengguna master secara langsung di aplikasi Anda. Sebagai gantinya, ikuti praktik terbaik menggunakan pengguna basis data yang dibuat dengan hak akses paling rendah yang diperlukan untuk aplikasi Anda.

rds_superuser_role

Aurora MySQL versi 3 mencakup peran khusus yang memiliki semua hak akses berikut. Peran ini bernama rds_superuser_role. Pengguna administratif primer untuk setiap klaster sudah diberi peran ini. Peran rds_superuser_role mencakup hak akses berikut untuk semua objek basis data:

  • ALTER

  • APPLICATION_PASSWORD_ADMIN

  • ALTER ROUTINE

  • CONNECTION_ADMIN

  • CREATE

  • CREATE ROLE

  • CREATE ROUTINE

  • CREATE TEMPORARY TABLES

  • CREATE USER

  • CREATE VIEW

  • DELETE

  • DROP

  • DROP ROLE

  • EVENT

  • EXECUTE

  • INDEX

  • INSERT

  • LOCK TABLES

  • PROCESS

  • REFERENCES

  • RELOAD

  • REPLICATION CLIENT

  • REPLICATION SLAVE

  • ROLE_ADMIN

  • SET_USER_ID

  • SELECT

  • SHOW DATABASES

  • SHOW_ROUTINE (Aurora MySQL versi 3.04 dan lebih tinggi)

  • SHOW VIEW

  • TRIGGER

  • UPDATE

  • XA_RECOVER_ADMIN

Definisi peran juga mencakup WITH GRANT OPTION sehingga pengguna administratif dapat memberikan peran tersebut kepada pengguna lain. Secara khusus, administrator harus memberikan hak akses yang diperlukan untuk melakukan replikasi log biner dengan klaster Aurora MySQL sebagai target.

Tip

Untuk melihat detail lengkap izin, masukkan pernyataan berikut.

SHOW GRANTS FOR rds_superuser_role@'%'; SHOW GRANTS FOR name_of_administrative_user_for_your_cluster@'%';

Hak istimewa memeriksa pengguna untuk replikasi log biner

Aurora MySQL versi 3 mencakup hak istimewa memeriksa pengguna untuk replikasi log biner (binlog),. rdsrepladmin_priv_checks_user Selain hak istimewards_superuser_role, pengguna ini memiliki replication_applier hak istimewa.

Ketika Anda mengaktifkan replikasi binlog dengan memanggil prosedur mysql.rds_start_replication tersimpan, rdsrepladmin_priv_checks_user dibuat.

rdsrepladmin_priv_checks_user@localhostPengguna adalah pengguna yang dicadangkan. Jangan memodifikasinya.

Peran untuk mengakses layanan lain AWS

Aurora MySQL versi 3 mencakup peran yang dapat Anda gunakan untuk mengakses layanan lain. AWS Anda dapat mengatur peran ini sebagai alternatif untuk pernyataan GRANT. Misalnya, Anda menentukan GRANT AWS_LAMBDA_ACCESS TO user, bukan GRANT INVOKE LAMBDA ON *.* TO user. Untuk prosedur untuk mengakses AWS layanan lain, lihatMengintegrasikan Amazon Aurora MySQL dengan layanan AWS lainnya. Aurora MySQL versi 3 mencakup peran berikut yang terkait dengan mengakses layanan lain: AWS

Ketika Anda memberikan akses dengan menggunakan peran di Aurora MySQL versi 3, Anda juga perlu mengaktifkan peran ini dengan menggunakan pernyataan SET ROLE role_name atau SET ROLE ALL. Contoh berikut menunjukkan cara melakukannya. Ganti nama peran yang sesuai untuk AWS_SELECT_S3_ACCESS.

# Grant role to user. mysql> GRANT AWS_SELECT_S3_ACCESS TO 'user'@'domain-or-ip-address' # Check the current roles for your user. In this case, the AWS_SELECT_S3_ACCESS role has not been activated. # Only the rds_superuser_role is currently in effect. mysql> SELECT CURRENT_ROLE(); +--------------------------+ | CURRENT_ROLE() | +--------------------------+ | `rds_superuser_role`@`%` | +--------------------------+ 1 row in set (0.00 sec) # Activate all roles associated with this user using SET ROLE. # You can activate specific roles or all roles. # In this case, the user only has 2 roles, so we specify ALL. mysql> SET ROLE ALL; Query OK, 0 rows affected (0.00 sec) # Verify role is now active mysql> SELECT CURRENT_ROLE(); +-----------------------------------------------------+ | CURRENT_ROLE() | +-----------------------------------------------------+ | `AWS_SELECT_S3_ACCESS`@`%`,`rds_superuser_role`@`%` | +-----------------------------------------------------+

Autentikasi

Di MySQL 8.0 komunitas, plugin autentikasi default adalah caching_sha2_password. Aurora MySQL versi 3 masih menggunakan plugin mysql_native_password. Anda tidak dapat mengubah pengaturan default_authentication_plugin.