2017-05-17 4 views
0

Dans l'une de notre ancienne chaîne de connexion app VB6 est la suivante:VB6 et Sql serveur 2016 chaîne de connexion express

nk = "Provider=SQLOLEDB;" 
nk = nk + "Integrated Security=SSPI;" 
nk = nk + "Persist Security Info=False;" 
nk = nk + "User ID=sa;" 
nk = nk + "Password=******;" 
nk = nk + "Initial Catalog=" & db & ";" 
nk = nk + "Data Source=" & hn 
kon.ConnectionString = nk 
kon.Open 

Si je tente de se connecter avec ces options, il ne fonctionnera pas, donc je suis intéressé pourquoi ces deux options:

nk = nk + "Integrated Security=SSPI;" 
nk = nk + "Persist Security Info=False;" 

ne sont pas ignorés? Pour signaler que cette application est en train de se connecter à Sql Server 2016 Express sur Windows Server 2016 Standard via un réseau local.

Répondre

2

votre problème est avec

Integrated Security = SSPI

Il doit être défini sur false (ou supprimé tout à fait) que vous n'utilisez pas l'authentification utilisateur Windows, mais un par l'utilisateur standard SQL mot de passe

Sur MSDN documentation:

Si false, ID utilisateur et mot de passe sont spécifiés dans la connexion. Lorsque true, les informations d'identification de compte Windows actuelles sont utilisées pour l'authentification . Les valeurs reconnues sont true, false, yes, no et sspi (fortement recommandé), ce qui équivaut à true. Si ID utilisateur et Mot de passe sont spécifiés et que la sécurité intégrée est définie sur true, l'ID utilisateur et le mot de passe seront ignorés et la sécurité intégrée sera utilisée.

+0

... et cela signifie que mon compte de domaine n'a pas les privilèges pour accéder à la base de données sql server. Merci pour le conseil. – murga