Menggunakan Microsoft Active Directory yang dikelola pelanggan (CMAD)

Halaman ini menjelaskan cara menggunakan Microsoft Active Directory yang dikelola pelanggan (juga disebut sebagai AD (CMAD) yang dikelola pelanggan):

  • Mengintegrasikan Cloud SQL untuk SQL Server dengan CMAD.
  • Menghubungkan ke instance dengan pengguna Active Directory (AD).

Instance Cloud SQL yang terintegrasi dengan CMAD mendukung Autentikasi Windows selain Autentikasi SQL.

Sebelum memulai

Buat instance dengan Autentikasi Windows

Anda dapat berintegrasi dengan CMAD selama pembuatan instance, dengan mengaktifkan Autentikasi Windows untuk instance. Untuk berintegrasi, pilih domain untuk bergabung dengan instance. Jika bergabung dengan domain gagal, pembuatan instance akan gagal.

Sebagai persiapan untuk membuat instance dengan Autentikasi Windows, tinjau tips serta batasan dan alternatif.

Meskipun Anda dapat memilih untuk menggunakan IP publik, instance Cloud SQL juga harus memiliki akses ke IP pribadi.

Gunakan salah satu opsi berikut untuk membuat instance yang terintegrasi dengan CMAD dan, sebagai hasilnya, diaktifkan untuk Autentikasi Windows. Untuk mengetahui informasi tentang perintah dasar untuk membuat instance, lihat Membuat instance.

gcloud

Untuk membuat instance dengan CMAD, jalankan perintah berikut:

  gcloud sql instances create INSTANCE_NAME \
  --database-version=DATABASE_VERSION \
  --root-password=PASSWORD \
  --active-directory-domain=DOMAIN \
  --active-directory-mode=CUSTOMER_MANAGED_ACTIVE_DIRECTORY \
  --active-directory-organizational-unit="OU=CLOUD_OU,DC=DC1,DC=DC2" \
  --active-directory-secret-manager-key=projects/PROJECT_ID/secrets/SECRET_NAME \
  --active-directory-dns-servers=IP1,IP2 \
  --cpu=CPU \
  --memory=MEMORY  \
  --network=NETWORK

Ganti kode berikut:

  • INSTANCE_NAME: nama instance Cloud SQL untuk SQL Server yang ingin Anda buat.
  • DATABASE_VERSION: versi database yang ingin Anda gunakan, seperti SQLSERVER_2019_STANDARD.
  • DOMAIN: nama domain yang ingin Anda gunakan, seperti myaddomain.com.
  • CUSTOMER_MANAGED_ACTIVE_DIRECTORY: menunjukkan mode domain. Jika domain dibuat dan dimiliki oleh Google, masukkan MANAGED_ACTIVE_DIRECTORY. Jika domain dibuat dan dimiliki oleh pengguna, masukkan CUSTOMER_MANAGED_ACTIVE_DIRECTORY.
  • CLOUD_OU: adalah nama unit organisasi yang ingin Anda gunakan. Contoh, CLOUDOU. Anda dapat memasukkan unit organisasi sebanyak yang diperlukan.
  • DC1: adalah komponen domain pertama yang digunakan untuk nama khusus unit organisasi. Contoh, DOMAIN. Anda dapat memasukkan sebanyak mungkin komponen domain sesuai kebutuhan.
  • DC2: adalah komponen domain kedua yang digunakan untuk nama khusus unit organisasi. Contoh, COM. Nilai lengkap untuk flag --active-directory-organizational-unit mungkin terlihat seperti berikut: "OU=CLOUDOU,DC=DOMAIN,DC=COM". Anda dapat memasukkan komponen domain sebanyak yang diperlukan.
  • PROJECT_ID: adalah project ID tempat instance akan berada.
  • SECRET_NAME: adalah secret yang ingin Anda gunakan.
  • IP1: adalah alamat IP server DNS pertama yang ingin Anda gunakan, seperti 10.20.30.40. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.
  • IP2: adalah alamat IP server DNS kedua yang ingin Anda gunakan, seperti 20.30.40.50. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.
  • CPU: adalah jumlah CPU yang ingin Anda tetapkan ke instance.
  • MEMORY: adalah jumlah memori yang ingin Anda tetapkan ke instance.
  • NETWORK: adalah nama jaringan yang akan terhubung ke instance Anda, seperti projects/my-gcp-project-123/global/networks/my-production-vpc.

