【发布时间】:2019-09-23 07:39:53
【问题描述】:
我正在开发 VS Code 扩展并想从 SQL Server 数据库中获取一些数据。我尝试了许多不同的示例,但没有一个对我有用。
const Connection = require('tedious').Connection;
const config = {
user: 'ssrs', // tried userName, username
password: 'ssrs',
server: 'localhost',
options: {
database: 'imdb'
}
}
const connection = new Connection(config);
connection.on('connect', function(err: string) {
if (err) {
console.log(err);
} else {
console.log('Connected');
}
});
或
await sql.connect('mssql://ssrs:ssrs@localhost/imdb')
const result = await sql.query`select 1 as one`
console.dir(result)
或
const sql = require("mssql");
const conn = new sql.ConnectionPool({
database: "imdb",
server: "localhost",
driver: "msnodesqlv8",
userName: "ssrs",
password: "ssrs"
});
conn.connect().then(() => {
console.log('Connected');
});
ConnectionError: 用户 '' 登录失败。
通过sqlcmd连接:
端口也是开放的(1433),因为我可以远程登录到它。
来自 SQL Server 日志的消息:
日期 2019-05-08 11:19:02 AM 记录 SQL Server(当前 - 2019-05-05 下午 2:53:00)
源登录
用户 '' 的消息登录失败。原因:尝试使用登录 SQL 身份验证失败。服务器配置为集成 仅认证。 [客户端:127.0.0.1]
日期 2019-05-08 11:19:02 AM 记录 SQL Server(当前 - 2019-05-05 下午 2:53:00)
源登录
消息错误:18456,严重性:14,状态:58。
尝试与 Powershell 连接:
PS C:\WINDOWS\system32> Invoke-Sqlcmd -query "select CURRENT_USER, USER_NAME()" -ServerInstance "localhost" -username "ssrs" -password "ssrs" -Database 'imdb'
Column1 Column2
------- -------
ssrs ssrs
【问题讨论】:
-
您能否通过 ODBC(测试 ODBC 连接实用程序)或 SQL Server Management Studio 等本地方式从您用于连接的机器上进行连接?
-
是的,我可以使用任何其他工具来做到这一点,例如使用“SQL Server 身份验证”的 SSMS。我不确定它使用什么驱动程序。
-
好的。如果您使用
sqlcmd实用程序进行连接,它是否有效? (例如sqlcmd -S localhost -U sa -P passwd -Q "select @@VERSION"查询返回版本?)在您尝试通过脚本连接后,日志是否显示任何内容? -
修改了问题。我可以连接 SQLCMD。 Sql Server 日志给出相同的错误消息(用户“.”登录失败)
-
有
ERROR STATE吗? (通常为State: <integer>)在日志中
标签: node.js sql-server typescript visual-studio-code vscode-extensions