我以前让它起作用的。我所做的唯一改变就是通过生成脚本并在服务器中导入数据库来导出数据库。
网络服务器: IIS / ASP.NET Web应用程序
连接字符串:
<add key="ConnectionString" value="Data Source=SERVER;
Initial Catalog=tkl;Persist Security Info=True;
User ID=tkl;Password=PASS; Connection Lifetime=150;
Connect Timeout=150; Pooling=true;Min Pool Size=20;Max Pool Size=500" />错误:
2020-09-27 05:23:44.6361|ERROR|System.Data.SqlClient.SqlException (0x80131904):
Cannot open database "tkl" requested by the login. The login failed.
Login failed for user 'tkl'.
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, SqlAuthenticationProviderManager sqlAuthProviderManager)用户' TKL‘既存在于TKL数据库中,也存在于Server上。我不知道这里出了什么问题。可能我需要设置一些权限。任何帮助都很感谢.
更新:
SQL日志:
登录用户“tkl”失败。原因:未能打开显式指定的数据库“tkl”。客户:
同时启用了窗口和SQL身份验证。我也可以尝试发布“tkl”用户对象权限。
发布于 2020-09-27 10:02:09
错误告诉您,LOGIN无法访问要连接的数据库。仅仅因为数据库具有与服务器上的USER名称相同的LOGIN,并不意味着LOGIN可以访问数据库。
USER对象通过SID映射到LOGIN对象,而不是名称。这意味着您可以有两个对象,它们的不同名称相互映射,以及两个名称相同的对象没有相互映射。
最有可能的是,在这里,您只需要使用ALTER USER来更正映射:
USE YourDatabase;
GO
ALTER USER tkl WITH LOGIN = tkl;https://stackoverflow.com/questions/64086945
复制相似问题