REST v1

Untuk membuat instance dengan CMAD, gunakan permintaan POST dengan metode users:insert.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

Ganti kode berikut:

  • DATABASE_VERSION: versi database yang ingin Anda gunakan, seperti SQLSERVER_2019_STANDARD.
  • INSTANCE_NAME: nama instance Cloud SQL untuk SQL Server yang ingin Anda buat.
  • REGION: region tempat Anda ingin instance berada, seperti us-central1.
  • PASSWORD: sandi untuk instance.
  • MACHINE_TYPE: jenis mesin yang ingin Anda gunakan untuk instance, seperti db-n1-standard-8.
  • NETWORK: adalah nama jaringan yang akan terhubung ke instance Anda, seperti projects/my-gcp-project-123/global/networks/my-production-vpc.
  • DOMAIN: nama domain yang ingin Anda gunakan, seperti myaddomain.com.
  • CUSTOMER_MANAGED_ACTIVE_DIRECTORY: menunjukkan mode domain. Jika domain dibuat dan dimiliki oleh Google, masukkan MANAGED_ACTIVE_DIRECTORY. Jika domain dibuat dan dimiliki oleh pengguna, masukkan CUSTOMER_MANAGED_ACTIVE_DIRECTORY.
  • CLOUD_OU: adalah nama unit organisasi yang ingin Anda gunakan. Contoh, CLOUDOU. Anda dapat memasukkan unit organisasi sebanyak yang diperlukan.
  • DC1: adalah komponen domain pertama yang digunakan untuk nama khusus unit organisasi. Contoh, DOMAIN. Anda dapat memasukkan sebanyak mungkin komponen domain sesuai kebutuhan.
  • DC2: adalah komponen domain kedua yang digunakan untuk nama khusus unit organisasi. Contoh, COM. Nilai lengkap untuk flag --active-directory-organizational-unit mungkin terlihat seperti berikut: "OU=CLOUDOU,DC=DOMAIN,DC=COM". Anda dapat memasukkan komponen domain sebanyak yang diperlukan.
  • PROJECT_ID: adalah project ID tempat instance akan berada.
  • SECRET_NAME: adalah secret yang ingin Anda gunakan.
  • IP1: adalah alamat IP server DNS pertama yang ingin Anda gunakan, seperti 10.20.30.40. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.
  • IP2: adalah alamat IP server DNS kedua yang ingin Anda gunakan, seperti 20.30.40.50. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Meminta isi JSON:

