¿Cómo configura SQL Server para permitir una conexión de base de datos localmente o desde una máquina remota? Tengo una prueba simple con usuario=sa y contraseña=123456. Puedo iniciar sesión en la instancia del servidor usando SQL Management Studio con SQL Server y el modo de autenticación de Windows habilitado. Intenté iniciar sesión desde otra computadora (Linux) usando el módulo mssql de npm para conectarme y aparece un message: 'Login failed for user \'sa\'.', code: 'ELOGIN' .
Eso fue después de abrir el puerto 1433 en el firewall de Windows (Windows 10). Aquí está mi configuración y obtengo los mismos resultados de la máquina remota si uso el nombre de la computadora para el servidor o la dirección IP para el servidor. Tenga en cuenta que estoy usando la base de datos de demostración que se puede descargar para 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 } } Lo que intenté hacer fue abrir el Administrador de configuración de SQL Server y habilitar TCP/IP para la instancia del servidor. Sin embargo, cuando hice eso, ya no pude iniciar sesión localmente desde SQL Server Management Studio usando la autenticación de SQL Server. Recibiría el mensaje Login failed (Microsoft SQL Server, Error: 18456) . Pero tampoco pude iniciar sesión de forma remota. Así que deshabilité TCP/IP nuevamente para poder iniciar sesión localmente.
¿Cómo configura SQL Server para permitir una conexión de base de datos localmente o desde una máquina remota? Abrí el puerto 1433 en el firewall. ¿Qué más necesito configurar en SQL Server Management Studio o SQL Server Configuration Manager?
Después de revisar todas las configuraciones en el Administrador de configuración de SQL Server, noté que la máquina en la que estoy trabajando tiene otra instancia de base de datos que no es la instancia predeterminada, pero estaba usando el puerto predeterminado 1433. Encontré esto en los registros para la instancia predeterminada Server TCP provider failed to listen on 1433, TCP port is already in use. Y lo confirmó mirando la configuración de la otra instancia de la base de datos. Así que cambié la instancia predeterminada con la que estaba trabajando para que se ejecutara en un puerto diferente y todo funcionó.
¿Pasos para configurar SQL Server para permitir una conexión de base de datos localmente o desde una máquina remota?
Siga los pasos que Microsoft describe en este enlace . Resumen:
Nota: Deberá reiniciar SQL Services para que los cambios surtan efecto. Visite este enlace para ver cómo lograrlo con el Administrador de configuración de SQL Server, SQL Server Management Studio, comandos de red desde una ventana del símbolo del sistema, Transact-SQL o PowerShell.
Tenga en cuenta que reemplacé los pasos 4 y 5 con los siguientes pasos en una máquina Linux que ejecuta una aplicación NodeJS:
port y reemplazar 1433 con el puerto personalizado que especificó cuando configuró el puerto fijo.Si tiene problemas, verifique el registro del servidor para la instancia de la base de datos de SQL Server con la que está trabajando. Ahí es donde estaban las pistas para mi problema.
Probablemente este sea el mejor método.
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(