#!/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=; print "Verbindung wird geschlossen ...\n"; $dbh->disconnect if defined $dbh;