2013-08-08 13 views
6

D5'te bir TAdoConnection kullanarak bir Windows 7 64-bit makinede parolalı bir hesap kullanarak yerel bir Sql Sunucusuna bağlanmak için "Ben kullanıcı sa için oturum açma başarısız" hatası alıyorum Parola eklemek için TAdoConnection ConnectionString oluşturdu. BeforeConnect olayı tetiklendiğinde, ConnectionString artık şifreyi içermez. Parolayı WillConnect olayında ayarlayabilirim ve bağlantı düzgün çalışıyor.TAdoConnection parolası AWOL ile gider

Sorum şu ki, ConnectionString parolasını kaldıran nedir? W7'de bazı güvenlik özellikleri eklenmiş olabilir mi - XP'de bu sorunu hatırlamıyorum.

Btw: Persist Güvenlik Bilgisini ConnectionString'de true olarak ayarladığım halde bu sorun hala devam ediyor - parola DFM'de saklanmıyor bile.

+0

Bu bağlantıyı tasarım zamanında açmayın (ya da bunu yapın, ancak "Bağlantı dizesinde" Persist Security Info = True "ile) ve DFM'ye kaydedilmelidir. – TLama

+0

Kaydedilmem gerektiğini biliyorum ama "Btw" de söylediğim gibi değil. – MartynA

+0

Windows OLE DB Veri Bağlantısı Özellikleri iletişim kutusunu çağıran ConnectionString "Oluştur ..." düğmesini kullanmayın ve kapattığınızda parolayı soyar. SQL Server ile bu sorunu yaşadım, bağlantı dizgisini gerçek sağlayıcıya karşı doğrulamalıdır. (SQLNCLI, SQLNCLI10, SQLOLEDB) Bağlantı dizesini elle oluşturun ve ConnectionString özelliğine yapıştırın, ardından kaydedin. – TDC

cevap

7

ConnectionString'inizin "Persist Security Info = True" içermesi gerekiyor, buna prior topic bakın. Biri SQL Authentication için, diğeri Active Directory Authentication için iki const kullanıyorum ve sadece boşlukları dolduruyorum.

const 
    csCONNECTION = 'Provider=%s;Password=%s;Persist Security Info=True;User ID=%s;Initial Catalog=%s;Data Source=%s'; 
    csADCONNECTION = 'Provider=%s;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=%s;Data Source=%s'; 
İlgili konular