用于访问远程数据库服务器的正确连接字符串
本文关键字:连接 字符串 服务器 访问 数据库 用于 | 更新日期: 2023-09-27 18:21:36
我开发了一个c#程序,我想用它从同一域上的客户端计算机访问远程服务器。每次我尝试连接到数据库时,我都会收到一个错误,用户域'' myclientusername 登录失败
使用以下连接字符串:
<add name="dbname" connectionString="Server=remoteservername;Database=dbname;Integrated Security=True;"/>
我已经检查过了,服务器已设置为允许远程连接。我可以使用管理员凭据登录到服务器。我需要设置连接字符串以使用管理员密码和用户名连接到数据库吗?还是需要将我的客户端配置文件凭据添加到数据库权限中。部署应用程序非常新。
您需要为连接的用户/客户端PC设置对数据库的访问权限。您可以将域上的用户"映射"为SQL用户或组
转到SQL管理工作室>连接到您的数据库>扩展数据库>扩展"安全",然后"登录"
右键单击logins并选择new login。搜索连接用户/客户端PC的用户。然后在"用户映射"选项卡下,您可以访问特定的数据库。最好先给出"db_owner",以确保您有连接。之后,您应该将访问权限限制为仅需要的内容。
您可以随时从SQL计算机本身查看SQL事件日志,了解具体的身份验证问题。转到管理工具(位于控制面板中)中的"事件",您可以查看SQL特定的事件。
您可以删除连接字符串中的Integrated Security=True
,并将您在SQL Server数据库中创建的登录名的用户名和密码插入到连接字符串中。
或者,您可以为运行c#程序的用户(您自己-用于测试,生产中的域服务帐户)创建一个到SQL Server的登录名,并为其提供适当的读/写访问权限。
有关连接字符串的详细信息:http://www.connectionstrings.com
有关如何在SQL Server中创建登录的详细信息:http://msdn.microsoft.com/en-us/library/aa337562.aspx
设置Integrated Security=True
时,将使用当前Windows帐户凭据进行身份验证。由于您尝试的计算机与运行SQL实例的计算机不同,因此您尝试连接的帐户很可能与注册到实例登录中的帐户不同。您可以做的是:使用Integrated Security=sspi
并提供登录凭据,例如:
connectionString="Server=remoteservername;Database=dbname;User id= myUser; Password=myPass;Integrated Security=sspi";
您还可以设置Integrated Security=false
并提供凭据(但连接不会使用Windows Athetition)