这整个SQL Server和Windows权限对我来说太混乱了 .

我创建了一个登录名

Server > Security > Logins

Login name: foo
Password: xyz
Default database: MyDb

然后在

Server > Databases > MyDb > Security > Users

我创建了一个用户

User name: bar
Login name: foo
Default schema: dbo

因为这就是我想要登录并使用我的Windows服务执行 dbo 的东西 .

我的Windows服务正在运行

Account = ServiceAccount.LocalSystem

我的 App.Config

<add name="LocalDb" connectionString="Data Source=DESKTOP-300NQR3\SQLEXPRESS;Initial Catalog=MyDb;Integrated Security=False;User Id=bar;Password=xyz" />

我的服务的 OnStart 尝试通过该连接连接到数据库,我得到了异常

服务无法启动 . System.Data.SqlClient.SqlException(0x80131904):用户'foo'登录失败 . at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity,SqlConnectionString connectionOptions,SqlCredential credential,Object providerInfo,String newPassword,SecureString newSecurePassword,Boolean redirectedUserInstance,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData,DbConnectionPool pool,String accessToken,Boolean applyTransientFaultHandling)at System .Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions选项,DbConnectionPoolKey poolKey,对象poolGroupProviderInfo,池类DBConnectionPool,的DbConnection owningConnection,DbConnectionOptions USEROPTIONS)在System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(池类DBConnectionPool,的DbConnection owningObject,DbConnectionOptions选项,DbConnectionPoolKey poolKey, System.Data.ProviderBase.DbConnectionPool.CreateObj中的DbConnectionOptions userOptions ...