当凭据存储在单独的文件中时,如何从Perl连接到MS SQL和Oracle数据库?

时间:2016-09-08 21:01:58

标签: sql-server oracle perl dbi

我在安装了Unix ODBC驱动程序的RedHat机器上。我已经使用了类似下面的结构来连接MySQL数据库很长一段时间了:

my @connection_userTracking = (
    "DBI:mysql:;" 
        . "mysql_read_default_file=/var/www/.my.cnf;" 
        . "mysql_read_default_group=myProject",
    undef,
    undef,
    {   PrintError => 0,
        RaiseError => 1,
        AutoCommit => 1
    }
);

这使我可以将我的数据库凭据存储在单独的文件中,而不是在我的Perl脚本中对它们进行硬编码。我假设MS SQL和Oracle必须有类似的东西。每个连接字符串的格式是什么?

我试过了:

my @connection_MSSQL = (
    "DBI:ODBC:;" 
        . "mysql_read_default_file=/var/www/.my.cnf;" 
        . "mysql_read_default_group=myProjectMSSQL",
    undef,
    undef,
    {   PrintError => 0,
        RaiseError => 1,
        AutoCommit => 1
    }
);

在配置文件中使用DSN,用户名和密码,但是barfs包含消息:

  

失败:[unixODBC] [驱动程序管理器]找不到数据源名称,并且未指定默认驱动程序

我将DSN添加回第一行的代码

"DBI:ODBC:DSN=my.db.host.com;"

那个barfs以及错误

  

失败:[unixODBC] [FreeTDS] [SQL Server]用户登录失败''

我不是Linux ODBC的专家,所以也许可以将用户名和密码放在系统odbc.ini文件中,但我不喜欢这样。我宁愿拥有项目特定的文件。

对于MS SQL和Oracle,这类事情是否可行?

0 个答案:

没有答案