Halaman ini menjelaskan cara menjalankan pernyataan SQL terhadap database di instance Cloud SQL menggunakan Data API. Dengan Data API, Anda menggunakan Cloud SQL Admin API dan gcloud CLI untuk menjalankan pernyataan SQL pada instance mana pun tempat Anda mengaktifkan akses Data API.
Anda dapat menggunakan Data API dengan instance yang menggunakan alamat IP publik, akses layanan pribadi, atau Private Service Connect. Data API mendukung semua jenis pernyataan SQL, termasuk bahasa pengolahan data (DML), bahasa definisi data (DDL), dan bahasa kueri data (DQL). Data API cocok untuk menjalankan pernyataan administratif kecil dan cepat, seperti membuat peran atau pengguna database dan melakukan pembaruan skema kecil. Anda juga dapat menggunakan Data API untuk mengaktifkan ekstensi PostgreSQL.
Sebelum memulai
Sebelum Anda dapat menjalankan pernyataan SQL pada instance, lakukan langkah-langkah berikut.
Mengonfigurasi pengguna database
Data API perlu diautentikasi sebagai pengguna database untuk menjalankan pernyataan SQL. Anda dapat melakukan autentikasi sebagai pengguna bawaan, pengguna IAM, akun layanan IAM, atau grup IAM.
Untuk mengautentikasi menggunakan IAM, lakukan hal berikut:
- Konfigurasi instance untuk autentikasi database IAM.
- Tambahkan pengguna, akun layanan, atau grup IAM ke instance.
- Berikan peran atau hak istimewa yang diperlukan kepada akun untuk menjalankan pernyataan SQL. Anda dapat menetapkan peran database saat membuat
akun atau memperbarui
akun. Jika Anda telah membuat peran database kustom dengan
hak istimewa terendah,
tetapkan peran tersebut ke akun. Jika tidak, tetapkan peran
cloudsqlsuperuseryang telah ditentukan sebelumnya ke akun, gunakan Data API untuk membuat peran database kustom baru dengan hak istimewa yang lebih rendah, lalu berikan peran baru ke akun sebagai pengganticloudsqlsuperuser.
Untuk melakukan autentikasi sebagai pengguna bawaan menggunakan sandi, lakukan hal berikut:
- Buat akun pengguna dengan sandi yang tidak kosong.
Anda juga dapat menggunakan pengguna default
postgres. - Berikan peran atau hak istimewa yang diperlukan kepada akun untuk menjalankan pernyataan SQL. Anda dapat menetapkan peran database saat membuat
akun atau memperbarui
akun. Jika Anda telah membuat peran database kustom dengan
hak istimewa terendah,
tetapkan peran tersebut ke akun. Jika tidak, tetapkan peran
cloudsqlsuperuseryang telah ditentukan sebelumnya ke akun, gunakan Data API untuk membuat peran database kustom baru dengan hak istimewa yang lebih rendah, lalu berikan peran baru ke akun sebagai pengganticloudsqlsuperuser. - Gunakan Secret Manager untuk membuat secret regional untuk menyimpan sandi. Untuk keamanan, Data API meminta nama resource rahasia, bukan sandi dalam permintaan API. Secret regional harus disimpan di region yang sama dengan instance Cloud SQL Anda. Secret yang dibuat menggunakan endpoint global Secret Manager tidak didukung meskipun disimpan di region yang sama.
- Memberi pemanggil Data API
roles/secretmanager.secretAccessor. Sebagai praktik terbaik, tentukan kondisi IAM untuk mengizinkan pengguna mengakses secret tertentu, tetapi tidak mengakses secret lain dalam project.
Peran atau izin yang diperlukan
Akun pengguna atau akun layanan yang digunakan untuk memanggil Data API harus memiliki izin
untuk menjalankan pernyataan SQL, cloudsql.instances.executesql. Izin ini disertakan dalam salah satu peran bawaan berikut:
Cloud SQL Admin(roles/cloudsql.admin)Cloud SQL Instance User(roles/cloudsql.instanceUser)Cloud SQL Studio User(roles/cloudsql.studioUser)
Anda juga dapat menentukan peran khusus IAM
untuk akun pengguna atau akun layanan yang menyertakan izin
cloudsql.instances.executesql. Izin ini
didukung dalam
peran khusus IAM.
Saat menggunakan secret Secret Manager untuk melakukan autentikasi, pengguna atau akun layanan juga harus memiliki izin untuk mengakses secret, secretmanager.versions.access. Izin ini disertakan dalam salah satu
peran bawaan berikut:
Secret Manager Secret Accessor(roles/secretmanager.secretAccessor)Secret Manager Admin(roles/secretmanager.admin)
Mengaktifkan atau menonaktifkan Data API
Untuk menggunakan Data API, Anda harus mengaktifkannya untuk setiap instance. Anda dapat menonaktifkan Data API kapan saja.
Konsol
-
Di Konsol Google Cloud , buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Dari menu navigasi SQL, pilih Koneksi.
- Klik tab Networking.
- Centang kotak Izinkan Data API.
- Klik Simpan.
gcloud
Untuk mengaktifkan akses Data API pada instance, gunakan perintah gcloud sql instances patch dengan flag --data-api-access=ALLOW_DATA_API:
gcloud sql instances patch INSTANCE_NAME --data-api-access=ALLOW_DATA_API
Untuk menonaktifkan akses Data API, gunakan tanda --data-api-access=DISALLOW_DATA_API:
gcloud sql instances patch INSTANCE_NAME --data-api-access=DISALLOW_DATA_API
Ganti INSTANCE_NAME dengan nama instance tempat mengaktifkan atau menonaktifkan Data API.
REST
Untuk mengaktifkan akses Data API pada instance, kirim permintaan PATCH ke endpoint instances.patch:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Isi permintaan harus berisi kolom dataApiAccess yang ditetapkan ke ALLOW_DATA_API:
{ "dataApiAccess": "ALLOW_DATA_API" }
Untuk menonaktifkan akses Data API, tetapkan dataApiAccess ke DISALLOW_DATA_API.
Menjalankan pernyataan SQL
Anda dapat menjalankan pernyataan SQL terhadap database di instance Cloud SQL menggunakan gcloud CLI atau REST API.
Melakukan autentikasi menggunakan IAM
Anda dapat menjalankan pernyataan SQL menggunakan autentikasi database IAM.
gcloud
Untuk menjalankan pernyataan SQL terhadap database pada instance menggunakan gcloud CLI, gunakan perintah gcloud sql instances execute-sql.
gcloud sql instances execute-sql INSTANCE_NAME \ --database=DATABASE_NAME \ --sql=SQL_STATEMENT \ --partial-result-mode=PARTIAL_RESULT_MODE
Lakukan penggantian berikut:
- INSTANCE_NAME: nama instance.
- DATABASE_NAME: nama database dalam instance.
- SQL_STATEMENT: pernyataan SQL yang akan dieksekusi. Jika pernyataan berisi spasi atau karakter khusus shell, pernyataan harus diberi tanda kutip.
- PARTIAL_RESULT_MODE: optional. Mengontrol cara merespons saat hasil tidak lengkap. Dapat berupa
ALLOW_PARTIAL_RESULT,FAIL_PARTIAL_RESULT, atauPARTIAL_RESULT_MODE_UNSPECIFIED. Lihat Mengubah perilaku pemotongan.
Anda juga dapat menyertakan tanda --project=PROJECT_ID jika diperlukan.
Terraform
Anda dapat menggunakan Data API di Terraform untuk menyediakan resource dalam database seperti database, tabel, ekstensi, pengguna, dan pemberian hak istimewa, tanpa terhubung ke instance secara manual. Untuk menjalankan skrip SQL di Terraform, gunakan resource Terraform
google_sql_provision_script.
resource "google_sql_database_instance" "instance" { name = "my-instance" database_version = "POSTGRES_17" settings { tier = "db-perf-optimized-N-2" data_api_access = "ALLOW_DATA_API" # This allows the use of Data API. database_flags { name = "cloudsql.iam_authentication" value = "on" } } } /* * Create a database user for your account and grant roles so it has privilege to * access the database. Set the type toCLOUD_IAM_USERfor huamn account or *CLOUD_IAM_SERVICE_ACCOUNTfor service account. If a service account is used * and the instance is Postgres, trim the ".gserviceaccount.com" * suffix to avoid exceeding the username length limit. */ resource "google_sql_user" "iam_user" { name = "account-used-to-apply-this-config@example.com" instance = google_sql_database_instance.instance.name type = "CLOUD_IAM_USER" # Roles granted to the user. For least privilege, you can create smaller roles # and then assign them to this user in place of `cloudsqlsuperuser`. database_roles = ["cloudsqlsuperuser"] } resource "google_sql_database" "database" { name = "my-database" instance = google_sql_database_instance.instance.name } resource "google_sql_provision_script" "script" { # You can inline the script or import from a file likescript = file("${path.module}/script.sql")# When modified, the whole script will be executed again. It's recommended to # make the script idempotent with patterns likecreate if not exists ...or #if not exists (select ...) then ... end if. script = "CREATE TABLE IF NOT EXISTS table1 ( col VARCHAR(16) NOT NULL );" instance = google_sql_database_instance.instance.name database = google_sql_database.database.name description = "sql script to create tables" # The identity account used to apply your Terraform config must exist as an # IAM user or IAM service account in the instance. Terraform connects to the # instance via IAM database authentication to execute the script. depends_on = [google_sql_user.iam_user] }
Menerapkan perubahan
Untuk menerapkan konfigurasi Terraform di project Google Cloud , selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf—misalnyamain.tf. Dalam tutorial ini, file ini disebut sebagaimain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tfyang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yespada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka Google Cloud project Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
Menghapus perubahan
Menghapus resource google_sql_provision_script tidak akan menghapus resource dalam database yang dibuatnya. Untuk menghapusnya, Anda dapat menambahkan pernyataan secara eksplisit dalam skrip seperti drop ... if exists, lalu menerapkan perubahan.
REST
Untuk menjalankan pernyataan SQL terhadap database pada instance menggunakan REST API, kirim permintaan POST ke endpoint executeSql:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/executeSql
Isi permintaan harus berisi nama database dan pernyataan SQL:
{ "database": "DATABASE_NAME", "sqlStatement": "SQL_STATEMENT", "partialResultMode": "PARTIAL_RESULT_MODE" "autoIamAuthn": true }
Lakukan penggantian berikut:
- PROJECT_ID: project ID Anda.
- INSTANCE_NAME: nama instance.
- DATABASE_NAME: nama database dalam instance.
- SQL_STATEMENT: pernyataan SQL yang akan dieksekusi.
- PARTIAL_RESULT_MODE: optional. Mengontrol cara API merespons
saat hasilnya melebihi 10 MB. Dapat berupa
FAIL_PARTIAL_RESULT,ALLOW_PARTIAL_RESULT, atauPARTIAL_RESULT_MODE_UNSPECIFIED. Lihat Mengubah perilaku pemotongan.
Mengautentikasi menggunakan sandi
Anda dapat menjalankan pernyataan SQL menggunakan autentikasi sandi bawaan, saat sandi disimpan sebagai secret regional dengan Secret Manager di region yang sama dengan instance Cloud SQL.
gcloud
Untuk menjalankan pernyataan SQL terhadap database pada instance menggunakan gcloud CLI, gunakan perintah gcloud sql instances execute-sql.
gcloud sql instances execute-sql INSTANCE_NAME \ --database=DATABASE_NAME \ --sql=SQL_STATEMENT \ --user=USER \ --password-secret-version=PASSWORD_SECRET_VERSION \ --partial-result-mode=PARTIAL_RESULT_MODE
Lakukan penggantian berikut:
- INSTANCE_NAME: nama instance.
- DATABASE_NAME: nama database dalam instance.
- SQL_STATEMENT: pernyataan SQL yang akan dieksekusi. Jika pernyataan berisi spasi atau karakter khusus shell, pernyataan harus diberi tanda kutip.
- USER: pengguna database yang akan diautentikasi.
- PASSWORD_SECRET_VERSION: nama resource secret
Secret Manager yang menyimpan sandi untuk pengguna database.
Secret harus berupa secret
regional dan disimpan di region yang sama dengan instance Cloud SQL. Format nama resource yang diharapkan adalah
projects/{project}/locations/{location}/secrets/{secret}/versions/{secret_version}. - PARTIAL_RESULT_MODE: optional. Mengontrol cara merespons saat hasil tidak lengkap. Dapat berupa
ALLOW_PARTIAL_RESULT,FAIL_PARTIAL_RESULT, atauPARTIAL_RESULT_MODE_UNSPECIFIED. Lihat Mengubah perilaku pemotongan.
Terraform
Anda dapat menggunakan Data API di Terraform untuk menyediakan resource dalam database seperti database, tabel, ekstensi, pengguna, dan pemberian hak istimewa, tanpa terhubung ke instance secara manual. Untuk menjalankan skrip SQL di Terraform, gunakan resource Terraform
google_sql_provision_script.
resource "google_sql_user" "built_in_user" { name = "tf-user" host = "%" # Don't set this field for PostgreSQL and SQL Server. instance = google_sql_database_instance.instance.name password = "changeme" type = "BUILT_IN" } # Create a regional secret. Global secrets are not supported even if # located in one region only. resource "google_secret_manager_regional_secret" "secret" { secret_id = "db-password" # Use the same region as the Cloud SQL instance. location = "us-central1" } resource "google_secret_manager_regional_secret_version" "secret_version" { secret = google_secret_manager_regional_secret.secret.id secret_data = "changeme" } resource "google_sql_provision_script" "script" { # You can inline the script or import from a file likescript = file("${path.module}/script.sql")# When modified, the whole script will be executed again. It's recommended to # make the script idempotent with patterns likecreate if not exists ...or #if not exists (select ...) then ... end if. script = "CREATE TABLE IF NOT EXISTS table1 ( col VARCHAR(16) NOT NULL );" instance = google_sql_database_instance.instance.name database = google_sql_database.database.name description = "sql script to create tables" user = google_sql_user.built_in_user.name # The location should be the same as the Cloud SQL instance's location. password_secret_version = "projects/my-project/locations/us-central1/secrets/db-password/versions/latest" # The built-in database user and password secret version must be created # first. Cloud SQL will retrieve password from Secret Manager # and connect to this user account to execute your script. depends_on = [ google_sql_user.built_in_user, google_secret_manager_regional_secret_version.secret_version ] }
Menerapkan perubahan
Untuk menerapkan konfigurasi Terraform di project Google Cloud , selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf—misalnyamain.tf. Dalam tutorial ini, file ini disebut sebagaimain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tfyang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yespada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka Google Cloud project Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
Menghapus perubahan
Menghapus resource google_sql_provision_script tidak akan menghapus resource dalam database yang dibuatnya. Untuk menghapusnya, Anda dapat menambahkan pernyataan secara eksplisit dalam skrip seperti drop ... if exists, lalu menerapkan perubahan.
REST
Untuk menjalankan pernyataan SQL terhadap database pada instance menggunakan REST API, kirim permintaan POST ke endpoint executeSql:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/executeSql
Isi permintaan harus berisi nama database dan pernyataan SQL:
{ "database": "DATABASE_NAME", "sqlStatement": "SQL_STATEMENT", "user": "USER", "passwordSecretVersion": "PASSWORD_SECRET_VERSION", "partialResultMode": "PARTIAL_RESULT_MODE" }
Lakukan penggantian berikut:
- PROJECT_ID: project ID Anda.
- INSTANCE_NAME: nama instance.
- DATABASE_NAME: nama database dalam instance.
- SQL_STATEMENT: pernyataan SQL yang akan dieksekusi.
- USER: pengguna database yang akan diautentikasi.
- PASSWORD_SECRET_VERSION: nama resource secret
Secret Manager yang menyimpan sandi untuk pengguna database.
Secret harus berupa secret
regional dan disimpan di region yang sama dengan instance Cloud SQL. Format nama resource yang diharapkan adalah
projects/{project}/locations/{location}/secrets/{secret}/versions/{secret_version}. - PARTIAL_RESULT_MODE: optional. Mengontrol cara API merespons
saat hasilnya melebihi 10 MB. Dapat berupa
FAIL_PARTIAL_RESULT,ALLOW_PARTIAL_RESULT, atauPARTIAL_RESULT_MODE_UNSPECIFIED. Lihat Mengubah perilaku pemotongan.
Mengubah perilaku pemotongan
Anda dapat mengontrol cara penanganan hasil besar saat menjalankan SQL, dengan menyertakan
kolom "partialResultMode" dalam permintaan. Kolom ini menerima nilai berikut:
FAIL_PARTIAL_RESULT: Default. Menampilkan error jika hasilnya melebihi 10 MB atau jika hanya sebagian hasil yang dapat diambil. Jangan menampilkan hasilnya.ALLOW_PARTIAL_RESULT: Menampilkan hasil yang dipangkas dan menyetelpartial_resultke benar jika hasilnya melebihi 10 MB atau jika hanya sebagian hasil yang dapat diambil karena error. Jangan menampilkan error.PARTIAL_RESULT_MODE_UNSPECIFIED: Mode tidak ditentukan, pada dasarnya sama denganFAIL_PARTIAL_RESULT.
Kueri audit
Anda dapat melacak nama aplikasi dengan menyetel kolom applicationName dalam
permintaan. Database akan melacak nama aplikasi dalam statistik sesi, misalnya, dalam tabel pg_stat_activity.
Anda dapat menggunakan Query Insights untuk melacak informasi selengkapnya tentang kueri dan menganalisis masalah performa.
Perhatikan bahwa Query Insights akan menampilkan IP klien kueri ExecuteSql adalah localhost karena koneksi database dibuat dari dalam instance Cloud SQL itu sendiri.
Anda juga dapat menggunakan pg-audit untuk mencatat kueri untuk tujuan keamanan atau kepatuhan.
Batasan
- Batas ukuran untuk respons adalah 10 MB. Hasil yang melebihi ukuran ini akan dipangkas jika
partialResultModedisetel keALLOW_PARTIAL_RESULT, jika tidak, error akan ditampilkan. - Permintaan dibatasi hingga 0,5 MB.
- Anda hanya dapat menjalankan pernyataan SQL untuk instance Cloud SQL untuk PostgreSQL yang sedang berjalan.
- Cloud SQL tidak mendukung penggunaan Data API dengan instance yang disiapkan untuk replikasi server eksternal.
- Permintaan yang memerlukan waktu lebih dari 30 detik akan dibatalkan. Menetapkan waktu tunggu pernyataan yang lebih tinggi menggunakan
SET STATEMENT_TIMEOUTtidak didukung. Cloud SQL membatasi jumlah permintaan
executeSqlserentak per instance untuk mencegah kelebihan beban. Jika batas tercapai, permintaan berikutnya akan gagal dan menampilkan salah satu error berikut:At most 'x' concurrent queries may be run on this instance. Try again later.Maximum concurrent reads 'x' reached.
Batas (
x) adalah 10 kueri per instance.Setiap respons dapat berisi maksimum 10 pesan atau peringatan database.
Jika ada error sintaks atau eksekusi pernyataan, tidak ada hasil yang ditampilkan.
Data API tidak dapat melakukan autentikasi sebagai pengguna bawaan dengan sandi kosong.
Pernyataan yang menggunakan banyak memori dapat menyebabkan error kehabisan memori. Untuk mengetahui informasi selengkapnya tentang cara menghindari error ini, lihat Praktik terbaik untuk mengelola penggunaan memori. Instance database yang berjalan dengan pemakaian memori tinggi sering menyebabkan masalah performa, terhenti, atau bahkan periode nonaktif database.
Data API dapat diblokir sementara untuk tujuan integritas data saat operasi pemeliharaan tertentu sedang berlangsung di instance. Coba lagi nanti jika hal ini terjadi.
- Jika Anda menjalankan beberapa pernyataan di editor kueri secara bersamaan dan satu atau beberapa pernyataan menghasilkan error, maka eksekusi semua pernyataan akan dibatalkan dan error pertama yang terjadi akan ditampilkan.
- Saat server database mendeteksi sintaksis kueri yang tidak valid, server akan membuat
log di
postgres.log. Entri ini muncul sebagai entricloudsqladmin, dan berisi kueri yang tidak valid, posisi error sintaksis, dan pesan error yang sesuai. Untuk menghapus log ini dari tampilan Anda, konfigurasikan filter log untuk mengecualikancloudsqladmindatabase, penggunacloudsqladmin, atau keduanya.
- Skrip SQL dan respons eksekusinya dapat transit melalui lokasi perantara antara klien Anda dan lokasi instance target. Oleh
karena itu, permintaan akan gagal dengan error "tidak didukung untuk instance
di folder paket kontrol Assured Workloads tertentu" untuk project Assured Workloads tertentu dan untuk project dengan
constraints/sql.restrictNoncompliantResourceCreationyang diterapkan secara manual.
Memecahkan masalah
Bagian ini berisi informasi tentang masalah yang terkait dengan penggunaan Data API, beserta langkah-langkah untuk memecahkan masalah tersebut.
| Masalah | Pemecahan masalah |
|---|---|
The instance doesn't allow using ExecuteSql to access this instance.
You can allow it by patching the instance with {settings: { dataApiAccess:
"ALLOW_DATA_API" }}
|
Data API dinonaktifkan secara default. Aktifkan Data API di instance untuk mengatasi masalah ini. |
Secret cannot be provided when auto_iam_authn is true.
|
Saat Anda menyetel auto_iam_authn ke true, Anda
melakukan autentikasi ke database menggunakan IAM.
Metode autentikasi ini tidak memerlukan sandi atau secret.
Lihat
Melakukan autentikasi menggunakan IAM.
|
ExecuteSql API is not supported for instances in certain
Assured Workloads control packages folders yet.
|
Skrip SQL dan respons eksekusinya dapat transit melalui lokasi perantara
antara klien Anda dan lokasi instance target. Oleh
karena itu, permintaan akan gagal untuk instance di project Assured Workloads
tertentu. Jika project Anda tidak terdaftar di Assured Workloads, tetapi
constraints/sql.restrictNoncompliantResourceCreation diterapkan secara manual, minta administrator organisasi Anda untuk
menghapus batasan dan masalah akan diselesaikan pada instance yang baru dibuat.
|
IAM authentication is not enabled for the instance
|
Konfigurasi instance untuk autentikasi IAM guna mengatasi masalah ini. |
The database is currently unavailable.
|
Instance mungkin sedang dimulai ulang, menjalani pemeliharaan, atau dalam status tidak responsif. Periksa status instance, lalu coba lagi nanti. |