【问题标题】:Difficulty Connect to SQL Server Express on LAN难以在 LAN 上连接到 SQL Server Express
【发布时间】:2014-03-09 21:34:58
【问题描述】:

我在连接到我们 LAN 中一台机器上的 SQL Server 时遇到问题。

我做了以下事情:

1.) 将运行 Server 的机器的 IP 设置为 10.0.0.7 ,并将 LAN 上其他机器的 IP 设置为 10.0.0.X 。局域网上没有互联网(它将保持这种状态),允许更改 IP。

2.)通过This启用远程连接

3.)使用了适当的连接字符串。

现在我唯一剩下的问题是关于那些希望在服务器上连接的人的连接字符串,这是当前的连接字符串:

string sConnection = @"Server=10.0.0.7\MARNUS-PC\MARNUS_HOME; User ID=MARNUS-PC\MARNUS_HOME; Password=somepassword; Initial Catalog=TestDB;";

我的问题是:

1.) 我在服务器部分放什么?这是我的服务器名称和实例名称,根据 管理工作室 - 服务器名称:MARNUS-PC\MARNUS_HOME,实例名称:MARNUS_HOME。

2.) 我用什么作为用户 ID?我希望使用 Windows 身份验证而不是 sql server 身份验证(我在服务器上都启用了),那么连接字符串应该如何更改以及如何允许来自管理工作室的服务器端的用户(如果需要)?

3.)我假设如果我使用 Windows 身份验证,我不需要 Con-String 的密码部分?

对于所有问题,我深表歉意,但我学习了 MS Access,现在我自己正在切换到 SQL Server。

【问题讨论】:

    标签: c# sql sql-server


    【解决方案1】:

    您的连接字符串必须类似于....

    string sConnection = @"Server=MARNUS-PC\InstanceName; User ID=MARNUS-PC\MARNUS_HOME; Password=somepassword; Initial Catalog=TestDB;";
    

    实例名称是Sql Server Instance name

    如果您不确定您的实例名称,请在您的 Sql Server Management Studio 中执行以下语句

    SELECT @@SERVERNAME
    

    它将返回[ServerName\InstanceName],您可以将整个返回的字符串传递给您的连接字符串是您的服务器名称Server=ServerName\InstanceName;

    Windows 身份验证

    要使用 Windows 身份验证,您必须使用类似这样的连接字符串..

     string sConnection = @"Server=MARNUS-PC\InstanceName;  Initial Catalog=TestDB; integrated security=SSPI";
    

    【讨论】:

    • 获得实例名称,并将其插入我应该的位置,我如何使用 Windows 身份验证?
    • 我明白了。是否需要我将另一台 PC 添加到某种权限列表中?例如,如果用户 STEVE-PC 希望连接并且只需键入提到的连接字符串,他是否可以访问?
    • 这只是对用户的身份验证。 (显然将使用 Windows 凭据)。但是对于权限(一旦连接,用户可以在数据库中做什么),这取决于该用户被分配到的角色以及该角色在 sql server 中的权限。
    • @Mordacai1000 身份验证和权限是两个不同的东西。身份验证使用 windows 处理问题WHO ARE YOU? 身份验证 windows 凭据将确认您是谁。权限处理问题WHAT CAN YOU DO ONCE CONNECTED? 这将由数据库中分配给您的角色来回答。
    • 此时我是 sql server 上唯一允许的用户。我只想确认如何添加另一个用户以获得许可。 1.)右键单击数据库 => 属性 => 权限 => 搜索?
    【解决方案2】:

    IP 地址标识计算机,因此您不会同时使用 IP 地址和计算机名称。您可以在服务器设置中使用 IP 地址:

    Server=10.0.0.6\MARNUS_HOME;
    

    或者您可以使用计算机名称:

    Server=MARNUS-PC\MARNUS_HOME;
    

    您是正确的,您在使用windows身份验证时不应指定任何密码,也不应指定任何用户名,但您需要指定您正在使用它:

    Trusted_Connection=Yes;
    

    【讨论】:

    • 有道理!谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    相关资源
    最近更新 更多