我可以连接到我的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;