$dbh = DBI->connect("dbi:ODBC:DRIVER={SQL Server};Server=server_dns.net;Integrated Security=SSPI")
QuoteKann keine Verbindung zum Server aufbauen: [Microsoft][ODBC SQL Server Driver][SQL Server]Fehler bei der Anmeldung für den Benutzer 'NT AUTHORITY\ANONYMOUS LOGON'. (SQL-28000) [state was 28000 now 01S00]
[Microsoft][ODBC SQL Server Driver]Invalid connection string attribute (SQL-01S00)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/perl
# odbc.pl
# Testprogramm zum Aufbau einer Verbindung zu einem
# MS SQL-Server mit SSPI
use strict;
use warnings;
use DBI;
my $server="."; ## MS SQL-Server auf lokalem Computer
my $database="master";
my $dsn="dbi:ODBC:DRIVER={SQL Server};Server=$server;database=$database;Integrated Security=SSPI;";
my $sql = "sp_who"; ## Prozedur, die Sitzungen ausgibt
## als normaler Benutzer werden nur die eigenen Sitzungen ausgegeben
my $dbh;
my $sth;
my $erg;
print "Verbindung zur Datenbank '$database' auf '$server' wird hergestellt ...\n";
$dbh = DBI->connect($dsn) or die "VERBINDUNGSAUFBAU FEHLGESCHALGEN! ABBRUCH";
$sth=$dbh->prepare($sql) or die "PREPARE('$sql') FEHLGESCHLAGEN! ABBRUCH";
$erg=$sth->execute or die "EXECUTE('$sql') FEHLGESCHLAGEN! ABBRUCH";
while (my @row = $sth->fetchrow_array)
{
no warnings;
@row=map { s/\s*$// ; $_ } @row ; ## Leerzeichen am Ende entfernen
use warnings;
if ($row[3] ne "sa" ) ## Benutzer "sa" ignorieren
{
# status, loginname, hostname, dbname und cmd ausgeben
print "ROW: ", join(", ",@row[2,3,4,6,7]), "\n";
}
}
$sth->finish;
print "ENTER zum Beenden des Programms\n";
$erg=<STDIN>;
print "Verbindung wird geschlossen ...\n";
$dbh->disconnect if defined $dbh;
QuoteC:\bin>odbc.pl
Verbindung zur Datenbank 'master' auf '.' wird hergestellt ...
ROW: runnable, RTJ13\thomas, RTJ13, master, SELECT
ENTER zum Beenden des Programms
Verbindung wird geschlossen ...