如何配置SQL Server以允许本地或远程计算机上的数据库连接?

时间:2017-04-28 23:52:33

标签: sql-server node.js

如何配置SQL Server以允许本地或远程计算机上的数据库连接?我有一个用user = sa和密码= 123456的简单测试。我可以使用启用了SQL Server和Windows身份验证模式的SQL Management Studio登录服务器实例。我尝试使用npm的mssql模块从另一台计算机(Linux)登录到connect,我得到一个message: 'Login failed for user \'sa\'.', code: 'ELOGIN'

那是在Windows防火墙(Windows 10)中打开端口1433之后。这是我的配置,如果我使用服务器的计算机名称或服务器的IP地址,我从远程机器获得相同的结果。注意我正在使用可以为SQL Server 2016下载的演示数据库。

const config = {
    user: 'sa',
    password: '123456',
    // server: '192.168.12.14',
    server: 'DESKTOP-AAFERR',
    // port: '1433',
    database: 'AdventureWorks2016CTP3',
    pool: {
        max: 10,
        min: 0,
        idleTimeoutMillis: 30000
    }
}

我尝试做的是打开SQL Server配置管理器并为服务器实例启用TCP / IP。但是,当我这样做时,我无法使用SQL Server身份验证从SQL Server Management Studio本地登录。我会得到消息Login failed (Microsoft SQL Server, Error: 18456)。但我仍然无法远程登录。所以我再次禁用TCP / IP,以便我可以在本地登录。

如何配置SQL Server以允许本地或远程计算机上的数据库连接?我在防火墙中打开了端口1433。我还需要在SQL Server Management Studio或SQL Server配置管理器中配置什么?

2 个答案:

答案 0 :(得分:0)

在完成SQL Server配置管理器中的所有设置后,我注意到我正在处理的机器有另一个数据库实例,它不是默认实例,而是使用默认端口1433.我在日志中找到了这个default instance Server TCP provider failed to listen on 1433, TCP port is already in use.并通过查看其他数据库实例的设置来确认。所以我改变了我正在使用的默认实例,在不同的端口上运行,一切正常。

配置SQL Server以允许本地或远程计算机连接数据库的步骤

按照this link中的步骤微软概述。总结:

  1. 启用TCP / IP
  2. 配置固定端口(这是我的错误,我配置了一个 已经在使用的端口)
  3. 注意:您需要重新启动SQL服务才能使更改生效。访问this link,了解如何使用SQL Server配置管理器,SQL Server Management Studio,命令提示符窗口中的网络命令,Transact-SQL或PowerShell实现此目的。

    1. 在防火墙中打开端口
    2. 从另一台计算机连接到数据库引擎
    3. 使用SQL Server Browser服务进行连接
    4. 请注意,我在运行NodeJS应用程序的Linux机器上使用以下步骤替换了步骤4和5:

      1. npm install mssql
      2. 根据您的偏好进行自定义配置。您可以 从原帖中看我的例子。请注意,您需要 取消注释port并将1433替换为自定义端口 在配置固定端口时指定。
      3. 如果遇到问题,check the server log表示您正在使用的SQL Server数据库实例。这就是我的问题的线索所在。

        1. 在Microsoft SQL Server Management Studio中,展开SQL 服务器
        2. 在对象资源管理器中,展开管理→SQL Server日志。

答案 1 :(得分:0)

这可能是最好的方法

var config = {
    user: '',
    password: '',
    server: '', 
    database: '' 
};
var sql = require('mssql')
var conn = new sql.Connection(configBD.config)


sql.connect(configBD.config, function (err) {


if (!err) {


 console.log('Database  is connected ... \n\n')
  } else {
    console.log('Error connecting database ... \n\n')
  }
})

    var request = new sql.Request()
request.query(