{
   "databaseVersion":"DATABASE_VERSION",
   "name":"INSTANCE_NAME",
   "region":"REGION",
   "rootPassword":"PASSWORD",
   "settings":{
      "tier":"MACHINE-TYPE",
      "ipConfiguration":{
         "privateNetwork":"NETWORK"
      },
      "activeDirectoryConfig":{
         "domain":"DOMAIN"
         "mode": "CUSTOMER_MANAGED_ACTIVE_DIRECTORY",
         "organizational_unit":"OU=CLOUDOU,DC=DC1,DC=DC2"
         "admin_credential_secret_name":"projects/PROJECT_ID/secrets/SECRET_NAME"
         "dns_servers":"IP1,IP2"
      }
   }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Untuk membuat instance dengan CMAD, gunakan permintaan POST dengan metode users:insert.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

Ganti kode berikut:

  • DATABASE_VERSION: versi database yang ingin Anda gunakan, seperti SQLSERVER_2019_STANDARD.
  • INSTANCE_NAME: nama instance Cloud SQL untuk SQL Server yang ingin Anda buat.
  • REGION: region tempat Anda ingin instance berada, seperti us-central1.
  • PASSWORD: sandi untuk instance.
  • MACHINE_TYPE: jenis mesin yang ingin Anda gunakan untuk instance, seperti db-n1-standard-8.
  • NETWORK: adalah nama jaringan yang akan terhubung ke instance Anda, seperti projects/my-gcp-project-123/global/networks/my-production-vpc.
  • DOMAIN: nama domain yang ingin Anda gunakan, seperti myaddomain.com.
  • CUSTOMER_MANAGED_ACTIVE_DIRECTORY: menunjukkan mode domain. Jika domain dibuat dan dimiliki oleh Google, masukkan MANAGED_ACTIVE_DIRECTORY. Jika domain dibuat dan dimiliki oleh pengguna, masukkan CUSTOMER_MANAGED_ACTIVE_DIRECTORY.
  • CLOUD_OU: adalah nama unit organisasi yang ingin Anda gunakan. Contoh, CLOUDOU. Anda dapat memasukkan unit organisasi sebanyak yang diperlukan.
  • DC1: adalah komponen domain pertama yang digunakan untuk nama khusus unit organisasi. Contoh, DOMAIN. Anda dapat memasukkan sebanyak mungkin komponen domain sesuai kebutuhan.
  • DC2: adalah komponen domain kedua yang digunakan untuk nama khusus unit organisasi. Contoh, COM. Nilai lengkap untuk flag --active-directory-organizational-unit mungkin terlihat seperti berikut: "OU=CLOUDOU,DC=DOMAIN,DC=COM". Anda dapat memasukkan komponen domain sebanyak yang diperlukan.
  • PROJECT_ID: adalah project ID tempat instance akan berada.
  • SECRET_NAME: adalah secret yang ingin Anda gunakan.
  • IP1: adalah alamat IP server DNS pertama yang ingin Anda gunakan, seperti 10.20.30.40. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.
  • IP2: adalah alamat IP server DNS kedua yang ingin Anda gunakan, seperti 20.30.40.50. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Meminta isi JSON:

{
   "databaseVersion":"DATABASE_VERSION",
   "name":"INSTANCE_NAME",
   "region":"REGION",
   "rootPassword":"PASSWORD",
   "settings":{
      "tier":"MACHINE-TYPE",
      "ipConfiguration":{
         "privateNetwork":"NETWORK"
      },
      "activeDirectoryConfig":{
         "domain":"DOMAIN"
         "mode": "CUSTOMER_MANAGED_ACTIVE_DIRECTORY",
         "organizational_unit":"OU=CLOUDOU,DC=DC1,DC=DC2"
         "admin_credential_secret_name":"projects/PROJECT_ID/secrets/SECRET_NAME"
         "dns_servers":"IP1,IP2"
      }
   }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME",
  "status": "RUNNING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "2023-06-14T18:48:35.499Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Perbarui instance dengan Autentikasi Windows

Anda dapat memperbarui domain instance yang ada, seperti mengubah atau menambahkan domain.

Untuk informasi umum tentang cara mengupdate instance, lihat Mengedit instance.

Jika saat ini instance bergabung dengan domain CMAD, instance awalnya tidak digabungkan dengan domain tersebut, sebelum digabungkan ke domain baru. Jika update gagal, instance mungkin tidak dapat lagi digabungkan ke domain mana pun.

gcloud

Berikut adalah contoh perintah untuk memperbarui instance yang ada. Perintah dapat menambah atau mengganti domain. Teruskan --active-directory-domain=DOMAIN ke perintah, seperti berikut:

  gcloud sql instances patch INSTANCE_NAME \
  --active-directory-domain=DOMAIN \
  --active-directory-mode=CUSTOMER_MANAGED_ACTIVE_DIRECTORY \
  --active-directory-organizational-unit="OU=CLOUDOU,DC=DOMAIN,DC=COM" \
  --active-directory-secret-manager-key=projects/PROJECT_ID/secrets/SECRET_NAME \
  --active-directory-dns-servers=IP1,IP2

Ganti kode berikut:

  • INSTANCE_NAME: nama instance Cloud SQL for SQL Server yang ingin Anda update.
  • DOMAIN: nama domain yang ingin Anda gunakan, seperti myaddomain.com.
  • CUSTOMER_MANAGED_ACTIVE_DIRECTORY: menunjukkan mode domain. Jika domain dibuat dan dimiliki oleh Google, masukkan MANAGED_ACTIVE_DIRECTORY. Jika domain dibuat dan dimiliki oleh pengguna, masukkan CUSTOMER_MANAGED_ACTIVE_DIRECTORY.
  • CLOUD_OU: adalah nama unit organisasi yang ingin Anda gunakan. Contoh, CLOUDOU. Anda dapat memasukkan unit organisasi sebanyak yang diperlukan.
  • DC1: adalah komponen domain pertama yang digunakan untuk nama khusus unit organisasi. Contoh, DOMAIN. Anda dapat memasukkan sebanyak mungkin komponen domain sesuai kebutuhan.
  • DC2: adalah komponen domain kedua yang digunakan untuk nama khusus unit organisasi. Contoh, COM. Nilai lengkap untuk flag --active-directory-organizational-unit mungkin terlihat seperti berikut: "OU=CLOUDOU,DC=DOMAIN,DC=COM". Anda dapat memasukkan komponen domain sebanyak yang diperlukan.
  • PROJECT_ID: adalah project ID tempat instance berada.
  • SECRET_NAME: adalah secret yang terkait dengan instance.
  • IP1: adalah alamat IP server DNS pertama yang ingin Anda gunakan, seperti 10.20.30.40. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.
  • IP2: adalah alamat IP server DNS kedua yang ingin Anda gunakan, seperti 20.30.40.50. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.

REST v1

Untuk mengupdate instance CMAD, gunakan permintaan PATCH dengan metode users:insert.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • DOMAIN: nama domain yang ingin Anda gunakan, seperti myaddomain.com.
  • CUSTOMER_MANAGED_ACTIVE_DIRECTORY: menunjukkan mode domain. Jika domain dibuat dan dimiliki oleh Google, masukkan MANAGED_ACTIVE_DIRECTORY. Jika domain dibuat dan dimiliki oleh pengguna, masukkan CUSTOMER_MANAGED_ACTIVE_DIRECTORY.
  • CLOUD_OU: adalah nama unit organisasi yang ingin Anda gunakan. Contoh, CLOUDOU. Anda dapat memasukkan unit organisasi sebanyak yang diperlukan.
  • DC1: adalah komponen domain pertama yang digunakan untuk nama khusus unit organisasi. Contoh, DOMAIN. Anda dapat memasukkan sebanyak mungkin komponen domain sesuai kebutuhan.
  • DC2: adalah komponen domain kedua yang digunakan untuk nama khusus unit organisasi. Contoh, COM. Nilai lengkap untuk flag --active-directory-organizational-unit mungkin terlihat seperti berikut: "OU=CLOUDOU,DC=DOMAIN,DC=COM". Anda dapat memasukkan komponen domain sebanyak yang diperlukan.
  • PROJECT_ID: adalah project ID tempat instance berada.
  • SECRET_NAME: adalah secret yang terkait dengan instance.
  • IP1: adalah alamat IP server DNS pertama yang ingin Anda gunakan, seperti 10.20.30.40. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.
  • IP2: adalah alamat IP server DNS kedua yang ingin Anda gunakan, seperti 20.30.40.50. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID

Meminta isi JSON:

{
    "settings":{
        "activeDirectoryConfig":{
          "domain":"DOMAIN"
          "mode": "CUSTOMER_MANAGED_ACTIVE_DIRECTORY",
          "organizational_unit":"OU=CLOUDOU,DC=DC1,DC=DC2"
          "admin_credential_secret_name":"projects/PROJECT_ID/secrets/SECRET_NAME"
          "dns_servers":"IP1,IP2"
        }
    }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Untuk mengupdate instance CMAD, gunakan permintaan PATCH dengan metode users:insert.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • DOMAIN: nama domain yang ingin Anda gunakan, seperti myaddomain.com.
  • CUSTOMER_MANAGED_ACTIVE_DIRECTORY: menunjukkan mode domain. Jika domain dibuat dan dimiliki oleh Google, masukkan MANAGED_ACTIVE_DIRECTORY. Jika domain dibuat dan dimiliki oleh pengguna, masukkan CUSTOMER_MANAGED_ACTIVE_DIRECTORY.
  • CLOUD_OU: adalah nama unit organisasi yang ingin Anda gunakan. Contoh, CLOUDOU. Anda dapat memasukkan unit organisasi sebanyak yang diperlukan.
  • DC1: adalah komponen domain pertama yang digunakan untuk nama khusus unit organisasi. Contoh, DOMAIN. Anda dapat memasukkan sebanyak mungkin komponen domain sesuai kebutuhan.
  • DC2: adalah komponen domain kedua yang digunakan untuk nama khusus unit organisasi. Contoh, COM. Nilai lengkap untuk flag --active-directory-organizational-unit mungkin terlihat seperti berikut: "OU=CLOUDOU,DC=DOMAIN,DC=COM". Anda dapat memasukkan komponen domain sebanyak yang diperlukan.
  • PROJECT_ID: adalah project ID tempat instance berada.
  • SECRET_NAME: adalah secret yang terkait dengan instance.
  • IP1: adalah alamat IP server DNS pertama yang ingin Anda gunakan, seperti 10.20.30.40. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.
  • IP2: adalah alamat IP server DNS kedua yang ingin Anda gunakan, seperti 20.30.40.50. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

Meminta isi JSON:

{
    "settings":{
        "activeDirectoryConfig":{
          "domain":"DOMAIN"
          "mode": "CUSTOMER_MANAGED_ACTIVE_DIRECTORY",
          "organizational_unit":"OU=CLOUDOU,DC=DC1,DC=DC2"
          "admin_credential_secret_name":"projects/PROJECT_ID/secrets/SECRET_NAME"
          "dns_servers":"IP1,IP2"
        }
    }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Migrasi antara Managed Service for Microsoft Active Directory dan CMAD

Untuk memigrasikan instance dari integrasi dengan Managed Microsoft AD ke integrasi dengan CMAD, gunakan perintah gcloud CLI berikut:

  gcloud sql instances patch INSTANCE_NAME \
  --active-directory-domain=DOMAIN \
  --active-directory-mode=CUSTOMER_MANAGED_ACTIVE_DIRECTORY \
  --active-directory-organizational-unit="OU=CLOUDOU,DC=DOMAIN,DC=COM" \
  --active-directory-secret-manager-key=projects/PROJECT_ID/secrets/SECRET_NAME \
  --active-directory-dns-servers=IP1,IP2

Ganti kode berikut:

  • INSTANCE_NAME: nama instance Cloud SQL for SQL Server yang ingin Anda ubah.
  • DOMAIN: nama domain yang ingin Anda gunakan, seperti myaddomain.com.
  • CUSTOMER_MANAGED_ACTIVE_DIRECTORY: menunjukkan mode domain. Jika domain dibuat dan dimiliki oleh Google, masukkan MANAGED_ACTIVE_DIRECTORY. Jika domain dibuat dan dimiliki oleh pengguna, masukkan CUSTOMER_MANAGED_ACTIVE_DIRECTORY.
  • CLOUD_OU: adalah nama unit organisasi yang ingin Anda gunakan. Contoh, CLOUDOU. Anda dapat memasukkan unit organisasi sebanyak yang diperlukan.
  • DC1: adalah komponen domain pertama yang digunakan untuk nama khusus unit organisasi. Contoh, DOMAIN. Anda dapat memasukkan sebanyak mungkin komponen domain sesuai kebutuhan.
  • DC2: adalah komponen domain kedua yang digunakan untuk nama khusus unit organisasi. Contoh, COM. Nilai lengkap untuk flag --active-directory-organizational-unit mungkin terlihat seperti berikut: "OU=CLOUDOU,DC=DOMAIN,DC=COM". Anda dapat memasukkan komponen domain sebanyak yang diperlukan.
  • PROJECT_ID: adalah project ID tempat instance berada.
  • SECRET_NAME: adalah secret yang terkait dengan instance.
  • IP1: adalah alamat IP server DNS pertama yang ingin Anda gunakan, seperti 10.20.30.40. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.
  • IP2: adalah alamat IP server DNS kedua yang ingin Anda gunakan, seperti 20.30.40.50. Anda dapat memasukkan alamat IP sebanyak yang diperlukan.

Sambungkan ke instance dengan pengguna

Untuk Cloud SQL untuk SQL Server, pengguna default-nya adalah sqlserver.

Setelah mengintegrasikan instance dengan CMAD, Anda dapat terhubung ke instance dengan pengguna sqlserver, sebagai berikut:

  1. Buat login SQL Server berdasarkan pengguna atau grup Windows, sebagai berikut:
          CREATE LOGIN [domain\user_or_group] FROM WINDOWS
        
  2. Login ke instance, menggunakan Autentikasi Windows, dengan nama DNS instance. Contoh nama DNS instance yang harus ditentukan mencakup:
    • Menampilkan contoh koneksi melalui IP pribadi:
            private.myinstance.us-central1.myproject.cloudsql.mydomain.com
            
    • Menampilkan contoh koneksi melalui IP publik:
              public.myinstance.us-central1.myproject.cloudsql.mydomain.com
              
    • Menampilkan contoh koneksi melalui Proxy Auth Cloud SQL:
              proxy.myinstance.us-central1.myproject.cloudsql.mydomain.com
              

      Untuk mengetahui informasi selengkapnya, lihat Menggunakan Proxy Auth Cloud SQL dengan Autentikasi Windows.

Jika menggunakan alamat IP instance, Anda harus mengonfigurasi klien Kerberos untuk mendukung nama host IP. Cloud SQL tidak mendukung login menggunakan alamat IP dari domain yang terhubung melalui hubungan kepercayaan.

Gunakan Proxy Auth Cloud SQL dengan Autentikasi Windows

Anda dapat menggunakan Proxy Auth Cloud SQL dengan integrasi CMAD Anda.

Sebelum memulai, tinjau hal berikut:

Langkah-langkah untuk Autentikasi Windows

Untuk mengetahui latar belakang cara memulai Proxy Auth Cloud SQL, lihat Mulai Proxy Auth Cloud SQL.

Untuk Autentikasi Windows, Anda harus menjalankan Proxy Auth Cloud SQL pada port 1433. Untuk memetakan entri Nama Utama Layanan (SPN) yang telah ditentukan ke alamat Proxy Auth Cloud SQL, gunakan perintah berikut:

Proxy.[instance].[location].[project].cloudsql.[domain]

Jalankan Proxy Auth Cloud SQL secara lokal

Jika Anda menjalankan Proxy Auth Cloud SQL secara lokal, gunakan file host Anda untuk memetakan hal berikut ke 127.0.0.1:

Proxy.[instance].[location].[project].cloudsql.[domain]

Misalnya, Anda dapat menambahkan kode berikut ke file host (misalnya, ke c:\windows\system32\drivers\etc\hosts):

127.0.0.1 proxy.[instance].[location].[project].cloudsql.[domain]

Dalam contoh tersebut, Anda dapat menjalankan Proxy Auth Cloud SQL menggunakan perintah ini, dan membuatnya tersedia di 127.0.0.1:1433:

cloud-sql-proxy.exe --credentials-file credential.json project:name

Jalankan Proxy Auth Cloud SQL secara non-lokal

Untuk menjalankan Proxy Auth Cloud SQL secara eksternal, ikuti petunjuk di bagian Menjalankan Proxy Auth Cloud SQL secara lokal, tetapi gunakan entri yang berbeda di file host.

Khususnya, jika host non-lokal, misalnya, MyOtherHost, Anda dapat menambahkan kode berikut ke file host:

127.0.0.1 MyOtherHost proxy.[instance].[location].[project].cloudsql.[domain]

Pecahkan masalah untuk penggantian NTLM di klien

Jika Anda menggunakan Autentikasi Windows dan alamat IP instance untuk login ke instance, Anda harus mengonfigurasi klien Kerberos untuk mendukung nama host IP.

Cloud SQL tidak mendukung autentikasi NTLM, tetapi beberapa klien Kerberos mungkin mencoba menggantinya. Seperti yang telah dibahas di bagian ini, jika Anda mencoba terhubung dengan SQL Server Management Studio (SSMS), dan muncul pesan error berikut, kemungkinan penyebabnya adalah penggantian NTLM:

Login failed. The login is from an untrusted domain and cannot be used with
Integrated authentication. (Microsoft SQL Server, Error: 18452)

NTLM adalah set protokol keamanan Microsoft untuk autentikasi. Untuk mengetahui informasi selengkapnya, lihat Alasan penggantian NTLM.

Verifikasi penggantian NTLM untuk klien Windows

Dari terminal Windows, untuk memverifikasi bahwa penggantian NTLM menyebabkan error, selesaikan langkah-langkah berikut:

  1. Login dengan kredensial lokal yang ingin Anda gunakan. Jangan gunakan perintah "Run as...".
  2. Buka command prompt.
  3. Jalankan klist purge.
  4. Dari SSMS, coba hubungkan ke SQL Server dengan Autentikasi Windows.
  5. Jalankan klist dan periksa apakah ada tiket yang diterbitkan untuk error yang ditampilkan,
    MSSQLSvc/
    :1433 @ domain.
  6. Jika tidak ada tiket tersebut, kemungkinan error tersebut disebabkan oleh penggantian NTLM.
  7. Jika tiket tersebut ada, pastikan driver SQL Server Anda tidak menerapkan autentikasi NTLM. Selain itu, periksa apakah autentikasi NTLM diterapkan melalui Group Policy.

Verifikasi penggantian NTLM untuk klien Linux

Dari Ubuntu 16.04, untuk memverifikasi bahwa penggantian NTLM menyebabkan error, gunakan langkah-langkah di bagian ini. Langkah-langkahnya serupa dengan langkah-langkah untuk distribusi Linux lainnya.

Siapkan autentikasi Kerberos

  1. Siapkan klien Kerberos:
          sudo apt-get install krb5-user
        
  2. Saat diminta untuk memasukkan realm default, ketik nama domain lokal, menggunakan huruf besar.
  3. Jalankan perintah berikut untuk menginstal alat command line SQL Server:
          curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
          curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
          sudo apt-get update
          sudo apt-get install mssql-tools unixodbc-dev
        

Sambungkan dengan Autentikasi Windows

  1. Jalankan alat kinit sebagai berikut:
        kinit 
        
  2. Untuk terhubung dengan Autentikasi Windows, jalankan perintah berikut:
        /opt/mssql-tools/bin/sqlcmd -S 
  3. Jalankan perintah klist dan periksa apakah tiket dikeluarkan secara khusus untuk pesan yang ditampilkan berikut:
        MSSQLSvc/
    :1433 @ domain
  4. Jika tiket tidak diterbitkan, error sebelumnya mungkin menunjukkan masalah yang menyebabkan penggantian NTLM.

Alasan untuk penggantian NTLM

Penggantian ke NTLM adalah kesalahan konfigurasi klien yang dapat dikaitkan dengan kondisi berikut:

  • Secara default, Windows tidak mencoba autentikasi Kerberos untuk host jika nama host adalah alamat IP. Untuk mengaktifkan autentikasi Kerberos untuk alamat IP, coba metode yang dijelaskan dalam dokumentasi Microsoft.
  • Autentikasi Kerberos melalui kepercayaan eksternal tidak berfungsi. Gunakan kepercayaan hutan sebagai gantinya.
  • Autentikasi Kerberos memerlukan perutean akhiran nama agar layanan ditemukan di forest lain. Coba metode yang dijelaskan dalam Menyiapkan hubungan kepercayaan antara dua domain.
  • Autentikasi Kerberos tidak berfungsi jika tidak ada SPN yang terdaftar untuk layanan. Hanya gunakan FQDN atau alamat IP yang Anda peroleh dari konsol Google Cloud untuk terhubung dengan Autentikasi Windows.

Membuat login Windows untuk pengguna AD lokal

Ikuti petunjuk CREATE LOGIN untuk membuat login Windows bagi pengguna lokal. Misalnya, tentukan perintah yang mirip dengan berikut ini:

CREATE LOGIN [DOMAIN_NAME\USER_NAME] FROM WINDOWS

Tips untuk menggunakan CMAD dengan Cloud SQL

  • Instance dengan IP publik didukung, selama instance tersebut juga memiliki IP pribadi. IP pribadi harus diaktifkan untuk instance. Kemudian, Anda dapat memilih untuk menggunakan IP publik atau IP pribadi untuk terhubung ke instance, selama keduanya tersedia.
  • Sebelum membuat instance, termasuk sebagai instance pengganti, tinjau hal berikut:
  • Jika Autentikasi Windows gagal dari domain yang terhubung melalui hubungan kepercayaan, verifikasi bahwa Autentikasi Windows berfungsi untuk pengguna dari domain yang dikelola pelanggan. Jika ya, selesaikan langkah-langkah berikut:
    1. Verifikasi bahwa Anda menggunakan nama DNS. Alamat IP tidak didukung dari domain yang terhubung menggunakan hubungan kepercayaan.
    2. Pastikan Anda telah menyelesaikan langkah-langkah dalam Menyiapkan hubungan kepercayaan antara dua domain, termasuk membuka semua port firewall.
    3. Validasi kepercayaan.
    4. Verifikasi bahwa arah kepercayaan memungkinkan pengguna dari domain (terhubung melalui hubungan kepercayaan) untuk melakukan autentikasi.
    5. Ikuti langkah-langkah yang dijelaskan dalam Menyiapkan domain yang tidak dapat dirutekan untuk sinkronisasi direktori.
    6. Verifikasi bahwa kepercayaan berfungsi tanpa menggunakan Cloud SQL untuk SQL Server:
      1. Buat VM Windows.
      2. Gabungkan ke domain CMAD.
      3. Coba jalankan, misalnya, Notepad sebagai pengguna dari domain yang terhubung melalui hubungan kepercayaan.
    7. Mulai ulang VM klien dan uji ulang Autentikasi Windows.
  • Anda dapat mencoba membuat login SQL Server, tetapi kemudian menerima error berikut:
        Windows NT user or group domain\name not found. Check the name again.
        

    Hal ini mungkin terjadi karena grup lokal domain tidak didukung; jika berlaku, gunakan grup global atau universal sebagai gantinya.

  • Jika kueri SQL Server menghasilkan error berikut, perhatikan bahwa alamat IP tidak didukung untuk pengguna dari domain yang terhubung melalui hubungan kepercayaan:
        The login is from an untrusted domain.
        

    Tindakan berikut dapat menyelesaikan masalah ini:

    • Jika alamat IP digunakan untuk menghubungkan pengguna dari domain terkelola, ikuti petunjuk di dokumentasi Microsoft.
    • Hindari penggunaan proxy apa pun, dan selalu gunakan nama DNS yang sama untuk terhubung ke Cloud SQL untuk SQL Server, seperti yang Anda lihat di konsol Google Cloud .
  • Jika instance mengalami masalah berkelanjutan dengan Autentikasi Windows (baik instance tersebut baru saja diupdate atau tidak), coba batalkan penggabungannya dari domain lalu gabungkan kembali. Untuk melakukannya, gunakan prosedur update untuk batal bergabung kemudian bergabung kembali dengan domain. Tindakan ini tidak akan menghapus login atau pengguna terautentikasi Windows yang sudah ada dalam database Anda. Namun, menghapus Autentikasi Windows akan menyebabkan instance dimulai ulang.
  • Gunakan alat Diagnosis AD untuk memecahkan masalah penyiapan AD dengan domain yang dikelola pelanggan dan instance Cloud SQL untuk SQL Server di konsol Google Cloud . Lewati langkah-langkah yang terkait dengan Microsoft AD Terkelola.

Memecahkan masalah

Tabel berikut mencantumkan pesan error umum dan cara mengatasinya:

Untuk error ini... Masalahnya mungkin adalah... Coba langkah ini:
Per-product, per-project Service Account (P4 SA) not found for project. Nama akun layanan tersebut tidak tepat. Di halaman Akun Layanan, pastikan Anda membuat akun layanan untuk project pengguna yang benar.
The operation completed but an update to Active Directory failed. You may experience issues with Windows Authentication on this instance, please see https://cloud.google.com/sql/docs/sqlserver/configure-cmad for tips. Update yang diperlukan tidak dapat dilakukan di domain CMAD. Jika Anda mengalami masalah dengan Autentikasi Windows, Anda dapat mencoba membatalkan penggabungan domain CMAD, lalu bergabung kembali. Untuk melakukannya, gunakan prosedur update untuk batal bergabung kemudian bergabung kembali dengan domain. Tindakan ini tidak akan menghapus login atau pengguna terautentikasi Windows yang sudah ada dalam database Anda. Namun, menghapus Autentikasi Windows akan menyebabkan instance dimulai ulang.
This instance would need new network architecture to support Active Directory. See https://cloud.google.com/sql/docs/sqlserver/configure-cmad." Instance ini tidak menggunakan arsitektur jaringan baru. Upgrade instance ke arsitektur jaringan baru.
Admin credential secret name / Organizational unit / DNS Server names is required or Invalid Admin credential secret name / OrganizationalUnit / DNS Server names provided. Kredensial admin, Unit organisasi, dan Server DNS adalah parameter yang wajib diisi. Coba lagi permintaan Anda dengan parameter ini yang ditentukan.
Integration failed due to insufficient permissions. The Service Agent for this project must be granted the secretmanager.secrets.getIamPolicy and secretmanager.secrets.setIamPolicy permissions on the provided admin credential key in Secret Manager. Agen Layanan untuk project ini tidak memiliki izin yang diperlukan. Buat peran khusus dengan izin secretmanager.secrets.getIamPolicy dan secretmanager.secrets.setIamPolicy, lalu tetapkan peran tersebut kepada agen layanan untuk project ini. Untuk mengetahui informasi selengkapnya, lihat Peran dan izin Secret Manager.

Langkah berikutnya