c# - 登录失败,C# 应用程序/SQL Server 数据库安装在另一台机器上
问题描述
我创建了一个与 SQL 数据库一起运行的桌面应用程序。在我的机器上安装运行完美。在其他机器上安装时不会。消息是:
无法打开登录请求的数据库“verticaladminmod”。登录失败。“Fina-PC\Fina”登录失败</p>
我的机器:
- 名称“MI_PC-PC”</li>
- 所有者:“MI_PC-PC\MI_PC”</li>
- 数据库:“verticaladminmod”</li>
连接字符串:
Data Source=localhost;Initial Catalog=verticaladminmod;Integrated Security=True
- 视窗 7 64 位
- SQL Server 2014 Express,实例“SQL Server (MSSQLSERVER)”</li>
其他机器安装:
- 名称“FINA-PC”</li>
- 用户名:“Fina-PC\Fina”</li>
- 视窗 7 32 位
- SQL Server 2012 Express,实例“SQL Server (MSSQLSERVER)”</li>
已经明白这应该是一个凭据问题,但经过多次尝试后无法使其工作。如果可能的话,需要具体的指导和详细的步骤,以便在需要的地方进行配置,以期解决这个问题并深入了解它。太感谢了!
解决方案
首先,连接字符串需要指向正确的机器(FINA-PC
而不是localhost
)。在某些情况下,您还需要一个实例(即FINA-PC\MSSQLSERVER
),但使用默认实例,您可以跳过实例名称。这就是为什么localhost
在原始连接字符串中工作的原因。
一旦解决了这个问题,我们就可以讨论身份验证了。如果您希望集成安全跨机器工作,您还希望拥有一个 Active Directory 域。如果您没有 Active Directory 域,则需要切换到 SQL 身份验证。
SQL 身份验证要求您使用自己的用户名和密码在数据库中创建一个用户(“登录”,在 Sql Server 用语中),您可以将其放入连接字符串中。不要为此使用 sa 帐户。然后,您还必须非常小心存储连接字符串的方式,否则任何反编译器都会显示凭据并提供对数据库的完全访问权限。获得新的登录名和连接字符串后,您还必须授予帐户权限以在数据库中执行所需的操作。
推荐阅读
- java - 如何在 java 中使用 Stacks 和 Queue 制作闪存卡
- algorithm - 计算图中任意两个顶点的所有最短路径的数量
- php - Laravel MethodNotAllowedHttpException 没有消息 - 试图 Incert into mysql 表
- firebase - 创建 Firebase 开发环境?
- angular - Angular Google Maps (AGM) 核心加载问题
- scala - Spark:将 RDD 结果写入文件系统很慢
- lua - 通过表格前进和后退
- r - Shiny/R - 无法重命名列标题
- algorithm - 在递归算法中避免堆栈溢出的通常做法是什么?
- image - DrawFocusRect 函数