我有一些示例代码使用Microsoft SQL Server用户名和密码成功连接到SQL Server.但我想知道是否有一种方法可以使用此脚本集成安全性.基本上这意味着使用登录用户的凭据而不在脚本中提供密码.
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
});
Run Code Online (Sandbox Code Playgroud) 我试图连接node.js到mssql在Windows身份验证模式。我安装了tedious,mssql和msnodesqlv8模块,但我仍然不知道如何打开连接。
这是我尝试过的:
var sql = require('mssql');
var config = {
driver: 'msnodesqlv8',
server: 'POPPY-GI\\SQLEXPRESS',
database: 'NodinSports',
options:{
trustedConnection: true,
useUTC: true}}
sql.connect(config).then(function() {
new sql.Request().query('select * from users')
.then(function(recordset){
console.log(recordset);
}).catch(function(err) {
console.log(err);});
}).catch(function(err) {
console.log(err);});
Run Code Online (Sandbox Code Playgroud)
运行后,我收到一个很长的错误消息:
`ConnectionError`: Port for `SQLEXPRESS` not found in
`ServerName`;POPPYGI;`InstanceName;SQLEXPRESS;IsClustered`;No;Version;12.0.2000.8;;
at Connection.tedious.once.err (D:\Never Lazy\University\`AN2, SEM 2\WEB\`Projek`\node_modules\`mssql`\lib\`tedious.js:216:17`)
at Connection.g (events.js:291:16)
at emitOne (events.js:96:13)
at Connection.emit (events.js:188:7)
at D:\Never Lazy\University\AN2,SEM2\WEB\Projekt\node_modules\tedious\lib\connection.js:570:27
at D:\Never Lazy\University\AN2,SEM2\WEB\Projekt\node_modules\tedious\lib\instance-lookup.js:91:24
at Socket.onMessage (D:\Never Lazy\University\AN2,SEM2\WEB\Projekt\node_modules\tedious\lib\sender.js:140:9) …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习 Node.js 并创建了一个简单的项目来查询本地数据库。但我无法查找实例错误消息。
我已经检查了 services.msc 中运行的 SQL Server 服务
我已验证 TCP/IP 已启用
我尝试过使用用户名和密码,也尝试过不使用它。我在 SQL Server Management Studio 中连接到 localdb,如下(localdb)\v11.0是属性的屏幕截图
我做错了什么?实际的用户名和密码应该是什么?服务器名称应该是什么?
const sql = require('mssql');
// config for your database
const config = {
user: 'mywindows username',
password: 'my windows password',
server: '(localdb)\\v11.0',
database: 'test',
options: {
encrypt: true
}
};
console.log('starting sql');
var connection = new sql.connect(config, function(err) {
console.log(err);
var request = new sql.Request(connection);
request.query('select * from employees', function(err, recordset) {
if(err) // ... error checks
console.log('Database …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用knex与我的 node.js 应用程序中的 Windows 身份验证连接 SQL Server 。
配置:
{
client: 'mssql',
connection: {
database: 'MyDBName',
host: 'xx.xx.xx.xxx',
server: 'MY-SERVER_NAME\\SQLEXPRESS',
options: {
encrypt: false,
trustedConnection: true,
},
},
}
Run Code Online (Sandbox Code Playgroud)
我没有在配置中添加用户名和密码,因为我trustedConnection: true为Windows 身份验证添加了用户名和密码。
但我收到以下错误:
用户“”登录失败。
即使我添加添加用户名和密码,我也会收到相同的错误。
任何建议都会有很大帮助。谢谢
sql-server connection-string windows-authentication node.js knex.js