2009-02-24 12 views
5

Bu bağlantı dizesini kullanarak uzak bir SQL sunucusuna bağlanmaya çalıştığımda bu hatayı alıyorum.Uzaktaki bir makineden bir mssql sunucusuna bağlanma, '' kullanıcı için oturum açamadı ''

Hata:

ODBC error: 28000118452[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user ''. The user is not associated with a trusted SQL Server connection.

Bağlantı dizesi: Yerel bilgisayarı belirtirseniz, bu aynı bağlantı dizesi çalışıyor

"DRIVER={SQL Server};SERVER=testserver,1433;Trusted_Connection={Yes};"

Not.

Soruma: Neden uzak SQL sunucusu kullanıcı adımın boş olduğunu düşünüyor? '?

WNetAddConnection Win32 API'sini kullanarak önce uzak makineye geçerli bir giriş yaptım.

Düzenleme: Yönetim stüdyosu bağlanırken aynı hatayı alıyorum. Fakat önce programımın uzak makineye bağlantı kurduğumdan beri daha yüksek bir şansı olacağını düşündüm.

Düzenleme2: Not Windows kimlik doğrulamasını kullanan bir çözüme gerçekten ihtiyacım var. Zaten SQL kimlik doğrulaması ile çalışıyorum.

+0

Windows tümleşik kimlik doğrulaması veya sql kullanıcısı mı kullanıyorsunuz? Bağlantı dizesinde göremiyorum .. –

+0

Windows kimlik doğrulaması için Trusted_connection'ı kullanabilirsiniz. –

+0

Tümleşik Güvenlik = SSPI –

cevap

1

Düşünceler

gibi bir bağlantı dizesi deneyin? Muhtemelen WNet * ...

ile bağlantı kurma referanslarınız nedeniyle, Entegre Güvenlik size sorun verecektir.

Düzenleme: Her iki makinenin aynı etki alanında olmadığını görüyorum. Entegre Güvenlik, SQL Server yerel makine içindedir etki alanına güvenmelidir olduğu etki alanını kullanmak için

Başka Edit:. Bağlantısından Corroboration for the above statement.

: Bu hata iletisi kullanıcı eğer görünebilir Oturum açmak, SQL Server'ın etki alanından farklı, güvenilir olmayan bir etki alanından etki alanı hesabıdır. Bunun için bir sonraki adım, istemci makineyi SQL Server ile aynı etki alanına taşımak ve bir etki alanı hesabı kullanmak veya etki alanları arasında karşılıklı güven kurmak üzere kurmaktır. Karşılıklı güvenin kurulması karmaşık bir prosedürdür ve çok fazla dikkat ve güvenlikle ilgili hususlarda yapılmalıdır.

2.) SPN'lerin sunucuda düzgün şekilde ayarlandığından emin olun.

daha rehberlik için bak HERE ama temelde yapın:

setspn -L SPN'ler

biri gibi görünmek gerekiyor servername:

MSSQLSvc/servername: 1433

3 .) Bir tane daha Düzenleme: Her iki makine de bir etki alanında değilse, yapmanız gereken tek şey, her iki makinede eşleşen yerel bir kullanıcı adı/parolaya sahip olmaktır. Örneğin, her iki makinede de brian adında bir kullanıcı ve her iki kullanıcı şifresi de 'letmein' şeklindedir.

+0

ile ilk olarak başarılı bir bağlantı kurdum değil 1) Bir etki alanında değiller ve farklı u/p var. wnet api, bir etki alanında olmayan 2 makine ile çalışırken bile iyi çalışır. –

+0

SQL Server, WNet * apis kullanmıyor. – Moose

+0

Merhaba Moose; Bilgisayarlar arasında bu güveni kurmaya nereden başlayacağınıza dair bir ipucu verebilir misiniz? –

-1

'un iyi bir dökümantasyonunu buldum. Bu hata, UserId bölümü doldurulmadığından kaynaklanıyor olabilir (Windows Auth için doğrudur). Aynı etki alanında hem makinelerdir)

: 1.

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

özdeş olması gerekiyordu diğer alternatif:

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;

İlgili konular