我需要在本地使用数据库。我用Visual Studio 2012在(LocalDB)\v11.0服务器上创建了数据库。当从控制台应用程序连接时,一切正常。但我的应用程序是Windows服务。尝试连接到我的数据库会输出以下内容:
"... The login failed.Login failed for user 'NT AUTHORITY\SYSTEM"
这个问题有没有解决方案?也许我应该考虑为它设置另一个数据库服务器?如果是这样,如何设置才能使其只在本地可见?
我需要在本地使用数据库。我用Visual Studio 2012在(LocalDB)\v11.0服务器上创建了数据库。当从控制台应用程序连接时,一切正常。但我的应用程序是Windows服务。尝试连接到我的数据库会输出以下内容:
"... The login failed.Login failed for user 'NT AUTHORITY\SYSTEM"
这个问题有没有解决方案?也许我应该考虑为它设置另一个数据库服务器?如果是这样,如何设置才能使其只在本地可见?
我自己找到了解决方案,可以连接运行为本地系统的Windows服务的(localdb)实例:
我使用了以下文章: http://technet.microsoft.com/pl-pl/library/hh212961.aspx http://dba.fyicenter.com/faq/sql_server_2/Verifying_a_Login_Name_with_SQLCMD_Tool.html http://social.technet.microsoft.com/wiki/contents/articles/4609.troubleshoot-sql-server-2012-express-localdb.aspx
所以我分享了我的localdb(如第一篇文章所述),问题是我无法使用命名管道np://连接sqlcmd。我在第三篇文章中找到了答案:
当使用sqlcmd时,请确保您使用的是SQL Server 2012版本 (位于% Program Files%\Microsoft SQL Server\110\Tools\Binn中)。如果您安装了早期版本的sqlcmd,仅从命令行调用sqlcmd将很可能使用旧版本(该版本不具备localdb-aware功能),因为较旧的路径首先出现在PATH环境变量中。通常最好手动调整PATH环境变量,以便首先使用110版本。
这些小信息实际上非常重要;)
所以我创建了用户:user密码:pass321!@.
在我的Windows服务中,我的Sql连接字符串如下:
"Data Source=(localdb)\\.\\MyInstanceShared;Integrated Security=false;User Id=user;Password=pass321!@"
集成安全设置为false值也很重要。
也许会对某些人有帮助。
我认为你需要允许远程连接到你的 SqlServer。
在 Sql Server 配置管理器中,在 SQL 网络配置下,选择你的服务器并确保 TCP/IP 已启用。
在我的情况下,双击 TCP/IP,在底部找到 "IPAll",将动态端口设置为空,并将 TCP 端口设置为 1433。
如果以上步骤足够,请告诉我。
\\
):Data Source=(localdb).\MyInstanceShared;Integrated Security=false;User Id=user;Password=pass321!@ - Dmitry Pavlov