可以连接PERL但无法查询MSSQL 2k8数据库

时间:2013-10-06 16:57:01

标签: sql sql-server database perl

我可以连接到我的MSSQL服务器,但在尝试时收到权限错误 查询数据库。我在下面的脚本中看到了“YAY”,但是得到了这个错误:

  

*[Microsoft][ODBC SQL Server Driver][SQL Server]The SELECT permission was denied on the object 'TICKET_TYPES', database 'DBNAME', schema 'dbo'. (SQL-42000)(DBD: st_execute/SQLExecute err=-1)*

如果我使用DBO访问添加“DOMAIN \ DOMAIN用户”,它可以正常工作,但是当我拿走它时它不会。我认为它以登录用户身份连接到数据库,而不是在连接字符串中设置但不是肯定的SQL用户。

SQL驱动程序设置为使用“使用登录ID进行SQL Server身份验证...”而不是“Windows NT ...”

经典ASP连接和查询很好。我可以通过ASP classic和SQL Server Management Studio使用连接字符串中的SQL帐户访问/查询数据库。

它可能与SQL2005完全相同,但不是我们尝试升级到的SQL2008。我们的升级一切都很好,除了我们的几个Perl脚本只是不进入表格。

use lib "cgi-bin";
use DBI;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
require "Babel.pm";

my $y          = new Babel;
my $q          = new CGI;

$SERVER_N = $q->server_name() ;

### CONNECT

  $database   = "DBNAME";
  $dbusername = "SQLUSERNAME";   
  $dbpassword = "SQLUSERPASSWORD";
  $server="SQLSERVERIP";  

print "Content-type: text/html\n\n";

   $dbh = DBI-> connect( "DBI:ODBC:driver={SQL Server};
                      Server=$server;
                  Database=$database;
                  UID=$dbusername;
                  PWD=$dbpassword")  || die &DBerror;                              

   if ($DBI::errstr) {print "Error: Connecting to the Database!";
             exit;}else{
             print "YAY! <br><br>";
   }  

### END: CONNECT

$v2SQL = "select distinct ROUTE from TICKET_TYPES";
        $css1 = $dbh->prepare ($v2SQL);
          $css1->execute ()  || print $css1->errstr;
          while ((@row) = $css1 ->fetchrow_array) {
            $MANA = @row[0];
            print "$MANA";
            }

          $css1->finish ()    || print $css1->errstr;   

0 个答案:

没有答案