无法使用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)。如果这只是一个新手的错误,我很抱歉,但我刚刚开始数据库和网站建设,还有很多东西要学。非常感谢您的帮助。
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页面却引用了该连接字符串??