2012-07-27 51 views
3

我需要使用perl(12.2)连接到mssql 2008数据库,并在CentOS上使用freetds 0.91,并且可以通过在数据库。但是,我需要切换到一个域用户,我一直无法弄清楚我需要做些什么来实现它。这看起来是对数据库的安装是否正确,这里是我的连接字符串:无法连接使用perl在Linux上的Sybase dbi到使用域用户的mssql 2008

my $dsn = [ 
    "DBI:Sybase:database=adx;server<server_name>", 
    '<DOMAIN>\\<user>', 
    '<password>', 
    { 
     PrintError => 0, 
     RaiseError => 0, 
     AutoCommit => 0 
    } 
]; 

以下是错误消息:

database connection failed for DBI:Sybase:database=<db_name>;server=<server_name> 
<DOMAIN>\\<user> : OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (78) NUMBER = (34) 
Server <server_name>, database 
Message String: Adaptive Server connection failed 

相信TDS错误(LAYER = (0) ORIGIN = (0) SEVERITY = (78) NUMBER = (34))是表示登录失败,但我确定密码是正确的,并且直接在mssql客户端上尝试过。任何人得到这个工作?

+0

你试过它硬编码? :$ dbh = DBI-> connect(“dbi:Sybase:server = BILLING”,“meuser”,“mypassw”); – 2012-07-27 23:35:41

+0

为什么要使用Sybase连接到mssqsl。有一个类:: DBI :: MSSQL – stark 2012-07-28 03:07:24

+0

我试过硬编码的语法。不工作。并且DBI :: MSSQL需要ODBC,因此需要我安装和配置unixODBC,而且我无法在最后一次尝试时使它工作。我已经使用常规mssql数据库帐户将DBI :: Sybase连接到mssql。 – 2012-07-30 18:13:04

回答

2

我发现从Linux连接到SQL服务器(DBD :: ODBC)的唯一成功方法是使用ODBC,SyBase模块应该与Sybase的实例一起使用,而不能与SQL Server一起使用...

应该看起来像下面的ODBC使用连接字符串:

"DBI:ODBC:driver={SQL Server};Server=192.168.1.1,1433;database=db_name"; 
+1

mssql基于Sybase,我用freetds 0.91使用DBI :: Sybase。它适用于一些常规的mssql数据库帐户,但我还没有找到如何使它与一个域帐户一起工作。 – 2012-07-30 18:14:33

+0

是的,但是我认为使用ODBC会更好,特别是在这种情况下... – aleroot 2012-07-30 19:43:58

相关问题