

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

# Membandingkan Aurora MySQL versi 3 dan MySQL 8.0 Community Edition
<a name="AuroraMySQL.Compare-80-v3"></a>

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](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.30Updates.html) dalam *Catatan Rilis untuk Aurora MySQL*.

**Topics**
+ [Fitur MySQL 8.0 tidak tersedia di Aurora MySQL versi 3](#AuroraMySQL.Compare-80-v3-features)
+ [Model hak akses berbasis peran](#AuroraMySQL.privilege-model)
+ [Menemukan ID server database](#AuroraMySQL.server-id)
+ [Autentikasi](#AuroraMySQL.mysql80-authentication)

## Fitur MySQL 8.0 tidak tersedia di Aurora MySQL versi 3
<a name="AuroraMySQL.Compare-80-v3-features"></a>

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 pemotongan undo 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.](https://dev.mysql.com/doc/refman/8.0/en/innodb-undo-tablespaces.html#truncate-undo-tablespace)
+ Plugin validasi kata sandi didukung.
+ Anda tidak dapat mengubah pengaturan plugin MySQL apa pun, termasuk plugin validasi kata sandi.
+ Plugin X tidak didukung.
+ Replikasi multisumber tidak didukung.

## Model hak akses berbasis peran
<a name="AuroraMySQL.privilege-model"></a>

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](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-dump-instance-schema.html#mysql-shell-utilities-dump-about).

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](https://dev.mysql.com/doc/refman/8.0/en/roles.html) 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.

**Topics**
+ [rds\$1superuser\$1role](#AuroraMySQL.privilege-model.rds_superuser_role)
+ [Hak istimewa memeriksa pengguna untuk replikasi log biner](#AuroraMySQL.privilege-model.binlog)
+ [Peran untuk mengakses layanan lain AWS](#AuroraMySQL.privilege-model.other)

### rds\$1superuser\$1role
<a name="AuroraMySQL.privilege-model.rds_superuser_role"></a>

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`
+ `FLUSH_OPTIMIZER_COSTS`(Aurora MySQL versi 3.09 dan lebih tinggi)
+ `FLUSH_STATUS`(Aurora MySQL versi 3.09 dan lebih tinggi)
+ `FLUSH_TABLES`(Aurora MySQL versi 3.09 dan lebih tinggi)
+ `FLUSH_USER_RESOURCES`(Aurora MySQL versi 3.09 dan lebih tinggi)
+ `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
<a name="AuroraMySQL.privilege-model.binlog"></a>

Aurora MySQL versi 3 mencakup hak istimewa memeriksa pengguna untuk replikasi log biner (binlog),. `rdsrepladmin_priv_checks_user` Selain hak istimewa`rds_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@localhost`Pengguna adalah pengguna yang dicadangkan. Jangan memodifikasinya.

### Peran untuk mengakses layanan lain AWS
<a name="AuroraMySQL.privilege-model.other"></a>

Aurora MySQL versi 3 mencakup peran yang dapat Anda gunakan untuk mengakses layanan lain. AWS Anda dapat menetapkan banyak peran ini sebagai alternatif untuk memberikan hak istimewa. Misalnya, Anda menentukan `GRANT AWS_LAMBDA_ACCESS TO user`, bukan `GRANT INVOKE LAMBDA ON *.* TO user`. Untuk prosedur untuk mengakses AWS layanan lain, lihat[Mengintegrasikan Amazon Aurora MySQL dengan layanan lain AWS](AuroraMySQL.Integrating.md). Aurora MySQL versi 3 mencakup peran berikut yang terkait dengan mengakses layanan lain: AWS 
+ `AWS_LAMBDA_ACCESS`Sebuah alternatif untuk hak `INVOKE LAMBDA` istimewa. Untuk informasi penggunaan, lihat [Menginvokasi fungsi Lambda dari klaster DB Amazon Aurora MySQL](AuroraMySQL.Integrating.Lambda.md).
+ `AWS_LOAD_S3_ACCESS`Sebuah alternatif untuk hak `LOAD FROM S3` istimewa. Untuk informasi penggunaan, lihat [Memuat data ke klaster DB Amazon Aurora MySQL dari file teks di bucket Amazon S3](AuroraMySQL.Integrating.LoadFromS3.md).
+ `AWS_SELECT_S3_ACCESS`Sebuah alternatif untuk hak `SELECT INTO S3` istimewa. Untuk informasi penggunaan, lihat [Menyimpan data dari klaster DB Amazon Aurora MySQL ke dalam file teks di bucket Amazon S3](AuroraMySQL.Integrating.SaveIntoS3.md).
+ `AWS_COMPREHEND_ACCESS`Sebuah alternatif untuk hak `INVOKE COMPREHEND` istimewa. Untuk informasi penggunaan, lihat [Memberikan akses pengguna basis data ke machine learning Aurora](mysql-ml.md#aurora-ml-sql-privileges).
+ `AWS_SAGEMAKER_ACCESS`Sebuah alternatif untuk hak `INVOKE SAGEMAKER` istimewa. Untuk informasi penggunaan, lihat [Memberikan akses pengguna basis data ke machine learning Aurora](mysql-ml.md#aurora-ml-sql-privileges).
+ `AWS_BEDROCK_ACCESS`— Tidak ada `INVOKE` hak istimewa analog untuk Amazon Bedrock. Untuk informasi penggunaan, lihat [Memberikan akses pengguna basis data ke machine learning Aurora](mysql-ml.md#aurora-ml-sql-privileges).

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`@`%` |
+-----------------------------------------------------+
```

## Menemukan ID server database
<a name="AuroraMySQL.server-id"></a>

ID server database (`server_id`) diperlukan untuk replikasi biner logging (binlog). Cara menemukan ID server berbeda di Aurora MySQL dari MySQL Komunitas.

Di MySQL Komunitas, ID server adalah nomor, yang Anda dapatkan dengan menggunakan sintaks berikut saat masuk ke server:

```
mysql> select @@server_id;

+-------------+
| @@server_id |
+-------------+
| 2           |
+-------------+
1 row in set (0.00 sec)
```

Di Aurora MySQL, ID server adalah ID instans DB, yang Anda dapatkan dengan menggunakan sintaks berikut saat masuk ke instance DB:

```
mysql> select @@aurora_server_id;

+------------------------+
| @@aurora_server_id     |
+------------------------+
| mydbcluster-instance-2 |
+------------------------+
1 row in set (0.00 sec)
```

Untuk informasi lebih lanjut tentang replikasi binlog, lihat. [Replikasi antara Aurora dan MySQL atau antara Aurora dan klaster DB Aurora lainnya (replikasi log biner)](AuroraMySQL.Replication.MySQL.md)

## Autentikasi
<a name="AuroraMySQL.mysql80-authentication"></a>

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`. Namun, Anda dapat membuat pengguna baru dan mengubah pengguna saat ini, dan kata sandi masing-masing menggunakan plugin otentikasi baru. Berikut adalah contohnya.

```
mysql> CREATE USER 'testnewsha'@'%' IDENTIFIED WITH caching_sha2_password BY 'aNewShaPassword';
Query OK, 0 rows affected (0.74 sec)
```