Farklı bir etki alanında Windows Kimlik Doğrulaması ile SQL Server'a bağlanın


73

Farklı bir etki alanındaki VPN'deki uzak SQL Server'a bağlanmaya çalışıyorum. SQL Server'da Sunucu adını girip okulumun ihtiyaç duyduğu bazı ekstra şeyleri eklemek için Ek Bağlantı Parametreleri'ni seçtiğimde:

Integrated Security=SSPI; User ID=DOMAIN\username; Password=Password

Aşağıdaki hatayı alıyorum:

Giriş başarısız. Giriş güvenilmeyen bir etki alanından ve Windows kimlik doğrulaması ile kullanılamaz.


Windows Kimlik Bilgileri Yöneticisi ile ilgili tek sorun, desteklediğiniz çok sayıda veritabanınız varsa, her biri için bir giriş yapmanız ve etki alanı şifrelerinizi güncellemeniz gerektiğinde bunları güncellemenizdir. Her 30 - 60 günde bir olabilecek bazı insanlar için.
smehaffie

Bu gönderi biraz ilgili.
RBT

@smehaffie şifreleri korumak için kolayca komut dosyasını ve "cmdkey / add" komutunu kullanabilirsiniz - günceller.
Bay Magoo

Yanıtlar:


70

Bir uygulamanın bağlantı dizesinden, Windows kimlik bilgilerini düz metin olarak iletmeye çalışıyorsunuz. Bu, Windows kimlik doğrulamasının nasıl çalıştığı değildir ve amacı büyük ölçüde yitirir.

Ayrıca, aynı kullanıcı adını kendi etki alanınızda aynı parola ile oluşturamaz ve bunun sihirli bir şekilde çalışmasını bekleyemezsiniz. Etki alanı adı hala doğrulamanın bir parçasıdır - makineniz etki alanının bir parçası olmalıdır veya makinenizin bulunduğu etki alanı okulun etki alanı tarafından güvenilir olmalıdır.

Bildiğim tek geçici çözüm, SSMS için ve bu yanıttarunas /netonly açıklanan numara bu . Bu, Windows'u kendinizin değil, belirttiğiniz giriş olarak SSMS'yi başlatmaya zorlar (bu, SSMS'nin Bağlantı özellikleri iletişim kutusunda ayarlayabileceğiniz bir şey değildir, SSMS'yi komut satırından veya kısayoldan başlatmanız gerekir):

runas /netonly /user:domain\username "C:\path_to\ssms.exe"

Bu, uzak etki alanındaki parolanızı soracaktır. Bu edecektir bakmak o yerel Windows kimlik kullanıyor gibi ama değil .

Visual Studio ile de çalışmak mümkün, ama gerçekten bilmiyorum.

Yani seçenekleriniz:

  • üniversitenin makinenizi etki alanına katmanıza izin vermesi
  • üniversitenin etki alanınızı güvenilir bir etki alanı olarak eklemesini sağlayın
  • VPN içinde RDP yapmanızı sağlayan ve doğrudan SQL Server makinesine bağlanan araçları kullanan bir atlama kutunuz var
  • SQL kimlik doğrulaması kullan
  • runas /netonlyhileyi Visual Studio ile deneyin
  • sadece runas /netonlySSMS ile hile kullanın

runasŞey gelmez Visual Studio ile çalışır.
Daniel Hutmacher

Bu davranışı komut istemi olmadan taklit etmenin bir yolu var mı?
Gilles Lesire

1
@Gilles bir toplu iş dosyası oluşturabilir ve toplu iş dosyasını çift tıklatabilir ya da bu dizeyi kullanabilir ve belki bir kısayol oluşturabilirsiniz
Aaron Bertrand

102

Şimdi runas /netonlymetodu tercih ettiğimde kullandığım başka bir yol daha var .

