如何配置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配置管理器中配置什么?
答案 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中的步骤微软概述。总结:
注意:您需要重新启动SQL服务才能使更改生效。访问this link,了解如何使用SQL Server配置管理器,SQL Server Management Studio,命令提示符窗口中的网络命令,Transact-SQL或PowerShell实现此目的。
请注意,我在运行NodeJS应用程序的Linux机器上使用以下步骤替换了步骤4和5:
port
并将1433替换为自定义端口
在配置固定端口时指定。如果遇到问题,check the server log表示您正在使用的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(