OVH Cloud OVH Cloud

Connexion à SQL server impossible

4 réponses
Avatar
Dr Snoegel
Bonjour à tous, je suis un petit nouveau en ASP .NET et je développe sous
VS2003 en VB.NET

Ben voilà, mes appli ASP marchent impec sauf qu'il m'est impossible de me
connecter à une base de donnée que ce soit en local ou en distant ou sur un
fichier Northwin.mdb :-(

l'erreur est la suivante :

"SQL Server n'existe pas ou l'accès est refusé.
Description : Une exception non gérée s'est produite au moment de
l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour
plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Data.SqlClient.SqlException: SQL Server
n'existe pas ou l'accès est refusé.

Erreur source:


Ligne 96 : Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Ligne 97 : 'Placez ici le code utilisateur pour initialiser la page
Ligne 98 : SqlDataAdapter1.Fill(DataSet11)
Ligne 99 : End Sub
Ligne 100 :
"

J'ai cru l'erreur commune car je me suis fait une toute petite culture avant
de commencer et je me suis dit "je dois créer un utilisateur ASPNET sur mon
serveur SQL"

Qu'a cela ne tienne, j'ai créé une connection ASPNET sans mot de passe en
lui donnant tous les droits sur la base NORTHWIND de sql server 2000. j'ai
été vérifier les utilisateurs de la base et il m'a bien créé un utilisateur
ASPNET

en revanche cela ne marche toujours pas. J'ai essayé avec la base mdb local
mais idem

j'ai essayé de me mettre en utilisateur authentifié et en changent ma
connection mais idem.

en gros voila ma config :

1 poste sous XP2 (firewall désactivé....au moins pour les tests), et
visualstudio 2003 (nom du poste = poste1) ouverture de session windows avec
un login login et un mot de passe pwd.

je n'appartiens pas au domaine active directory de mon serveur mais étant
authentifié j'accède à tous ses partages.


1 serveur SBS 2003 avec donc sharepoint services, exchange et bien sur avec
sql 2000. Sur celui-ci j'ai un utilisateur administrateur du nom de celui du
poste1 qui me sert à me connecter et avec le même login et pwd + et un
ordinateur du nom de mon poste1.

sur sqlserver, j'ai une connection ASPNET sans mot de pass et une connection
au nom de mon login et pwd qui me permet d'ouvrir une session sur le poste1
ou sur le serveur. Cest deux connections possèdent tous les droits sur la
base northwind.
mon serveur sql est en authentification SQL et windows.

j'accède à mon serveur sql "SERVEUR\MONSERVEUR" sans aucun pbm depuis mon
poste client.

je cherche simplement à remplir un datagrid avec la table "Categories"

Mes appli winform marchent sans soucis, mais mon appli ASP me retourne
toujours sans cesse le message déjà cité !


Ma chaine de conneciont est la suivante :

workstation id=poste1;packet size=4096;user id=ASPNET;integrated
security=SSPI;data source="SERVEUR\MONSERVEUR";persist security
info=False;initial catalog=Northwind

j'ai essayé aussi :

workstation id=poste1;packet size=4096;user id=ASPNET;data
source="SERVEUR\MONSERVEUR";persist security info=False;initial
catalog=Northwind

workstation id=poste1;packet size=4096;user id=login;password=pwd;data
source="SERVEUR\MONSERVEUR";persist security info=False;initial
catalog=Northwind

"Data Source=SERVEUR\MONSERVEUR;Initial Catalog=Northwind;User
Id=login;Password=pwd;"


rien n'y fait

dans le webconfig, je suis an authentification windows et en allow user=*


Merci de vos conseils éclairés.

4 réponses

Avatar
Pascal Mercier
Bonsoir,
Je vous recommande d'aller voir le tableau suivant qui donne la matrice des
identités utilisées en fonction des paramétrages croisés de IIS et de
ASP.NET (dans le web.config) sur
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secmod/html/secmod38.asp.
Si vous utilisez la sécurité intégré comme indiqué dans la 1ère connection
string (integrated security=SSPI) ce qui est recommandé pour des raisons de
sécurité puisqu'il n'y a pas de mot de passe qui traine dans un fichier de
configuration (même crypté), il s'agit de bien être sûr du compte
utilisateur qui invoque la base de données. Parce qu'il sagit probablement
d'un problème de permissions.

Pascal Mercier
Microsoft France - MCS

"Dr Snoegel" a écrit dans le message de news:

Bonjour à tous, je suis un petit nouveau en ASP .NET et je développe sous
VS2003 en VB.NET

Ben voilà, mes appli ASP marchent impec sauf qu'il m'est impossible de me
connecter à une base de donnée que ce soit en local ou en distant ou sur
un fichier Northwin.mdb :-(

l'erreur est la suivante :

"SQL Server n'existe pas ou l'accès est refusé.
Description : Une exception non gérée s'est produite au moment de
l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour
plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Data.SqlClient.SqlException: SQL Server
n'existe pas ou l'accès est refusé.

Erreur source:


Ligne 96 : Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Ligne 97 : 'Placez ici le code utilisateur pour initialiser la page
Ligne 98 : SqlDataAdapter1.Fill(DataSet11)
Ligne 99 : End Sub
Ligne 100 :
"

J'ai cru l'erreur commune car je me suis fait une toute petite culture
avant de commencer et je me suis dit "je dois créer un utilisateur ASPNET
sur mon serveur SQL"

Qu'a cela ne tienne, j'ai créé une connection ASPNET sans mot de passe en
lui donnant tous les droits sur la base NORTHWIND de sql server 2000. j'ai
été vérifier les utilisateurs de la base et il m'a bien créé un
utilisateur ASPNET

en revanche cela ne marche toujours pas. J'ai essayé avec la base mdb
local mais idem

j'ai essayé de me mettre en utilisateur authentifié et en changent ma
connection mais idem.

en gros voila ma config :

1 poste sous XP2 (firewall désactivé....au moins pour les tests), et
visualstudio 2003 (nom du poste = poste1) ouverture de session windows
avec un login login et un mot de passe pwd.

je n'appartiens pas au domaine active directory de mon serveur mais étant
authentifié j'accède à tous ses partages.


1 serveur SBS 2003 avec donc sharepoint services, exchange et bien sur
avec sql 2000. Sur celui-ci j'ai un utilisateur administrateur du nom de
celui du poste1 qui me sert à me connecter et avec le même login et pwd +
et un ordinateur du nom de mon poste1.

sur sqlserver, j'ai une connection ASPNET sans mot de pass et une
connection au nom de mon login et pwd qui me permet d'ouvrir une session
sur le poste1 ou sur le serveur. Cest deux connections possèdent tous les
droits sur la base northwind.
mon serveur sql est en authentification SQL et windows.

j'accède à mon serveur sql "SERVEURMONSERVEUR" sans aucun pbm depuis mon
poste client.

je cherche simplement à remplir un datagrid avec la table "Categories"

Mes appli winform marchent sans soucis, mais mon appli ASP me retourne
toujours sans cesse le message déjà cité !


Ma chaine de conneciont est la suivante :

workstation id=poste1;packet ;user id=ASPNET;integrated
security=SSPI;data source="SERVEURMONSERVEUR";persist security
infoúlse;initial catalog=Northwind

j'ai essayé aussi :

workstation id=poste1;packet ;user id=ASPNET;data
source="SERVEURMONSERVEUR";persist security infoúlse;initial
catalog=Northwind

workstation id=poste1;packet ;user id=login;password=pwd;data
source="SERVEURMONSERVEUR";persist security infoúlse;initial
catalog=Northwind

"Data Source=SERVEURMONSERVEUR;Initial Catalog=Northwind;User
Id=login;Password=pwd;"


rien n'y fait

dans le webconfig, je suis an authentification windows et en allow user=*


Merci de vos conseils éclairés.




Avatar
Dr Snoegel
Merci de vos conseils. Je suis suisdaccord avec vous c'est sans doute un pbm
de droit mais je ne trouv toujours pas comment le résoudre.

D'après le tableau que vous m'avez indiquez, je me suis mis dans la
configuration suivante :

IIS Integrated Windows

Web.config Settings Variable Location Resultant Identity
<identity impersonate="true"/>
<authentication mode="Windows" /> HttpContext
WindowsIdentity
Thread DomainUserName
DomainUserName
DomainUserName


Donc mon identité sur le serveur IIS et sur le serveur SQL devrait être
identique.

le code suivant placé en pageload sur ma webform

lblAuthenticate.Text = User.Identity.IsAuthenticated.ToString()

lblUserName.Text = User.Identity.Name.ToString()

lblType.Text = User.Identity.AuthenticationType.ToString()




"Pascal Mercier" a écrit dans le message de
news:
Bonsoir,
Je vous recommande d'aller voir le tableau suivant qui donne la matrice
des identités utilisées en fonction des paramétrages croisés de IIS et de
ASP.NET (dans le web.config) sur
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secmod/html/secmod38.asp.
Si vous utilisez la sécurité intégré comme indiqué dans la 1ère connection
string (integrated security=SSPI) ce qui est recommandé pour des raisons
de sécurité puisqu'il n'y a pas de mot de passe qui traine dans un fichier
de configuration (même crypté), il s'agit de bien être sûr du compte
utilisateur qui invoque la base de données. Parce qu'il sagit probablement
d'un problème de permissions.

Pascal Mercier
Microsoft France - MCS

"Dr Snoegel" a écrit dans le message de news:

Bonjour à tous, je suis un petit nouveau en ASP .NET et je développe sous
VS2003 en VB.NET

Ben voilà, mes appli ASP marchent impec sauf qu'il m'est impossible de me
connecter à une base de donnée que ce soit en local ou en distant ou sur
un fichier Northwin.mdb :-(

l'erreur est la suivante :

"SQL Server n'existe pas ou l'accès est refusé.
Description : Une exception non gérée s'est produite au moment de
l'exécution de la demande Web actuelle. Contrôlez la trace de la pile
pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Data.SqlClient.SqlException: SQL Server
n'existe pas ou l'accès est refusé.

Erreur source:


Ligne 96 : Private Sub Page_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
Ligne 97 : 'Placez ici le code utilisateur pour initialiser la page
Ligne 98 : SqlDataAdapter1.Fill(DataSet11)
Ligne 99 : End Sub
Ligne 100 :
"

J'ai cru l'erreur commune car je me suis fait une toute petite culture
avant de commencer et je me suis dit "je dois créer un utilisateur ASPNET
sur mon serveur SQL"

Qu'a cela ne tienne, j'ai créé une connection ASPNET sans mot de passe en
lui donnant tous les droits sur la base NORTHWIND de sql server 2000.
j'ai été vérifier les utilisateurs de la base et il m'a bien créé un
utilisateur ASPNET

en revanche cela ne marche toujours pas. J'ai essayé avec la base mdb
local mais idem

j'ai essayé de me mettre en utilisateur authentifié et en changent ma
connection mais idem.

en gros voila ma config :

1 poste sous XP2 (firewall désactivé....au moins pour les tests), et
visualstudio 2003 (nom du poste = poste1) ouverture de session windows
avec un login login et un mot de passe pwd.

je n'appartiens pas au domaine active directory de mon serveur mais étant
authentifié j'accède à tous ses partages.


1 serveur SBS 2003 avec donc sharepoint services, exchange et bien sur
avec sql 2000. Sur celui-ci j'ai un utilisateur administrateur du nom de
celui du poste1 qui me sert à me connecter et avec le même login et pwd +
et un ordinateur du nom de mon poste1.

sur sqlserver, j'ai une connection ASPNET sans mot de pass et une
connection au nom de mon login et pwd qui me permet d'ouvrir une session
sur le poste1 ou sur le serveur. Cest deux connections possèdent tous les
droits sur la base northwind.
mon serveur sql est en authentification SQL et windows.

j'accède à mon serveur sql "SERVEURMONSERVEUR" sans aucun pbm depuis mon
poste client.

je cherche simplement à remplir un datagrid avec la table "Categories"

Mes appli winform marchent sans soucis, mais mon appli ASP me retourne
toujours sans cesse le message déjà cité !


Ma chaine de conneciont est la suivante :

workstation id=poste1;packet ;user id=ASPNET;integrated
security=SSPI;data source="SERVEURMONSERVEUR";persist security
infoúlse;initial catalog=Northwind

j'ai essayé aussi :

workstation id=poste1;packet ;user id=ASPNET;data
source="SERVEURMONSERVEUR";persist security infoúlse;initial
catalog=Northwind

workstation id=poste1;packet ;user id=login;password=pwd;data
source="SERVEURMONSERVEUR";persist security infoúlse;initial
catalog=Northwind

"Data Source=SERVEURMONSERVEUR;Initial Catalog=Northwind;User
Id=login;Password=pwd;"


rien n'y fait

dans le webconfig, je suis an authentification windows et en allow user=*


Merci de vos conseils éclairés.








Avatar
Dr Snoegel
Bonjour et merci de vos conseil,

je pense aussi à un pbm de permission mais sans arriver à le résoudre.

d'après el tableau que vous m'avez indiqué, je me place dans la
configuration suivante :
IIS Integrated Windows

Web.config Settings Variable Location Resultant Identity
<identity impersonate="true"/>
<authentication mode="Windows" /> HttpContext
WindowsIdentity
Thread DomainUserName
DomainUserName
DomainUserName


donc une seule indentification pour le serveur IIS et pour le serveur 2003
avec SQL serveur

Le code ci-dessous placé en "Page_Load"
lblUserName.Text = User.Identity.Name.ToString()
lblAuthenticate.Text = User.Identity.IsAuthenticated.ToString()



lblType.Text = User.Identity.AuthenticationType.ToString()



me donne a l'execution de ma page : poste1/login



"Pascal Mercier" a écrit dans le message de
news:
Bonsoir,
Je vous recommande d'aller voir le tableau suivant qui donne la matrice
des identités utilisées en fonction des paramétrages croisés de IIS et de
ASP.NET (dans le web.config) sur
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secmod/html/secmod38.asp.
Si vous utilisez la sécurité intégré comme indiqué dans la 1ère connection
string (integrated security=SSPI) ce qui est recommandé pour des raisons
de sécurité puisqu'il n'y a pas de mot de passe qui traine dans un fichier
de configuration (même crypté), il s'agit de bien être sûr du compte
utilisateur qui invoque la base de données. Parce qu'il sagit probablement
d'un problème de permissions.

Pascal Mercier
Microsoft France - MCS

"Dr Snoegel" a écrit dans le message de news:

Bonjour à tous, je suis un petit nouveau en ASP .NET et je développe sous
VS2003 en VB.NET

Ben voilà, mes appli ASP marchent impec sauf qu'il m'est impossible de me
connecter à une base de donnée que ce soit en local ou en distant ou sur
un fichier Northwin.mdb :-(

l'erreur est la suivante :

"SQL Server n'existe pas ou l'accès est refusé.
Description : Une exception non gérée s'est produite au moment de
l'exécution de la demande Web actuelle. Contrôlez la trace de la pile
pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.Data.SqlClient.SqlException: SQL Server
n'existe pas ou l'accès est refusé.

Erreur source:


Ligne 96 : Private Sub Page_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
Ligne 97 : 'Placez ici le code utilisateur pour initialiser la page
Ligne 98 : SqlDataAdapter1.Fill(DataSet11)
Ligne 99 : End Sub
Ligne 100 :
"

J'ai cru l'erreur commune car je me suis fait une toute petite culture
avant de commencer et je me suis dit "je dois créer un utilisateur ASPNET
sur mon serveur SQL"

Qu'a cela ne tienne, j'ai créé une connection ASPNET sans mot de passe en
lui donnant tous les droits sur la base NORTHWIND de sql server 2000.
j'ai été vérifier les utilisateurs de la base et il m'a bien créé un
utilisateur ASPNET

en revanche cela ne marche toujours pas. J'ai essayé avec la base mdb
local mais idem

j'ai essayé de me mettre en utilisateur authentifié et en changent ma
connection mais idem.

en gros voila ma config :

1 poste sous XP2 (firewall désactivé....au moins pour les tests), et
visualstudio 2003 (nom du poste = poste1) ouverture de session windows
avec un login login et un mot de passe pwd.

je n'appartiens pas au domaine active directory de mon serveur mais étant
authentifié j'accède à tous ses partages.


1 serveur SBS 2003 avec donc sharepoint services, exchange et bien sur
avec sql 2000. Sur celui-ci j'ai un utilisateur administrateur du nom de
celui du poste1 qui me sert à me connecter et avec le même login et pwd +
et un ordinateur du nom de mon poste1.

sur sqlserver, j'ai une connection ASPNET sans mot de pass et une
connection au nom de mon login et pwd qui me permet d'ouvrir une session
sur le poste1 ou sur le serveur. Cest deux connections possèdent tous les
droits sur la base northwind.
mon serveur sql est en authentification SQL et windows.

j'accède à mon serveur sql "SERVEURMONSERVEUR" sans aucun pbm depuis mon
poste client.

je cherche simplement à remplir un datagrid avec la table "Categories"

Mes appli winform marchent sans soucis, mais mon appli ASP me retourne
toujours sans cesse le message déjà cité !


Ma chaine de conneciont est la suivante :

workstation id=poste1;packet ;user id=ASPNET;integrated
security=SSPI;data source="SERVEURMONSERVEUR";persist security
infoúlse;initial catalog=Northwind

j'ai essayé aussi :

workstation id=poste1;packet ;user id=ASPNET;data
source="SERVEURMONSERVEUR";persist security infoúlse;initial
catalog=Northwind

workstation id=poste1;packet ;user id=login;password=pwd;data
source="SERVEURMONSERVEUR";persist security infoúlse;initial
catalog=Northwind

"Data Source=SERVEURMONSERVEUR;Initial Catalog=Northwind;User
Id=login;Password=pwd;"


rien n'y fait

dans le webconfig, je suis an authentification windows et en allow user=*


Merci de vos conseils éclairés.








Avatar
Dr Snoegel
Merci de vos conseils. Je pense comme vous qu'il y a un pbm de permission
mais je suis incapable de le résoudre.

je me suis placé dans la configuration indiquée sur al tableau désigné par
votre lien :
IIS Integrated Windows

Web.config Settings Variable Location Resultant Identity
<identity impersonate="true"/>
<authentication mode="Windows" /> HttpContext
WindowsIdentity
Thread DomainUserName
DomainUserName
DomainUserName


il y a donc une seule identité pour le serveur IIS local de mon psote de dev
et pour l'accès au serveur 2003 avec sql serveur.

sur le serveur IIS je décoche les connexions anonymes et je met sécurité
intégrée windows
le code cidessous placé en "page_load" sur ma web forme me donne les
résulats suivant :

lblUserName.Text = User.Identity.Name.ToString()
poste1login
lblAuthenticate.Text = User.Identity.IsAuthenticated.ToString()
true
lblType.Text = User.Identity.AuthenticationType.ToString()
Negotiate


j'ai fait un drag and drop de ma table vers la webform ce qui me genere le
dataadapter et la connexion, je génère le group de donnée et je vérifie que
les données sont bien lisibles


j'ajoute un bouton dans le quel je met

SqlDataAdapter1.Fill(DataSet11)

j'ajoute une datagrid qet je met dataset11 en source



(ma chaine de connexion générée automatiquement est la suivante : )

workstation id=poste1;packet ;user id=ASPNET;integrated
security=SSPI;data source="SERVEURMONSERVEUR";persist security
infoúlse;initial catalog=Northwind
modifiée par mes soins :
integrated security=SSPI;data source="SERVEURMONSERVEUR";persist security
infoúlse;initial catalog=Northwind

dans les deux cas, le remplissage de al datagrid échoue avec le message déjà
cité

coté serveur, poste1 est déclaré comme ordinateur du domaine (même si je
n'ouvre pas de session sur le domaine)
le même utilisateur que celui qui me sert à ouvrir une session sur poste1
est créé sur le serveur

coté sql serveur, j'ai essayé soit de créer une connexion sql serveur
login et pwd (authentification sqlserveur)
soit de créer une connexion login en choisissant l'authentification windows
et l'utilisateur login du serveur (SERVEURlogin)

rein a faire dans les deux cas

j'ai aussi essayé de créer un utilisatur de base de donnée login, lié à la
connexion BUILTINAdministrateurs sans plus de succès

et je ne peux pas faire de connexion poste1login car le nom de domaine est
SERVEUR et non poste1

d'autres idées pour résoudre ce cas ?