2014-07-16 12 views
10

Ho un codice di esempio che si connette correttamente a SQL Server utilizzando il nome utente e la password di Microsoft SQL Server. Ma mi stavo chiedendo se c'è un modo per usare la sicurezza integrata con questo script. In sostanza, ciò significa utilizzare le credenziali dell'utente connesso senza fornire una password nello script.Node-SQL con node.js e MS Security integrato

var sql = require('mssql'); 

var config = { 
    server: '127.0.0.1', 
    database: 'master', 
    user: 'xx', 
    password: 'xxx', 

    options : { 
     trustedConnection : true 
     } 
} 


var connection = new sql.Connection(config, function(err) { 
    // ... error checks 
    if(err) { 
    return console.log("Could not connect to sql: ", err); 
    } 

    // Query 

    var request = new sql.Request(connection); 
    request.query('select * from dbo.spt_monitor (nolock)', function(err, recordset) { 
     // ... error checks 

     console.dir(recordset); 
    }); 

    // Stored Procedure 


}); 
+0

Controllare questa risposta da Aaron Ballard: https://stackoverflow.com/a/40406998/639575 – beatoss

risposta

2

Vorrei poter aggiungere questo come un commento, ma non hanno abbastanza reputazione ancora ... ma cosa succede quando si esegue questo senza fornire un nome utente/password nell'oggetto config?

L'autenticazione di Windows avviene al livello di accesso, quindi non è necessario fornirla a livello di applicazione.

Proprio naviga tra la documentazione e si presenta come non è possibile fornire una stringa di connessione grezzo per la connessione, ma per la connessione si vuole costruire qualcosa che assomiglia a questo:

var connectionString= 'Server=MyServer;Database=MyDb;Trusted_Connection=Yes;'

Il codice sorgente del modulo mssql è qui: https://github.com/patriksimek/node-mssql/blob/master/src/msnodesql.coffee ... forse puoi lanciare e fare una richiesta pull che fornirebbe un flag opzionale se usare o meno l'autenticazione di Windows, e quel flag rimuoverebbe lo Uid={#{user}};Pwd={#{password}} (come non necessario per l'autenticazione di Windows) dalla variabile CONNECTION_STRING_PORT in il codice sorgente del modulo.