无法打开数据库错误

时间:2018-05-06 18:15:40

标签: asp.net sql-server

int userId = 0;

string roles = string.Empty;

string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;

using (SqlConnection con = new SqlConnection(constr))
{
    using (SqlCommand cmd = new SqlCommand("Validate_User"))
    {
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.AddWithValue("@Username", Login1.UserName);
        cmd.Parameters.AddWithValue("@Password", Login1.Password);
        cmd.Connection = con;

        con.Open();
<{1>}中的

,连接字符串定义为

web.config

但是当我运行它时,我收到一个错误:

  

System.Data.SqlClient.SqlException:无法打开数据库&#34; LoginDB&#34;登录请求。登录失败。
  用户&#39; NT AUTHORITY \ SYSTEM&#39;。

登录失败

任何解决方案?

2 个答案:

答案 0 :(得分:1)

在使用集成安全性时,您必须为默认系统用户提供连接到数据库的权限(不是一个好主意),或者配置Web应用程序用于在在DB上具有所需权限的特定用户。第三种选择是不使用集成安全性并将SQL用户名和密码存储在连接字符串中。但如果您可以使用集成安全性是最好的方法。 HTH

答案 1 :(得分:0)

您可以在SQL Server中授予NT AUTHORITY\SYSTEM用户权限,我不建议这样做。

另一种方法是使用SQL Server身份验证并指定User IdPassword

<add name="constr" providerName="System.Data.SqlClient" connectionString="Data Source=ServerName;Initial Catalog=DatabaseName;Integrated Security=False;User Id=userid;Password=password;MultipleActiveResultSets=True" />