SQL Server用户登录失败

时间:2013-12-19 02:21:45

标签: sql asp.net sql-server windows-server-2008 sql-server-2008-express

我知道这个问题之前已经被问过,但是没有一个解决方案似乎有所帮助。我正在将数据库从托管SQL Server 2008 Express的一台计算机迁移到另一台计算机。基本上完全相同的配置。我将我的数据库从旧服务器备份到新服务器。当我尝试运行我的应用程序时,我被告知“用户'sqluser'登录失败了。”我已经比较了旧服务器和新服务器的设置,就我所知,它们完全相同。如果有帮助,这是我的连接字符串:

<add name="RetailCrimeConnectionString" connectionString="Data Source=NewServer\SQLEXPRESS;Initial Catalog=RetailCrime;Persist Security Info=True;User ID=sqluser;Password=AwesomePassword"
        providerName="System.Data.SqlClient" />

如果我将连接字符串切换回OldServer,我的应用程序再次开心。

用户sqluser是RetailCrime上的datareader和datawriter - 就像他在OldServer上一样。应用程序显然正在连接,因为如果我将数据源更改为故意不正确的错误,则错误会更改为连接错误。我已经完成了SQL实例设置,并且认为启用了所有需要启用的功能。我甚至添加了防火墙例外(我不需要对OldServer采取的步骤)。我重新创建了数据库,并在NewServer上创建了一个测试结果,结果相同。

我可能错过了谷歌搜索结果的正常票价以外的任何内容吗?如果您还需要其他任何信息,请与我们联系。我不确定要包括哪些其他细节。

谢谢!

3 个答案:

答案 0 :(得分:2)

我明白了。事实证明,我将服务器设置为仅在我设置时接受Windows身份验证而不是SQL Server帐户。一旦我在SMSS中设置了它,Web应用程序就开始接受SQL登录而没有任何问题。当我意识到我可以通过冒充Windows帐户进行连接时,我发现了这个想法。谢谢你的想法!圣诞快乐!

答案 1 :(得分:1)

您是否为sqluser创建了 SQL登录并将其映射到数据库用户?

您只在提问中提及数据库用户。

答案 2 :(得分:0)

尝试删除“NewServer”,然后添加“。”代替。如果它不在同一台机器上,请将NewServer的IP地址替换为“。”,如“Data Source = 10.10.46.15 \ SQLExpress”。如下所示:

<add name="RetailCrimeConnectionString" 
    connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=RetailCrime;Persist Security Info=True;
User ID=sqluser;Password=AwesomePassword" providerName="System.Data.SqlClient" />

您还需要确保已启用TCP / IP通信。这是针对2012年但步骤应该类似,请参阅步骤:

  1. 在“开始”菜单上,单击“所有程序”&gt; Microsoft SQL Server 2012&gt; 配置工具&gt; SQL Server配置管理器。
  2. 单击“SQL Server 2012服务”。
  3. 展开“SQL Server 2012网络配置”节点,然后展开 选择MSSQLServer的协议(SQL实例名称)。
  4. 右键单击“TCP / IP”,然后单击“启用”。
  5. 在树中选择SQL Server 2012服务。
  6. 右键单击“SQL Server(SQL实例名称)”,然后单击“重新启动”。
  7. <强>更新

    最后要尝试的事情,可能是:

    转到开始&gt; Microsoft SQL Sever 2012文件夹&gt;配置工具&gt;打开SQL Server配置管理器

    确保SQL Server服务列表中的所有内容都未停止。并确保启动模式设置为自动,而不是手动。