Halaman ini menjelaskan cara melindungi database Spanner dari penghapusan yang tidak disengaja.
Proteksi dari penghapusan database Spanner mencegah penghapusan database yang ada secara tidak sengaja oleh pengguna atau akun layanan yang memiliki izin IAM yang diperlukan untuk menghapus database. Dengan mengaktifkan proteksi dari penghapusan database, Anda dapat mengamankan database yang penting untuk aplikasi dan layanan Anda. Gunakan proteksi dari penghapusan database bersama dengan pemulihan point-in-time dan fitur pencadangan untuk menyediakan serangkaian kemampuan perlindungan data yang komprehensif untuk database Spanner Anda.
Secara default, setelan proteksi dari penghapusan dinonaktifkan saat Anda membuat database baru. Anda dapat mengaktifkan setelan proteksi dari penghapusan setelah pembuatan database berhasil. Selain itu, Anda dapat mengaktifkan setelan ini di database yang ada. Jika ingin melindungi beberapa database, aktifkan setelan di setiap database satu per satu. Mengaktifkan atau menonaktifkan proteksi dari penghapusan tidak akan berdampak pada performa database. Jika Anda perlu menghapus database yang mengaktifkan perlindungan database, Anda harus menonaktifkan perlindungan tersebut sebelum dapat menghapus database.
Batasan
Anda tidak dapat mengaktifkan proteksi dari penghapusan database dalam skenario berikut:
- Jika database sedang dihapus.
- Jika database sedang dipulihkan dari cadangan. (Setelah operasi pemulihan selesai, Anda dapat mengaktifkan perlindungan database).
Selain itu, cadangan database dan database yang dipulihkan dari cadangan tidak mewarisi setelan proteksi dari penghapusan database dari database sumbernya. Setelah memulihkan database dari cadangan, Anda harus mengaktifkan perlindungan penghapusan database secara terpisah.
Jika Anda menghapus project, proteksi dari penghapusan database Spanner tidak akan mencegah penghapusan database atau instance Anda. Untuk mengetahui informasi selengkapnya tentang hal yang terjadi saat Anda menghapus project, lihat Menghentikan (menghapus) project.
Kontrol akses dengan IAM
Untuk mengaktifkan setelan proteksi dari penghapusan database, Anda harus memiliki izin IAM tertentu.
Anda harus memiliki izin spanner.databases.update untuk mengaktifkan atau menonaktifkan proteksi dari penghapusan database. Jika Anda hanya perlu melihat status konfigurasi database, Anda harus memiliki izin spanner.databases.list atau spanner.databases.get. Untuk mengetahui informasi tentang cara memberikan
izin IAM Spanner, lihat
Menerapkan izin IAM.
Jika memiliki peran Admin Database Spanner
roles/spanner.databaseAdmin yang telah ditentukan sebelumnya untuk
database, Anda dapat memperbarui dan mengaktifkan proteksi dari penghapusan database.
Anda dapat mengaktifkan setelan proteksi dari penghapusan database di database yang ada untuk mencegah penghapusan database secara tidak sengaja.
Mengaktifkan proteksi dari penghapusan database
Anda dapat mengaktifkan proteksi dari penghapusan database menggunakan gcloud CLI, library klien, dan REST atau RPC API. Anda tidak dapat mengaktifkan proteksi dari penghapusan database menggunakan Google Cloud konsol.
gcloud
Untuk mengaktifkan setelan proteksi dari penghapusan database, jalankan perintah berikut:
gcloud spanner databases update
DATABASE_ID --instance=INSTANCE_ID
--enable-drop-protection [--async]
Opsi berikut diperlukan:
DATABASE_ID- ID database.
INSTANCE_ID- ID instance untuk database.
Opsi berikut bersifat opsional:
--async- Langsung tampilkan, tanpa menunggu operasi yang sedang berlangsung selesai.
Library klien
C++
C#
Go
Java
Node.js
PHP
Python
Ruby
Memeriksa apakah proteksi dari penghapusan diaktifkan untuk database
Anda dapat menentukan apakah database Anda memiliki proteksi dari penghapusan yang diaktifkan dengan melihat konfigurasi database.
gcloud
Untuk memeriksa apakah proteksi dari penghapusan diaktifkan untuk database, Anda dapat menjalankan perintah gcloud spanner databases describe untuk mendapatkan informasi mendetail tentang database, atau Anda dapat menjalankan gcloud spanner databases list untuk mendapatkan informasi mendetail tentang database dalam instance.
gcloud spanner databases describe
projects/PROJECT_ID/instances/INSTANCE_ID/databases/DATABASE_ID
Opsi berikut diperlukan:
PROJECT_ID- ID project untuk database.
INSTANCE_ID- ID instance untuk database.
DATABASE_ID- ID database.
Jika proteksi dari penghapusan diaktifkan, Anda akan melihat parameter enableDropProtection: true dalam output.
Menonaktifkan proteksi dari penghapusan database
Anda dapat menonaktifkan perlindungan penghapusan database jika database tidak lagi memerlukan perlindungan ini atau jika Anda perlu menghapus database yang mengaktifkan setelan ini.
Jika ingin menghapus instance yang memiliki satu atau beberapa database dengan proteksi dari penghapusan diaktifkan, Anda harus menonaktifkan proteksi dari penghapusan di semua database dalam instance tersebut terlebih dahulu sebelum dapat menghapus instance.
gcloud
Untuk menonaktifkan proteksi dari penghapusan database, jalankan perintah berikut:
gcloud spanner databases update
DATABASE_ID --instance=INSTANCE_ID
--no-enable-drop-protection [--async]
Opsi berikut diperlukan:
DATABASE_ID- ID database.
INSTANCE_ID- ID instance untuk database.
Opsi berikut bersifat opsional:
--async- Langsung tampilkan, tanpa menunggu operasi yang sedang berlangsung selesai.
Langkah berikutnya
- Pelajari cara Membuat dan mengelola database.
- Pelajari lebih lanjut cara mencadangkan dan memulihkan database.
- Pelajari cara melakukan pembaruan skema.