Menggunakan Microsoft AD Terkelola dengan Cloud SQL

Halaman ini menjelaskan cara menggunakan Cloud SQL untuk:

  • Terintegrasi dengan Layanan Terkelola untuk Microsoft Active Directory (juga disebut Microsoft AD Terkelola).
  • Menghubungkan ke instance dengan pengguna AD.

Instance Cloud SQL yang terintegrasi dengan Microsoft AD Terkelola mendukung Autentikasi Windows selain Autentikasi SQL.

Sebelum memulai

  1. Di console Google Cloud, pilih nama project Anda.
  2. Pastikan penagihan diaktifkan untuk project Google Cloud Anda. Pelajari cara mengonfirmasi bahwa penagihan diaktifkan untuk project Anda.
  3. Menginstal dan melakukan inisialisasi gcloud CLI.
  4. Pastikan Anda memiliki peran Cloud SQL Admin di akun pengguna Anda. Buka halaman IAM.
  5. Tinjau prasyarat untuk integrasi.

Membuat instance dengan Autentikasi Windows

Anda dapat berintegrasi dengan Microsoft AD Terkelola selama pembuatan instance, 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.

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.

Berikut adalah opsi untuk membuat instance yang terintegrasi dengan Microsoft AD Terkelola.

Console

  1. Di console Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Klik Buat instance.
  3. Klik Pilih SQL Server.
  4. Masukkan nama untuk instance. Jangan menyertakan informasi sensitif atau identitas pribadi dalam nama instance Anda; karena itu terlihat dari luar. Anda tidak perlu menyertakan project ID dalam nama instance. ID dibuat secara otomatis jika sesuai (misalnya, di file log).
  5. Masukkan sandi untuk pengguna 'sqlserver'.
  6. Tetapkan region untuk instance Anda. Lihat Praktik terbaik untuk berintegrasi dengan Microsoft AD Terkelola.
  7. Di bagian Opsi konfigurasi, tetapkan opsi yang Anda butuhkan (tetapi tunggu hingga langkah berikutnya untuk opsi autentikasi).
  8. Klik Autentikasi. Menu dropdown untuk bergabung dengan domain Active Directory terkelola mencantumkan semua Domain Microsoft AD terkelola yang sebelumnya telah ditambahkan di project. Anda.
  9. Dari menu dropdown untuk bergabung dengan domain Active Directory terkelola, pilih sebuah domain.
  10. Setelah selesai memilih opsi konfigurasi Anda, klik Buat. Cloud SQL secara otomatis membuat akun layanan Per-produk dan Per-project untuk Anda. Jika akun tidak memiliki peran yang sesuai, Anda akan diminta untuk memberikan peran managedidentities.sqlintegrator.

gcloud

Perintah berikut membuat instance yang terintegrasi dengan Microsoft AD Terkelola sehingga diaktifkan untuk Autentikasi Windows. Untuk informasi tentang perintah dasar untuk membuat instance, lihat Membuat instance.

Tentukan parameter --active-directory-domain=DOMAIN dalam perintah gcloud. Misalnya, tentukan hal berikut: --active-directory-domain=ad.mydomain.com

Berikut adalah prototipe perintah gcloud:

gcloud beta sql instances create INSTANCE_NAME \
--database-version=EDITION \
--root-password=PASSWORD \
--active-directory-domain=DOMAIN\
--cpu=CPU \
--memory=MEMORY  \
--network=NETWORK

Terraform

Untuk membuat instance yang terintegrasi dengan Microsoft AD Terkelola, gunakan resource Terraform.

