使用Perl连接到MS SQL而不使用ODBC DSN

时间:2016-03-14 10:15:47

标签: sql-server database perl

有没有办法在不使用ODBC的情况下使用Perl连接到MS SQL数据库?我在生产环境中运行了一些脚本,我打算将其迁移到perl。

使用的样本SQLCMD:

sqlcmd -S <dbHostName> -i <input_file> -o <output_file>

使用的样本BCP:

bcp <sqlQuery> queryout <output_file> -c -t, -T -S <dbHostName>

主要原因是我不知道我的生产数据库的密码,我不知道它。因此,无论是在我的perl脚本中还是通过ODBC设置,我都无法传递密码短语。

1 个答案:

答案 0 :(得分:0)

我注意到您的-U声明不包含-PTrusted_Connection=True;。这意味着它使用登录用户的凭据来访问数据库。

使用ODBC&amp; amp; DBI,在连接字符串中包含SQL Server。这类似于使用“使用网络登录ID进行Windows NT身份验证”。 DSN设置向导第二页上的单选按钮。

例如,在我的Win 8.1框中,{{1}}是我的ODBC数据源管理界面中相关驱动程序(不是DSN)的名称,我可能会给出DBI连接方法以下字符串:

  

dbi:ODBC:Driver = {SQL Server}; Server = myServerAddress; Database = myDataBase; Trusted_Connection = True;

相比之下,使用DSN的字符串可能如下所示:

  

DBI:ODBC:myDSN

FWIW:我发现http://connectionstrings.com是宝贵的资源。