Halaman ini menjelaskan cara menghubungkan klien sqlcmd ke instance Cloud SQL Anda, dari komputer klien yang menjalankan Linux atau instance Compute Engine Linux, menggunakan image Docker Cloud SQL Auth Proxy.
Sebelum memulai
Anda harus:
- Menginstal gcloud CLI. Pelajari lebih lanjut.
- Mengizinkan gcloud CLI. Pelajari lebih lanjut.
- Menetapkan project default untuk gcloud CLI. Pelajari lebih lanjut.
- Mengonfigurasi pengguna database pada instance Cloud SQL. Pelajari lebih lanjut.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk terhubung ke instance Cloud SQL menggunakan image Docker Cloud SQL Auth Proxy, minta administrator untuk memberi Anda peran IAM berikut pada project Anda:
-
Untuk terhubung menggunakan Cloud SQL Auth Proxy:
Cloud SQL Client (
roles/cloudsql.client) -
Jika Anda menggunakan autentikasi database IAM:
Cloud SQL Instance User (
roles/cloudsql.instanceUser)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menghubungkan klien sqlcmd menggunakan image Docker Proxy Auth Cloud SQL
Untuk terhubung menggunakan image Docker Cloud SQL Auth Proxy:
Aktifkan Cloud SQL Admin API, jika belum diaktifkan.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan izin
serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.- Jika Anda menggunakan instance Compute Engine, siapkan instance tersebut:
-
Tampilkan properti instance Compute Engine:
gcloud compute instances describe [GCE_INSTANCE_NAME]
- Verifikasi akun layanan
dan cakupan akses yang dikonfigurasi pada instance:
- Pastikan akun layanan yang terpasang ke VM memiliki peran Identity and Access Management (IAM) yang telah ditetapkan Klien Cloud SQL (
roles/cloudsql.client) untuk terhubung menggunakan Cloud SQL Auth Proxy atau Cloud SQL Admin API. Jika Anda menggunakan autentikasi database IAM, berikan juga peran Pengguna Instance Cloud SQL (roles/cloudsql.instanceUser). Untuk mengetahui informasi selengkapnya tentang peran yang telah ditetapkan, lihat Peran yang diperlukan. - Pastikan cakupan akses VM ditetapkan ke
cloud-platform(https://www.googleapis.com/auth/cloud-platform, atau Allow full access to all Cloud APIs di konsol Google Cloud ). Cakupan akses adalah metode lama untuk menentukan otorisasi untuk VM dan hanya menetapkan cakupan otorisasi OAuth maksimum untuk permintaan. Kelola kontrol akses melalui peran IAM yang telah ditetapkan, bukan cakupan akses.
Jika instance Compute Engine Anda tidak memiliki peran akun layanan atau cakupan akses yang diperlukan, Anda dapat mengupdate instance tersebut. Untuk mengetahui informasi selengkapnya tentang cara mengubah akun layanan dan cakupan akses di VM, lihat Mengubah akun layanan yang terpasang dalam dokumentasi Compute Engine.
- Pastikan akun layanan yang terpasang ke VM memiliki peran Identity and Access Management (IAM) yang telah ditetapkan Klien Cloud SQL (
- Buka koneksi terminal ke instance menggunakan petunjuk pada Menghubungkan ke instance Linux.
-
Tampilkan properti instance Compute Engine:
-
Instal klien sqlcmd di instance Compute Engine atau komputer
klien, jika belum diinstal.
Debian/Ubuntu
Untuk Debian/Ubuntu, instal alat command line SQL Server yang berlaku.
CentOS/RHEL
Untuk CentOS/RHEL, instal alat command line SQL Server yang berlaku.
OpenSUSE
Untuk openSUSE, instal alat command line SQL Server yang berlaku.
Platform lainnya
Lihat halaman landing untuk menginstal SQL Server, serta halaman download SQL Server.
-
Jika diperlukan, instal klien Docker:
curl https://get.docker.com | sh sudo usermod -aG docker $USER
Jika Anda menggunakan instance Compute Engine yang dioptimalkan untuk container, maka klien Docker telah terinstal di dalamnya.
-
Instal image Docker Cloud SQL Auth Proxy dari
Google Container Registry.
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.27.0
- Jika Anda menjalankan image Docker Cloud SQL Auth Proxy di mesin lokal (bukan
instance Compute Engine), atau jika akun layanan yang dilampirkan ke
instance Compute Engine Anda tidak memiliki peran IAM dan
cakupan akses yang diperlukan, buat akun layanan Google Cloud .
- Di konsol Google Cloud , buka halaman Service accounts.
- Pilih project yang berisi instance Cloud SQL.
- Klik Create service account.
- Pada kolom Nama akun layanan, masukkan nama deskriptif untuk akun tersebut.
- Ubah ID akun layanan menjadi nilai yang unik dan dapat dikenali, kemudian klik Buat dan lanjutkan.
-
Klik kolom Pilih peran dan pilih salah satu dari peran berikut:
- Cloud SQL > Klien Cloud SQL
- Cloud SQL > Editor Cloud SQL
- Cloud SQL > Admin Cloud SQL
- Klik Selesai untuk menyelesaikan pembuatan akun layanan.
- Klik menu tindakan untuk akun layanan baru kemudian pilih Mengelola kunci.
- Klik menu drop-down Tambahkan kunci kemudian klik Buat kunci baru.
-
Lakukan konfirmasi bahwa jenis kunci tersebut adalah JSON kemudian klik Buat.
File kunci pribadi telah didownload ke mesin. Anda dapat memindahkan file tersebut ke lokasi lain. Simpan file kunci dengan aman.
Anda memberikan jalur ke file kunci sebagai "PATH_TO_KEY_FILE" saat memulai Cloud SQL Auth Proxy.
- Buka halaman Instance Cloud SQL di konsol Google Cloud .
-
Pilih instance untuk membuka halaman Instance details-nya dan salin Instance connection name.
Misalnya:
myproject:us-central1:myinstance. -
Mulai Cloud SQL Auth Proxy.
Soket TCP
docker run -d
-v PATH_TO_KEY_FILE:/path/to/service-account-key.json
-p 127.0.0.1:1433:1433
gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.27.0
--address 0.0.0.0 --port 1433
--credentials-file /path/to/service-account-key.json INSTANCE_CONNECTION_NAMEJika Anda menggunakan kredensial yang disediakan oleh instance Compute Engine, jangan sertakan parameter
--credentials-filedan baris-v PATH_TO_KEY_FILE:/path/to/service-account-key.json.Selalu tentukan awalan
127.0.0.1di-pagar Cloud SQL Auth Proxy tidak terekspos di luar host lokal. Flag--address 0.0.0.0diperlukan agar port dapat diakses dari luar container Docker. - Mulai klien:
String koneksi yang Anda gunakan bergantung pada apakah Anda memulai Cloud SQL Auth Proxy menggunakan soket TCP atau Docker.
Soket TCP
- Mulai klien sqlcmd:
sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
Saat Anda terhubung menggunakan soket TCP, Proxy Auth Cloud SQL diakses melalui
127.0.0.1. - Jika diminta, masukkan sandi.
- Perintah sqlcmd akan muncul.
- Mulai klien sqlcmd:
Pastikan image Docker Cloud SQL Auth Proxy selalu terbaru
Image Docker Cloud SQL Auth Proxy didasarkan pada versi tertentu dari Cloud SQL Auth Proxy. Ketika versi baru Cloud SQL Auth Proxy tersedia, tarik image Docker Cloud SQL Auth Proxy versi baru untuk menjaga lingkungan Anda tetap yang terbaru. Anda dapat melihat versi terbaru Cloud SQL Auth Proxy dengan mengecek halaman rilis GitHub Cloud SQL Auth Proxy.
Langkah berikutnya
- Pelajari lebih lanjut Cloud SQL Auth Proxy.
- Dapatkan bantuan pemecahan masalah koneksi untuk Proxy Auth Cloud SQL.
- Buat pengguna dan database.
- Pelajari opsi untuk terhubung ke instance dari aplikasi Anda.
- Pelajari Docker.
- Pelajari Google Container Registry.
- Pelajari opsi untuk dukungan.