无法使用web服务登录到本地数据库

本文关键字:数据库 登录 服务 web | 更新日期: 2023-09-27 18:28:43

我正试图使用IIS7中默认网站上本地运行的web服务访问我的本地数据库。我以前一直使用Windows身份验证,但我读到要使用web服务,必须使用SQL Server身份验证,我对此没有经验,但尝试过。我创建了一个新的登录名,但当我尝试在连接字符串中使用这些凭据时:

connectionString="Server=.'SQLExpress;Database='SponsorChild';Trusted_Connection=True;User Id=abc;Password=abcpass" name="SponsorChildDatabase"/>

并尝试使用web服务,我得到错误:

System.Data.SqlClient.SqlException: Cannot open database "SponsorChild" requested by the login. The login failed.
Login failed for user 'IIS APPPOOL'DefaultAppPool'.

因此,似乎连合适的用户都没有通过。此外,当我尝试使用SQL Management Studio登录时,它还会给我一个登录错误(错误18456,状态为38)。如果这只是一个新手的错误,我很抱歉,但我刚刚开始数据库和网站建设,还有很多东西要学。非常感谢您的帮助。

无法使用web服务登录到本地数据库

Trusted_Connection=True使用Windows凭据,而不是提供的用户名和密码。您在数据库中设置的用户不起作用。您需要使用SQL Server身份验证或对运行该服务的Windows帐户进行身份验证。

这是一个不使用Windows凭据的连接示例:

Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

创建使用SQL Server身份验证的SQL Server登录(SQL Server Management Studio)

1.在SQL Server Management Studio中,打开对象资源管理器,然后展开要在其中创建新登录名的服务器实例的文件夹。

2.右键单击"安全"文件夹,指向"新建",然后单击"登录"。

3.在"常规"页面上,在"登录名"框中输入新登录名。

4.选择"SQL Server身份验证"。Windows身份验证是更安全的选项。

5.输入登录密码。

6.选择应应用于新登录的密码策略选项。一般来说,强制执行密码策略更安全选项

7.单击"确定"。

数据库是本地的这一事实可能意味着您自己管理它,因此这里有一本设置sql server身份验证的手册。

检查以确保:

您的连接字符串中有正确的服务器名称。它真的是localhost吗?或者您可能安装了SQL Server Express,结果却变成了(本地)''SQLExpress??

您要连接的服务器具有用户桌面''用户的登录名(请检查对象资源管理器->(您的服务器)->安全性->登录名)

数据库ASPNETDB有一个基于该登录名的用户,以便您可以使用该数据库(检查对象资源管理器->(您的服务器)->数据库->(数据库)->安全性->用户)

admin.aspx页面确实引用了您给定的连接字符串(ConnectionString1)。您的Admin文件夹中是否有一个单独的web.config,例如,它有不同的连接字符串,而Admin.aspx页面却引用了该连接字符串??