一尘不染

如何从Windows服务访问localDB

sql

我需要在本地使用数据库。我已经使用Visual Studio 2012在(LocalDB)\ v11.0
Server中创建了数据库。从例如控制台应用程序进行连接时,一切正常。但是我的应用程序是Windows
Service。尝试通过以下方式连接到我的数据库输出:

"... The login failed.Login failed for user 'NT AUTHORITY\SYSTEM"

有什么解决办法吗?也许我应该考虑为此设置其他数据库服务器?如果是,如何设置它使其仅在本地可见?


阅读 146

收藏
2021-03-10

共1个答案

一尘不染

所以我自己找到了解决方案,如何从作为本地系统运行的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!@"

将集成安全性设置为 值也很重要。

也许会帮助别人。

2021-03-10