我需要在本地使用数据库。我已经使用Visual Studio 2012在(LocalDB)\ v11.0 Server中创建了数据库。从例如控制台应用程序进行连接时,一切正常。但是我的应用程序是Windows Service。尝试通过以下方式连接到我的数据库输出:
"... The login failed.Login failed for user 'NT AUTHORITY\SYSTEM"
有什么解决办法吗?也许我应该考虑为此设置其他数据库服务器?如果是,如何设置它使其仅在本地可见?
所以我自己找到了解决方案,如何从作为本地系统运行的Windows Service连接(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(如第一篇文章所述),问题是我无法与名为pipe np://的sqlcmd连接。我在第三篇文章中找到了答案:
使用sqlcmd时,请确保使用的是SQL Server 2012版本(位于%Program Files%\ Microsoft SQL Server \ 110 \ Tools \ Binn中)。如果安装了先前版本的sqlcmd,则从命令行单独调用sqlcmd很可能会使用旧版本(不支持localdb),因为较旧的路径首先出现在PATH环境变量中。通常,最好手动调整PATH环境变量,以便首先选择110个版本。
实际上,这些小信息至关重要;)
所以我创建了用户: 用户 ,密码: pass321!@ 。
在我的Windows服务中,我的Sql connectionString看起来是:
"Data Source=(localdb)\\.\\MyInstanceShared;Integrated Security=false;User Id=user;Password=pass321!@"
将集成安全性设置为 假 值也很重要。
也许会帮助别人。