<html><body><div style="color:#000; background-color:#fff; font-family:arial, helvetica, sans-serif;font-size:10pt"><div><span>With Windows authentication, the user credentials from the user running the CGI gets passed to the IIS server. I have verified that this is working properly by checking what the "effective" user is in the IIS server logs. This user also has been configured to have rights on the SQL Server.</span></div><div><br><span></span></div><div><span>And yes, the script runs successfully if I run it from the IIS server machine.<br></span></div><div><br></div>  <div style="font-family: arial, helvetica, sans-serif; font-size: 10pt;"> <div style="font-family: times new roman, new york, times, serif; font-size: 12pt;"> <div dir="ltr"> <font size="2" face="Arial"> <hr size="1">  <b><span style="font-weight:bold;">From:</span></b> Roey Almog (Infoneto Ltd) &lt;almog@infoneto.co.il&gt;<br> <b><span style="font-weight: bold;">To:</span></b> Yossi
 Klein &lt;kleinyossi@yahoo.com&gt;; Perl in Israel &lt;perl@perl.org.il&gt; <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, January 24, 2012 4:51 PM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [Israel.pm] Connecting through IIS to SQL Server with Windows Authentication<br> </font> </div> <br>
<div id="yiv1274706652"><div dir="ltr"><div>Hi,</div><div><br></div><div>One thing I can think of (if I am not wrong):</div>The CGI runs under the user of the IIS (a special windows user) this user does not have&nbsp;permissions&nbsp;on the SQL server<div>
<br></div><div>If you login to the 2003 server and try to run the script from the command line does it login ?</div><div><br></div><div>The user you login with into windows needs to be a trusted user on the SQL server so this thing will work</div>
<div><br></div><div><br></div><div><br></div><div>Roey</div><div><br></div><div><br><div><br><div><br></div><div><br><br><div class="yiv1274706652gmail_quote">On Tue, Jan 24, 2012 at 4:08 PM, Yossi Klein <span dir="ltr">&lt;<a rel="nofollow" ymailto="mailto:kleinyossi@yahoo.com" target="_blank" href="mailto:kleinyossi@yahoo.com">kleinyossi@yahoo.com</a>&gt;</span> wrote:<br>
<blockquote class="yiv1274706652gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div style="font-size:10pt;font-family:arial, helvetica, sans-serif;"><div><font face="Arial"><span>I am trying to run a 
Perl CGI script that connects to a SQL Server. 
<br><br>Webserver = IIS 6.0 (running on MS Windows Server 2003 - SP2)<br><br>SQL Server =&nbsp; Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64)&nbsp;&nbsp; Mar 29 2009 10:11:52&nbsp;&nbsp; Copyright (c) 1988-2008 Microsoft Corporation&nbsp; Enterprise Edition (64-bit) on Windows NT 6.1 &lt;X64&gt; (Build 7600: )&nbsp;&nbsp; (running on MS Windows Server 2008 R2 Enterprise)<br>
<br>Perl =&nbsp; ActiveState 5.8.3 (Yes, I know that there are newer versions, but I'm not in control of when upgrades happen and unless I have a good reason to upgrade, which of course also requires regression testing, I'd prefer not to).<br>
<br><br>What I'm trying to do is to pass the Windows Authentication information to the SQL Server so 
that the person running the CGI script has the appropriate permissions in the db. The problem 
is that the the auth information is not being pass through: </span></font></div>
<div><font face="Arial"><span></span></font>&nbsp;</div>
<div><font face="Arial"><span>The error I'm getting is:<br></span></font></div>
<div><font face="Arial"><span></span></font>&nbsp;</div>
<div><span>[Microsoft][ODBC SQL Server Driver][SQL 
Server]Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. (SQL-28000)<br><br></span></div>
<div><span></span>&nbsp;</div>
<div><span><font face="Arial">Does anybody have 
any ideas or experience with this kind of set-up?<br><br><br>Here's a test program that fails:<br><br>##############<br>use DBI;<br>use CGI qw(:all);<br><br>print "Content-type: text/html\n\n";<br>print "&lt;HTML&gt;\n";<br>
<br>my %attr = (PrintError =&gt; 0, RaiseError =&gt; 0, AutoCommit =&gt; 1);<br><br>my $dsn =<br>&nbsp; "DBI:ODBC:DRIVER=SQL Server;Trusted_Connection=Yes;APP=MyApp;SERVER=jacob";<br><br>#$dsn =~ s/trusted_Connection=yes;/UID=sa;PWD=xxxxxx;/i;<br>
<br>my $dbh = DBI-&gt;connect($dsn, undef, undef, \%attr);<br><br>if (!defined $dbh)<br>&nbsp;&nbsp;&nbsp; { $dbh = DBI-&gt;errstr; }<br><br>print "$dbh\n";<br>print "&lt;/HTML&gt;\n";<br>################<br><br><br>
If I comment out the line of code above that turns the connection into untrusted (and I fix the password, of course :-), the program successfully connects.<br><br><br></font></span></div>Thanks,<br>
<div><span><font face="Arial">Yossi</font></span></div></div></div><br>_______________________________________________<br>
Perl mailing list<br>
<a rel="nofollow" ymailto="mailto:Perl@perl.org.il" target="_blank" href="mailto:Perl@perl.org.il">Perl@perl.org.il</a><br>
http://mail.perl.org.il/mailman/listinfo/perl<br></blockquote></div><br></div></div></div></div>
</div><br><br> </div> </div>  </div></body></html>