2011-08-28 7 views
2

Problème: Toute tentative de mise à jour de la base de données est refusée dans SQL Server 2008 R2 à l'aide de SQL dans la page ASP classique.Peut lire mais ne peut pas mettre à jour

En un mot, peut lire, mais ne peut pas mettre à jour/écrire à DB en utilisant SQL dans la page ASP

Message d'erreur:

Microsoft OLE DB pour erreur SQL Server '80040e4d'

Échec de la connexion pour l'utilisateur

Il m'a fallu plus de 6 heures pour résoudre les problèmes, mais toujours pas de réponse

choses Examiné

  1. Mot de passe pour l'utilisateur est correct. Revérifié. Testé un mot de passe erroné et a entraîné que je ne peux pas lire à partir de DB.

  2. Lorsque le mot de passe de l'utilisateur est correct, peut être lu à partir de la base de données. Peut utiliser SQL pour lire à partir de DB. Juste ne peut pas mettre à jour en utilisant SQL.

  3. db_datareader & db_datawriter est cochée pour l'utilisateur

  4. Vérifié le journal SQL Server - erreur 18456 gravité 14 état 8. Ceci est le décalage de mot de passe. Mais je suis très sûr que le mot de passe est correct, car je peux lire à partir de DB. C'est seulement lorsque le SQL tente d'écrire sur DB, il est refusé.

Conseils

  • Est ce que le dbo doit avoir db_datareader & db_datawriter vérifié aussi bien? Je ne suis pas en mesure de vérifier que dans SQL Server Management Studio

  • Quelque chose à propos du schéma que je dois faire?

Toute personne aide. Merci beaucoup/

Cela fonctionne parfaitement et correctement dans un autre site utilisant SQL Server 2000. Lorsque je migre vers SQL Server 2008 R2, c'est le problème.

AA Jaz

+1

Vous avez fait du bon travail pour diagnostiquer le problème, car les problèmes de connexion permettant l'audit et la vérification du journal des erreurs donnent ce détail granulaire de la raison de l'échec de connexion. Travailler logiquement à partir de cette seule information définitive. Ignorer les autorisations et ce que vous pouvez lire. Réinitialiser le mot de passe sur le serveur à quelque chose de simple, mettez le même dans votre chaîne de connexion, voir si cela vous aide à progresser plus loin. –

+0

Avez-vous différentes chaînes de connexion pour la page qui lit et la page qui écrit? "Échec de la connexion" n'aurait rien à voir avec le fait que vous lisiez ou écriviez - cette erreur se produirait avant que SQL Server ait une idée de vos intentions. –

Répondre

0

On dirait que votre connexion au serveur SQL n'ont que les autorisations de lecture sur la base de données (/ table/serveur) et il n'avez pas les permissions d'écriture, le dbwriter et dbreader sont les rôles dans SQL Server 2000, en 2008, tout a changé, vous avez ajouter des rôles à votre connexion.

S'il vous plaît essayer de donner le login toutes les autorisations, comme ci-dessous

GRANT ALL ON <your_table> to <your_login> 
0

s'il vous plaît essayer db du studio de gestion de serveur SQL pour mettre à jour une table par requête dans l'Analyseur de requêtes si cela ne fonctionne pas, vérifiez la permission de table ou login user permission

Questions connexes