2016-12-16 55 views
1

我试图使用SQSH从Linux终端连接到我的SQL Server。该生产线是:以sqsh指定域

sqsh -S <ip address> -U <DOMAIN\user> 

它抛出一个错误:

Msg 18456, Level 14, State 1 Server 'DC2', Line 1
Login failed for user ''.

注意,它似乎已经删除了“\”分开我的域和用户。

在服务器端,我的事件日志证实了同样的事情。本次活动内容如下:

Login failed for user 'DOMAINuser'.
Reason: Could not find a login matching the name provided.

我一直使用单引号和双引号来封装域和用户名,但是当我这样做,请求甚至不使它的服务器,尝试可能是因为报价表示语法上的其他内容。

有谁知道我在做什么错?

+0

尝试两个反斜杠。在大多数linux/Unix迭代中,反斜杠是转义字符。 –

+0

没有骰子。当我尝试它时,请求不会将其发送到服务器。 – Coalsand

+0

你有没有试过通过$ username变量设置它? – scsimon

回答

0

sqsh默认使用FreeTDS配置文件,因此可以指定TDS的版本。一个完整的描述可以发现here,但该命令行的结果应该是这样的:

sqsh -S<config file name> -D <database name> -U <domain>\\<user> -P <password/hash> 

例子:

sqsh -S mssql -D MyDB -U DOMAIN\\testuser -P MyTestingClearPassword1 
+0

当我以DOMAIN \\ user的身份输入用户时,连接请求未将其发送到服务器 - 事件中没有失败的登录然而,如果我以DOMAIN \ user的身份输入它,则登录失败会像以前一样出现在事件日志中:登录失败,用户'DOMAINuser' – Coalsand

+0

我最终通过直接通过MSSQL Server Management创建登录来绕过此问题工作室,从而不需要指定一个域名。不知道这是否会限制下线,但我想我们会看到! – Coalsand