resource "google_sql_database_instance" "instance_with_ad" {
  name             = "database-instance-name"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"

  depends_on = [google_service_networking_connection.private_vpc_connection]

  settings {
    tier = "db-custom-2-7680"
    active_directory_config {
      domain = "ad.domain.com"
    }
    ip_configuration {
      ipv4_enabled    = "false"
      private_network = google_compute_network.private_network.id
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

REST

Dengan menggunakan REST API, Anda dapat membuat instance yang terintegrasi dengan Microsoft AD Terkelola. Tentukan domain, seperti subdomain.mydomain.com, untuk kolom domain, seperti yang ditunjukkan dalam prototipe permintaan ini:

{
   "databaseVersion":"database-version",
   "name":"instance-id",
   "region":"region",
   "rootPassword":"password",
   "settings":{
      "tier":"machine-type",
      "ipConfiguration":{
         "privateNetwork":"network"
      },
      "activeDirectoryConfig":{
         "domain":"domain"
      }
   }
}

Mengupdate instance dengan Autentikasi Windows

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

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

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

Console

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Klik Edit.
  4. Klik Autentikasi. Menu dropdown Bergabung dengan domain Active Directory mencantumkan Domain Microsoft AD terkelola yang sebelumnya telah ditambahkan di project Anda.
  5. Dari menu dropdown untuk bergabung dengan domain Active Directory terkelola, pilih domain baru (penggantian) untuk instance Anda.
  6. Klik Simpan untuk menerapkan perubahan.

gcloud

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

gcloud beta sql instances patch INSTANCE_NAME \
--active-directory-domain=DOMAIN

REST

Dengan menggunakan REST API, Anda dapat memperbarui instance yang ada. Tentukan domain, seperti subdomain.mydomain.com, dikolom domain. Berikut adalah prototipe permintaan:

{
   "settings":{
      "activeDirectoryConfig":{
         "domain":"domain"
      }
   }
}

Mengintegrasikan dengan domain AD terkelola dalam project yang berbeda

Anda dapat mengintegrasikan instance dengan domain Microsoft AD Terkelola yang ada di project yang berbeda.

Saat merencanakan integrasi Anda, tinjau batasan.

Mengaktifkan peering domain

Sebelum melanjutkan ke langkah-langkah pada bagian di bawah, aktifkan peering domain sehingga domain Anda tersedia untuk semua project yang diperlukan dengan instance Cloud SQL untuk SQL Server.

Untuk daftar domain dari project lain yang sudah tersedia, Anda dapat menentukan hal berikut:

`gcloud active-directory peerings list`

Untuk informasi selengkapnya, lihat Daftar peering domain.

Perintah gcloud active-directory peerings list memerlukan izin managedidentities.peerings.list. Peran berikut memiliki izin ini:

  • roles/managedidentities.peeringViewer
  • roles/managedidentities.viewer

Untuk informasi selengkapnya, lihat Kontrol akses dengan IAM.

Membuat akun layanan

Ulangi langkah-langkah ini untuk setiap project yang berisi instance Cloud SQL untuk SQL Server yang ingin Anda integrasikan.

  1. Tinjau informasi latar belakang untuk membuat akun layanan.
  2. Gunakan perintah yang mirip dengan berikut ini untuk membuat akun layanan. Tentukan ID project yang berisi instance Cloud SQL untuk SQL Server:

    gcloud beta services identity create --service=sqladmin.googleapis.com \
    --project=[PROJECT_ID]
  3. Berikan peran managedidentities.sqlintegrator dalam project dengan instance Microsoft AD Terkelola. Tentukan ID project yang berisi instance Microsoft AD Terkelola:

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
    --member=serviceAccount:SERVICE_ACCOUNT --role=roles/managedidentities.sqlintegrator

Mengaktifkan autentikasi Windows lintas project

Anda dapat mengintegrasikan dengan domain AD di project yang berbeda menggunakan perintah gcloud atau REST API Cloud SQL. Dalam kedua kasus tersebut, Anda harus menentukan nama resource domain secara lengkap.

Tentukan nama lengkap resource domain saat instance Cloud SQL untuk SQL Server dibuat atau diupdate. Ada dua format yang didukung:

  • projects/PROJECT_ID/locations/global/domains/DOMAIN_NAME
  • projects/PROJECT_NUMBER/locations/global/domains/DOMAIN_NAME

Berikut ini contoh yang menggunakan gcloud:

gcloud beta sql instances patch INSTANCE_NAME \
--active-directory-domain=projects/PROJECT_ID/locations/global/domains/DOMAIN_NAME

Jika Anda menggunakan nama resource domain pendek (seperti DOMAIN_NAME), sistem mengasumsikan bahwa domain Microsoft AD Terkelola Anda berada dalam project yang sama dengan instance Cloud SQL untuk SQL Server.

Batasan untuk berintegrasi dengan berbagai project

Jika Anda berintegrasi dengan domain AD terkelola di project yang berbeda, batasan berikut berlaku:

  • Hingga 10 jaringan dengan instance Cloud SQL untuk SQL Server dapat berbagi satu instance Microsoft AD Terkelola yang terletak di project yang berbeda.
  • Console Google Cloud hanya mendukung instance Microsoft AD Terkelola yang berada di project yang sama. Sebagai ganti penggunaan console Google Cloud, Anda dapat berintegrasi menggunakan perintah gcloud atau REST API Cloud SQL.
  • Jika Kontrol Layanan VPC digunakan, instance Cloud SQL untuk SQL Server dan instance Microsoft AD Terkelola harus berada di perimeter yang sama.

Selain itu, jika sebuah instance terintegrasi dengan domain AD terkelola di project yang berbeda, nama domain yang sepenuhnya memenuhi syarat (FQDN) yang ditampilkan di console Google Cloud mungkin tidak akurat untuk instance tersebut. Secara khusus, pada halaman Ringkasan untuk instance tersebut, di bagian Hubungkan ke instance ini, FQDN mungkin berisi string yang dipisahkan oleh garis miring, yang dapat Anda abaikan. Misalnya, FQDN yang tidak akurat mungkin ditampilkan sebagai:

private.myinstance.myregion.myproject.projects/mydirectory/locations/global/domains/mydomain.com

Dalam hal ini, FQDN yang akurat adalah:

private.myinstance.myregion.myproject.cloudsql.mydomain.com

Menghapus Autentikasi Windows dari instance

Anda dapat menghapus Autentikasi Windows, dan juga integrasi Microsoft AD Terkelola, dari instance yang ada.

Console

  1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Klik Edit.
  4. Klik Autentikasi. Menu dropdown untuk bergabung dengan domain Active Directory terkelola mencantumkan Domain Microsoft AD terkelola yang sebelumnya telah ditambahkan di project Anda.
  5. Dari menu dropdown, pilih Tidak ada domain/Gabung Nanti untuk instance Anda.
  6. Baca pesan tentang mulai ulang instance, lalu klik Tutup.
  7. Klik Simpan untuk menerapkan perubahan.

gcloud

Untuk menghapus instance dari domain, sehingga menghapus Autentikasi Windows, gunakan nilai kosong untuk domain. Artinya, dalam perintah Anda, gunakan nilai kosong untuk parameter --active-directory-domain, seperti berikut:

gcloud beta sql instances patch INSTANCE_NAME \
--active-directory-domain=

REST

Dengan menggunakan REST API, Anda dapat menghapus instance dari domain. Tentukan nilai kosong di kolom domain, seperti berikut:

{
   "settings":{
      "activeDirectoryConfig":{
         "domain":""
      }
   }
}

Menghubungkan ke instance dengan pengguna

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

Setelah mengintegrasikan instance dengan Microsoft AD Terkelola, 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 adalah sebagai berikut:

    • Untuk terhubung melalui IP pribadi:

      private.myinstance.us-central1.myproject.cloudsql.mydomain.com

    • Untuk terhubung melalui IP publik:

      public.myinstance.us-central1.myproject.cloudsql.mydomain.com

    • Untuk terhubung melalui Proxy Auth Cloud SQL (lihat juga di bawah):

      proxy.myinstance.us-central1.myproject.cloudsql.mydomain.com

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

Menggunakan Proxy Auth Cloud SQL dengan Autentikasi Windows

Anda dapat menggunakan Proxy Auth Cloud SQL dengan integrasi Microsoft AD Terkelola Anda.

Sebelum Anda memulai, tinjau:

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:

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

Menjalankan 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

Menjalankan Proxy Auth Cloud SQL secara non-lokal

Untuk menjalankan Proxy Auth Cloud SQL secara non-lokal, 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]

Memecahkan masalah penggantian NTLM pada 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. Lihat juga Alasan penggantian NTLM.

Verifikasi penggantian NTLM untuk klien Windows

Dari Windows, untuk memverifikasi bahwa penggantian NTLM menyebabkan error:

  1. Login dengan kredensial lokal yang diinginkan (jangan gunakan "Jalankan sebagai...").
  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 "MSSQLSvc/<address>: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. Periksa juga apakah autentikasi NTLM diterapkan melalui Kebijakan Grup.

Verifikasi penggantian NTLM untuk klien Linux

Dari Ubuntu 16.04, untuk memverifikasi bahwa penggantian NTLM menyebabkan error, gunakan langkah-langkah pada bagian ini. Langkah-langkahnya serupa dengan 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 dalam 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
    

Menghubungkan dengan Autentikasi Windows

  1. Jalankan alat kinit sebagai berikut: kinit <user_account>
  2. Agar terhubung dengan Autentikasi Windows, jalankan: /opt/mssql-tools/bin/sqlcmd -S <address >>
  3. Jalankan perintah klist dan periksa apakah tiket dikeluarkan khusus untuk: "MSSQLSvc/<address>:1433 @ domain"
  4. Jika tiket tidak diterbitkan, error di atas mungkin menunjukkan masalah yang menyebabkan penggantian NTLM.

Alasan 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 dari domain terkelola, coba metode yang dijelaskan dalam dokumentasi Microsoft. Metode ini tidak berfungsi dengan kredensial lokal saat Anda harus menggunakan FQDNS.
  • Autentikasi Kerberos melalui kepercayaan eksternal tidak berfungsi. Gunakan kepercayaan forest sebagai gantinya, seperti yang dijelaskan di sini.
  • Autentikasi Kerberos memerlukan perutean akhiran nama agar layanan ditemukan di forest lain. Coba metode yang dijelaskan di sini.
  • Autentikasi Kerberos tidak berfungsi jika tidak ada SPN yang terdaftar untuk layanan. Hanya gunakan FQDN atau alamat IP yang Anda peroleh dari console Google Cloud untuk terhubung dengan Autentikasi Windows.

Pengguna AD lokal: Membuat login Windows

Anda dapat menggunakan pengguna AD lokal untuk membuat login Windows ke Cloud SQL untuk SQL Server.

Sebagai contoh, Anda dapat terhubung menggunakan SQL Server Management Studio (SMSS) yang berjalan di VM Windows yang dihosting di Virtual Private Cloud (VPC) project Google Cloud Anda.

Untuk Autentikasi Windows dalam konteks ini, Cloud SQL untuk SQL Server hanya mendukung protokol Kerberos. Untuk Autentikasi Windows berbasis Kerberos, klien harus menyelesaikan nama DNS AD lokal dan Microsoft AD Terkelola.

Mengonfigurasi kepercayaan satu arah atau dua arah

Awalnya, tentukan apakah akan menggunakan hubungan kepercayaan satu arah atau dua arah.

Kemudian, ikuti petunjuk untuk membangun kepercayaan antara domain AD lokal dan domain Microsoft AD Terkelola.

Menyiapkan VM Windows dan membuat login Windows

Setelah Anda membangun kepercayaan antara domain AD lokal dan domain Microsoft AD Terkelola, selesaikan langkah-langkah berikut. Misalnya tujuan, langkah-langkah ini menggunakan SQL Server Management Studio (SSMS), yang berjalan pada VM Windows, yang dihosting di VPC project Google Cloud Anda:

  1. Buat VM Windows.
    • Buat VM dengan versi Windows yang didukung oleh Microsoft AD Terkelola.
    • Buat VM di project yang menghosting domain Microsoft AD Terkelola Anda. Jika terdapat VPC Bersama yang merupakan jaringan yang diizinkan, Anda juga dapat membuat VM di salah satu project layanannya.
    • Buat VM di jaringan VPC yang merupakan jaringan yang diotorisasi dari domain Microsoft AD Terkelola dan telah mengonfigurasi akses layanan pribadi untuk Cloud SQL.
  2. Gabungkan VM Windows ke domain Microsoft AD Terkelola.
  3. Instal SSMS di VM Windows.
  4. Selesaikan domain lokal di jaringan VPC.
    • Dari jaringan yang diizinkan di mana VM Windows sedang berjalan, aktifkan resolusi DNS lokal menggunakan langkah-langkah di halaman Menyelesaikan kueri untuk objek Microsoft AD yang tidak dikelola. Langkah-langkah di halaman tersebut merupakan prasyarat agar Autentikasi Windows berbasis Kerberos dapat berfungsi untuk pengguna lokal.
  5. Membuat login Windows untuk pengguna lokal.

    • Ikuti petunjuk MEMBUAT LOGIN untuk membuat login Windows untuk pengguna lokal. Misalnya, tentukan perintah yang mirip dengan berikut ini:
    CREATE LOGIN [DOMAIN_NAME\USER_NAME] FROM WINDOWS
    
  6. Login ke instance Cloud SQL untuk SQL Server menggunakan petunjuk khusus aplikasi untuk login sebagai pengguna lokal. Misalnya, jika Anda menggunakan SQL Server Management Studio, lihat petunjuk ini.

Jika terjadi masalah saat login ke instance Cloud SQL untuk SQL Server, lakukan verifikasi berikut:

  • Verifikasi konfigurasi firewall jaringan lokal dan VPC yang diizinkan project, menggunakan petunjuk untuk membuat kepercayaan dengan domain lokal.
  • Verifikasi Perutean Akhiran Nama untuk hubungan kepercayaan lokal.
  • Verifikasi bahwa Anda dapat menjalankan operasi resolusi DNS ini dari VM Windows yang menjalankan SSMS:
    • nslookup fqdn-for-managed-ad-domain
    • nslookup fqdn-for-on-premises-ad-domain
    • nslookup fqdn-for-cloud-sql-server-instance

Tips

  • Instance dengan IP publik didukung, selama memiliki IP pribadi; IP pribadi harus diaktifkan untuk instance tersebut. Kemudian, Anda dapat memilih menggunakan IP publik atau IP pribadi untuk terhubung ke instance, selama keduanya tersedia.
  • Sebelum membuat instance, termasuk sebagai instance pengganti, tinjau hal berikut sesuai kebutuhan:
  • Terraform didukung.
  • Jika Anda menerima salah satu error berikut, konfirmasi bahwa Anda telah memenuhi semua prasyarat untuk integrasi:
    • "Akun Layanan Per Project Per Produk tidak ditemukan"
    • "Izin tidak memadai untuk berintegrasi dengan Layanan Terkelola untuk domain Microsoft Active Directory"
  • Jika Anda menerima error "Domain tidak ditemukan", verifikasi bahwa nama domain yang peka huruf besar/kecil sudah benar.
  • Jika Autentikasi Windows gagal dari domain yang terhubung melalui hubungan kepercayaan, verifikasi bahwa Autentikasi Windows berfungsi untuk pengguna dari domain terkelola. Jika ya, maka:
    1. Verifikasi bahwa Anda menggunakan nama DNS. Alamat IP tidak didukung dari domain yang terhubung menggunakan hubungan kepercayaan.
    2. Pastikan Anda mengikuti semua langkah untuk membuat kepercayaan dengan domain lokal, termasuk membuka semua port firewall.
    3. Validasi kepercayaan.
    4. Verifikasi bahwa arah kepercayaan memungkinkan pengguna dari domain (terhubung melalui hubungan kepercayaan) untuk melakukan autentikasi di domain yang dikelola.
    5. Verifikasi bahwa perutean akhiran nama ditetapkan di domain yang terhubung melalui hubungan kepercayaan.
    6. Verifikasi bahwa kepercayaan berfungsi tanpa menggunakan Cloud SQL untuk SQL Server:
      1. Buat VM Windows.
      2. Gabungkan hal tersebut ke domain Microsoft AD Terkelola.
      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: "Pengguna Windows NT atau domain\nama grup tidak ditemukan. Periksa nama lagi". Hal ini mungkin terjadi karena grup lokal domain tidak didukung; jika berlaku, gunakan grup global atau universal sebagai gantinya.
  • Saat dikeluarkan oleh pengguna dari domain yang terhubung melalui hubungan kepercayaan, kueri SQL Server dapat mengakibatkan error berikut: "Tidak dapat memperoleh informasi tentang grup/pengguna Windows NT". Error ini dapat terjadi, misalnya, jika Anda membuat login dari domain yang terhubung melalui hubungan kepercayaan. Error juga dapat terjadi jika Anda memberikan hak istimewa untuk login dari domain yang terhubung melalui hubungan kepercayaan. Dalam kasus ini, mencoba lagi operasi sering kali berhasil. Jika percobaan ulang gagal, tutup koneksi dan buka koneksi baru.
  • Jika Anda mendapatkan error "Tidak dapat memperoleh informasi tentang grup/pengguna Windows NT", periksa konektivitas jaringan ke domain lokal menggunakan file log active_directory.log yang tersedia di Cloud Logging untuk instance Cloud SQL untuk SQL Server. File ini berisi diagnostik berikut terkait perubahan konektivitas pada domain lokal:

    • Domain lokal tepercaya oleh instance Cloud SQL untuk SQL Server. Misalnya, log berikut menunjukkan perubahan dari tidak ada domain tepercaya menjadi dua domain tepercaya baru sebagai nama NetBIOS, ONPREM dan CHILD:
      2023-06-12 20:55:09.975 Detected change in trusted onprem domains: Previously trusted onprem domains: []. Current trusted onprem domains: [ONPREM CHILD]
      Jika domain lokal tidak tercantum atau dicatat sebagai tidak dipercaya, periksa apakah kepercayaan ada dengan domain AD Terkelola dan sudah divalidasi. Jika ada kepercayaan satu arah antara domain AD Terkelola dan domain lokal, domain lokal lainnya yang dipercaya oleh domain lokal mungkin tidak terlihat.
    • Domain lokal yang dapat dijangkau dan tidak dapat dijangkau menggunakan ping reguler dari instance Cloud SQL untuk SQL Server. Misalnya, log berikut menunjukkan perubahan dari tidak ada domain yang dapat dijangkau menjadi dua domain baru yang dapat dijangkau, onprem.com dan child.onprem.com:
      2023-06-12 20:55:10.664 Detected change in reachable onprem domains: Previously reachable onprem domains: []. Current reachable onprem domains: [onprem.com child.onprem.com]
      Jika domain tidak tercantum dalam log jangkauan, pastikan domain tersebut dicatat sebagai domain tepercaya terlebih dahulu. Jika tidak, keterjangkauan tidak akan diperiksa. Kami selalu memiliki peering VPC antara project dengan instance lokal dan project Google Cloud. Memiliki satu peering VPC lagi akan memperkenalkan koneksi peering transitif, yang tidak didukung oleh Cloud SQL. Sebagai gantinya, kami merekomendasikan Anda menggunakan tunnel VPN untuk menghubungkan domain lokal ke Cloud SQL. Harus ada paling banyak satu koneksi peering antara project lokal dan project Google Cloud dengan instance Cloud SQL untuk SQL Server.
    • Ping Microsoft remote procedure call (MSRPC) berhasil dan tidak berhasil ke domain lokal dari instance Cloud SQL untuk SQL Server. Misalnya, log berikut menunjukkan perubahan dari tidak memiliki domain yang dapat di-ping MSRPC menjadi dua domain baru yang dapat di-ping MSRPC, ONPREM dan CHILD:
      2023-06-12 20:55:10.664 Detected change in MSRPC pingable domains: Previously pingable onprem domains: []. Current pingable onprem domains: [ONPREM CHILD]
      Ping MSRPC disertakan sebagai diagnostik tambahan dan mungkin tidak berfungsi pada beberapa konfigurasi. Anda tetap dapat memverifikasi konektivitas domain lokal melalui dua diagnostik pertama.
  • Jika kueri SQL Server menghasilkan error, "Login berasal dari domain yang tidak tepercaya", perhatikan bahwa alamat IP tidak didukung untuk pengguna dari domain yang terhubung melalui hubungan kepercayaan. Selain itu, tindakan berikut dapat menyelesaikan masalah ini:

    • Jika alamat IP digunakan untuk menghubungkan pengguna dari domain terkelola, ikuti petunjuk ini.
    • Hindari penggunaan proxy apa pun, dan selalu gunakan nama DNS yang sama untuk terhubung ke Cloud SQL untuk SQL Server, karena Anda melihat nama DNS di console Google Cloud.
    • Hapus tiket Kerberos yang ada. Error di atas mungkin terjadi jika Anda memiliki klien yang baru-baru ini terhubung ke instance Cloud SQL untuk SQL Server dan instance tersebut dihentikan dan dimulai. Atau, error mungkin terjadi jika Autentikasi Windows dinonaktifkan, lalu diaktifkan kembali untuk instance Cloud SQL untuk SQL Server. Jika klien menggunakan cache kredensial Windows, kunci dan buka kunci workstation klien, atau jalankan klist purge.
  • Percobaan untuk mengaktifkan Autentikasi Windows dapat mengakibatkan error, "Instance ini memerlukan tanggal pembuatan yang lebih baru untuk mendukung Layanan Terkelola untuk Microsoft Active Directory." Perhatikan hal-hal berikut tentang error ini:

    • Di Cloud SQL, jika instance Cloud SQL untuk SQL Server dibuat pada atau sebelum 12 Maret 2021, instance tersebut tidak dapat diintegrasikan dengan Microsoft AD Terkelola.
    • Dalam kasus tertentu, jika Anda membuat instance Cloud SQL untuk SQL Server dan tidak mengaktifkan Microsoft AD Terkelola saat pembuatan, Anda mungkin akan menerima error yang sama. Setelah meninjau tips lain di bagian ini, buat instance baru, yang mengaktifkan Microsoft AD Terkelola pada saat Anda membuat instance.
  • Percobaan pembuatan instance Cloud SQL untuk SQL Server dapat mengakibatkan error, "Instance ini tidak mendukung Layanan Terkelola untuk Microsoft Active Directory". Jika Anda menerima error ini, project mungkin tidak didukung; coba gunakan proyek yang berbeda.

  • Jika instance mengalami masalah berkelanjutan dengan Autentikasi Windows (baik instance tersebut baru saja diupdate atau tidak), coba batalkan penggabungan domain Active Directory yang dikelola, lalu gabungkan kembali. Untuk melakukannya, gunakan prosedur pembaruan untuk batal bergabung kemudian bergabung kembali dengan domain. Tindakan ini tidak akan menghapus login atau pengguna terautentikasi Windows yang ada di database Anda. Namun, menghapus Autentikasi Windows akan menyebabkan instance dimulai ulang.

  • Gunakan alat diagnosis AD untuk memecahkan masalah penyiapan AD dengan domain lokal dan instance Cloud SQL untuk SQL Server di console Google Cloud.

Memecahkan masalah

Klik link dalam tabel untuk detailnya:

Untuk error ini... Masalahnya mungkin adalah... Coba langkah ini:
Per-product, per-project service account not found. Nama akun layanan salah. Di halaman Akun Layanan, pastikan Anda membuat akun layanan untuk project pengguna yang benar.
Insufficient permission to integrate with Managed Service for Microsoft Active Directory domain. Peran managedidentities.sqlintegrator tidak ada di akun layanan. Dari halaman IAM dan Admin, tambahkan peran managedidentities.sqlintegrator di akun layanan Anda.
Domain not found. Domain tidak ada atau salah ketik. Pastikan nama domain sudah benar. Hal ini bersifat peka huruf besar atau kecil.
The domain is busy with another operation. Please retry. Instance Cloud SQL lainnya sedang menjalankan operasi pada domain Active Directory Terkelola yang sama. Coba lagi operasi tersebut. Jika Anda melakukan serangkaian update pada instance Cloud SQL yang terhubung ke domain yang sama, batasi jumlah update yang dijalankan secara paralel.
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-ad for tips. Update yang diperlukan tidak dapat dilakukan di domain Active Directory Terkelola. Jika Anda mengalami masalah dengan Autentikasi Windows, Anda dapat mencoba membatalkan penggabungan domain Active Directory yang dikelola, 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 menyebabkan instance dimulai ulang.
This instance would need a more recent creation date to support Managed Service for Microsoft Active Directory. Di Cloud SQL, jika instance Cloud SQL untuk SQL Server dibuat pada atau sebelum 12 Maret 2021, instance tersebut tidak dapat diintegrasikan dengan Microsoft AD Terkelola. Coba operasi Anda pada instance yang dibuat setelah 12 Maret 2021.

Langkah berikutnya

  • Konfirmasi bahwa Anda telah meninjau halaman ringkasan sepenuhnya, yang mencakup batasan dan fitur yang tidak didukung. Halaman tersebut juga menyertakan link ke dokumentasi tambahan.