Windows kontrol panelinde bulunan Credential Manager'ı kullanarak kimlik bilgilerini Windows'ta profilinize ekleyebilirsiniz.

  1. Kimlik Bilgisi Yöneticisini Aç
  2. "Windows Kimlik Bilgileri Ekle" yi tıklayın
  3. "İnternet veya ağ adresi" alanını, kimlik bilgilerini saklamak istediğiniz SQL örneğinin adı ve bağlantı noktası numarasıyla doldurun.

    Örnek: UniServer:1433(1433 varsayılan bağlantı noktasıdır, özellikle adlandırılmış bir örneğe bağlanıyorsanız, farklı bir bağlantı noktasına ihtiyacınız olabilir)

  4. "Kullanıcı Adı" nı doldurun (örneğin, etki alanını eklemeyi unutmayın MYDOMAIN\MYUSER)
  5. "Şifreyi" doldur
  6. Tamam'ı tıklayın

Sunucu adı, bağlantı noktası ve oturum açma ayrıntılarını doğru kullanıyorsanız, Windows Kimlik Doğrulaması'nı çoğu istemci aracı olan SSMS, Excel'de kullanabilirsiniz. Hepsi kayıtlı bilgileri kullanır.

İpucu: Bazen, kimlik bilgilerini eklerken sunucu için FQN kullanmanız gerekir. örneğin UniServer.UniDomain.org:1433, hepsi ağ özelliklerine bağlıdır.

İşte yöntemin hızlı bir demo: http://youtu.be/WiVBPsqB9b4

Masaüstümden VM’de çalışan bir SQL Server’a bağlanmayı, ardından gerekli bilgileri eklemeyi ve tekrar denemeyi başarılı bir şekilde yapmayı deneyen (ve başarısız olan) bir ekran görüntüsü.

İpucu: Depolanan kimlik bilgilerini oluşturmak ve güncellemek için "cmdkey / add" komutunu kullanın.


İlginç! İstemci makinenizin, gerçekte ne denilebileceğinden ziyade uzak makinenin çağrıldığını düşündüğüne bağlı olarak görünüyor. IP adresi için ana bilgisayar dosyama icat edilmiş bir giriş ("verysillytest.mwardm") koydum (bizim dış etki alanlarından erişenlerin yapamayacağı gibi) ve kimlik bilgilerini "verysillytest.mwardm: 1433" . Daha sonra, ana bilgisayar adını veya IP adresini kullanarak (Query Express adlı küçük bir uygulamadan) mutlu bir şekilde bağlanabiliyorum.
mwardm,

@mwardm evet, bu yüzden ping veya nslookup komutunu kullanmanızı öneririm, çünkü size tam olarak büyük / küçük harf ayrıntıları da dahil olmak üzere tam olarak kullanmanız gereken adı söyleyecektir.
Bay Magoo

Ah, "ping -a" bana hiçbir şey vermedi ve nslookup (hemen) işe yaramadı çünkü alanın DNS sunucularını kullanmıyordum. Endişelenmeyin, aslında sadece IP adresini (ve giriş bilgisini) bilmek zorunda kalmamı ve kendi adımı oluşturabilmeyi tercih ediyorum!
mwardm

1
Müthiş, işe yarıyor! Merak ediyorum - böyle çalışması mı gerekiyor, yoksa SQL Server tarafında bir hata mı yoksa bir tasarım hatası mı var? Microsoft veya Microsoft'tan insanlar, etki alanı bağlı bir makineye sahip olmanız gereken her yerde reklam yapar; aksi halde, yalnızca etki alanı kimlik bilgilerini kabul edecek şekilde ayarlanmış SQL Server'a bağlanmanın bir yolu yoktur.
Dawid Ferenczy Rogožan

BTW Bu cevabın kabul edildi olarak işaretlenmesi gerektiğini söyleyebilirim, çünkü gerçek bir çözüm gibi görünüyor ve diğer cevap daha çok geçici bir çözüm gibi görünüyor.
Dawid Ferenczy Rogožan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.