Verwaltung und Auswertung der SchülerStammdaten SQL Modus Leitfaden SchüSta SQL Version 7.xx Jänner 2011 Diese Anleitung enthält Empfehlungen zur Verwaltung der SchüSta Daten mit einer SQLDatenbank und erhebt keinen Anspruch auf Vollständigkeit. Hinweise zur Verbesserung der Anleitung werden erbeten. Erforderliche Software Access-Modus Um in den Access-Modus umzuschalten reicht es (bei vorhandener Lizenz), wenn der Modus im Anmeldungsfenster ausgewählt wird. MySQL-Modus Die Client-Bibliotheksdatei LIBMYSQL.DLL muss sich im SchüSta Programmordner befinden. Die Bibliotheksdatei befindet sich im Installationspaket von SchüSta oder kann von der Adresse http://dev.mysql.com/downloads/mysql/5.0.html#win32 herunter geladen werden. Im SSLModus werden noch die Dateien LIBEAY32.DLL, SSLEAY32.DLL benötigt. MS SQL-Modus Der SQL Server Native Client NN.N sollte installiert sein. Oracle-Modus Der Oracle Instant Client (32 Bit) sollte installiert sein. Firebird-Modus Die Client-Bibliotheksdatei FBCLIENT.DLL muss sich im Programmordner befinden. Die Bibliotheksdatei kann von der Adresse http://www.zuggsoft.com/modules/mx_pafiledb/dload.php?action=download&file_id=60&mirro r_id=-1&page=4 herunter geladen werden. Postgre-Modus Die folgenden Bibliotheksdateien müssen sich im Programmordner befinden: LIBPQ.DLL, COMERR32.DLL, GSSAPI32.DLL (>= v 8.3), K5SPRT32.DLL (>= v 8.3), KRB5_32.DLL, LIBEAY32.DLL, LIBICONV-2.DLL, LIBINTL-2.DLL (< v 8.3), LIBINTL-8.DLL (>= v 8.3), LIBPQ.DLL, SSLEAY32.DLL. Die Bibliotheksdateien können von der Adresse http://www.postgresql.org/download/windows herunter geladen werden. SQL Modus SQL Anywhere-Modus Der "SQL Anywhere N" Treiber muss installiert werden, wobei N die Versionsnummer ist. Der Treiber kann von der Adresse http://www.sybase.com/detail?id=105587 herunter geladen werden. Anlegen der Datenbank Mit einem Datenbankeditor wird die SchüSta Datenbank angelegt. Beispiel MySQL: Komfortable Möglichkeiten zur Administration von MySQL Servern bieten diverse MySQL Editoren. Gute Erfahrungen wurden mit PhpMyAdmin und HeidiSQL gemacht. Für den Einsatz von SchüSta sind die MySQL Versionen ab 4.1.0 verwendbar. Ältere Versionen wurden nicht gestestet. Die immer vorhandene Möglichkeit zur Konfiguration ist die Kommandozeile: Datenbank anlegen: create database swdaten; Als Bezeichnungen für die Datenbank ist die Schulnummer vorteilhaft, wenn auf einem Server mehrere SchüSta Datenbanken verwaltet werden. Anlegen der Benutzer Mit einer Zusatzlizenz für integrierte Benutzerverwaltung besteht die Möglichkeit, die Benutzer von SchüSta selbst verwalten zu lassen – siehe Integrierte Benutzerverwaltung. In jedem Fall muss nur ein Benutzer im Datenbanksystem angemeldet werden. Beispiel Admin in der MySQL Datenbank anlegen: grant all privileges on swdaten.* to Admin@”%” identified by ”gap” with grant option; In der gleichen Weise ist auch der Benutzer “Sekret” anzulegen. Alle anderen Benutzer können nach der Installation von SchüSta SQL im Programm SchüSta angelegt werden. Konfigurationsmöglichkeiten: a) Vollständiger Umstieg auf SQL: Wenn die Standarddatenbank nicht mehr benutzt werden soll, wird aus Sicherheitsgründen vorgeschlagen, nach dem Einrichten der SQLDatenbank den Inhalt des Ordners DATEN zu löschen b) Parallelbetrieb: Die Standarddatenbank wird weiter als zentrale Datenbank verwendet (z.B. im Sekretariat) und die SQL-Datenbank wird für Zwecke der dezentralen Datenverwaltung eingesetzt (z.B. für Anmeldungen, Lehrer tragen Noten ein). Zur Aktualisierung der Datenbanken sind jederzeit im SQL-Modus Migration (Menü Verwaltung – Datenbank – Migration) durchgeführt. Bei Parallelbetrieb mit Standard und SQL besteht im Menü Verwaltung - Transfer nach ... die Möglichkeit, zur Datenübertragung der Stammdaten, Noten oder Wahlfächer für ausgewählte Klassen in beide Richtungen. WICHTIG: Das Kennwort für den Benutzer Admin sollte im SQL-Modus und im StandardModus das selbe sein. Einrichtung der SQL-Datenbank: SQL Modus SchüSta wird zunächst im Standardmodus gestartet. Die Ausstellung der Lizenz wird im Menü Verwaltung – Konfiguration - Benutzerlizenz vorgenommen. In das Eingabefeld für den Pfad wird der Pfad der Standard-Daten (c:\schule) angegeben. Die Eingabefelder Host, Name und Port müssen ausgefüllt werden. HTTP-Tunnel: Im MySQL und Oracle Modus wird im Eingabefeld Adresse des WebServers eine Webadresse angegeben, unter der ein Zugriffs-Script myscript.php bzw. orscript.php (befinden sich im SchüSta Programmordner) abgelegt wird. Das Script befindet sich in der Regel auf demselben Rechner bzw. im selben lokalen Netz wie die MySql-Datenbank. Wird das Script verwendet, dann wird die Verbindung für jede Anweisung neu aufgebaut. In diesem Fall muss man beachten, dass Windows eine Verbindung ungefähr 4 Minuten aufrechterhält. Wenn in dieser Zeit große Datenmengen transportiert werden, kann die Maximalzahl der Verbindungen überschritten werden. Um das zu verhindern sind in der Registry zwei Einträge erforderlich: HKey_Local_Machine \ SYSTEM \ CurrentControLSet \ Services\ Tcpip \ Parameters \ Neuer Schlüssel DWORD mit Namen "TcpTimedWaitDelay" Der Wert kann 30-300 (dezimal) Sekunden sein. Je kleiner, desto kürzer wird eine Verbindung aufrechterhalten. Neue Schlüssel DWORD mit Namen "MaxUserPort" Der Wert kann 5000-65534 (dezimal) sein. Je größer, desto mehr Verbindungen können in kurzer Zeit aufrecht erhalten werden. In der Datei PHP.INI MySql: MS SQL: Oracle: sind folgende Extensions erforderlich: extension=php_mysql_libmysql.dll extension = php_sqlsrv_53_ts_vc6.dll extension=php_oci8.dll Integrierte Benutzerverwaltung Zusatzmodul: Mit einer Zusatzlizenz besteht die Möglichkeit, die Benutzer von SchüSta selbst verwalten zu lassen. Dazu wird eine Markierung bei „Benutzerverwaltung in SchüSta integriert“ gesetzt. Ein Datenbankbenutzer kann angegeben werden. SQL Modus Gültigkeit: Mit dem Inhalt dieses Feldes kann die Gültigkeit der von der Schule ausgestellten Lizenzen beschränkt werden. Eine Lizenz behält so lange ihre Gültigkeit, als ihr Gültigkeitswert größer oder gleich dem Gültigkeitswert in der Datenbank ist (Menü Verwaltung – Optionen – Einstellung – Rubrik SQL-Modus). Man kann die Gültigkeit von Lizenzen dadurch beenden, dass man dem Gültigkeitswert in der Datenbank einen höheren Gültigkeitswert gibt. Der Zugriff auf die Datenbank kann auch vorübergehend gesperrt werden, indem man den Gültigkeitswert vergrößert und später wieder verkleinert. Mit [Ok] wird eine Lizenzdatei im angegebenen Datenordner mit der Nummer der Schule erstellt. Die Aufgaben der Benutzerlizenz Die Benutzerlizenz wird für die Anmeldung am Programm und an der Datenbank benötigt. Der SchüSta Benutzer Admin verwendet die Benutzerlizenz zusätzlich, um eine Kopie als Datenbanklizenz (Tabelle swcnf) zu speichern. Dazu wird vorher in der SQLDatenbank die Tabelle swcnf gelöscht. Sobald sich ein Benutzer mit Hilfe der Benutzerlizenz angemeldet hat, hat die Benutzerlizenz ihre Aufgabe erfüllt und die Datenbanklizenz übernimmt die Versionskontrolle und die Zugriffskontrolle. Eine neue Benutzerlizenz muss ausgestellt und die Datenbanklizenz (Tabelle swcnf) in der SQL-Datenbank muss gelöscht werden, wenn a) die Zugangsdaten (Datenbankname, Portadresse) verändert werden, und b) wenn eine neue Lizenzversion installiert wird. Wird die Datenbanklizenz in den o.a. Fällen nicht aktualisiert, kann das nach dem Aufruf von Verwaltungsfunktionen zu Problemen führen (Datenbanklizenz wird ungültig). Unterschiedliche Benutzerlizenzen Es ist möglich, dass für eine SQL-Datenbank unterschiedliche Benutzerlizenzen ausgestellt werden. Anmeldung: Wird die Benutzerlizenz gewählt, dann wird der Datenbankmodus angezeigt. Mit dem Klick auf Button [Ok] werden die Benutzerdaten auf Ihre Zugriffsberechtigung sowohl in Bezug auf SchüSta als auch auf den SQL-Server überprüft. Im Falle einer Ablehnung kann SchüSta nicht gestartet werden. Danach wird die Datenbank automatisch eingerichtet, indem die grundlegenden Tabellen angelegt werden. SQL Modus Nach der Umstellung auf SQL-Betrieb ist auch wieder ein Programmstart ohne Anmeldungsdialog (Benutzerdaten in die Befehlszeile des Start-Symbols eintragen) möglich. Betrieb der SQL-Datenbank: Datenmigration: Wenn Daten im Standardmodus vorhanden sind, werden diese im SQL-Modus im Menü Verwaltung – Datenbank – Migration in beide Richtigen transferiert. WICHTIG: Mit der Menüfunktion Bearbeiten – Referenzlisten – Aktualisieren werden die Referenzlisten auf den aktuellen Stand gebracht. Datentransfer SQL <--> Standard bei Parallelbetrieb: Die Menüfunktion Verwaltung – Datenbank - Transfer ermöglicht den Datenaustausch der Stammdaten, Noten oder Wahlfächer bei Parallelbetrieb für ausgewählte Klassen in beide Richtungen. Benutzerverwaltung: Im SQL-Modus muss mindestens ein Benutzer in der SQL-Datenbank angemeldet werden. Dazu werden zwei Möglichkeiten angeboten: Verwaltung eines einzigen Benutzers (Zusatzlizenz) oder Verwaltung aller Benutzer (Standardlizenz) im Datenbanksystem. Anmeldung eines einzigen Benutzers im Datenbanksystem (Zusatzlizenz): Dazu wird eine integrierte Datenbanklizenz mit den Daten eines Benutzers ausgestellt. Die eigentliche Verwaltung der Benutzer erfolgt über die Referenzliste der Lehrer. Mit der integrierten Benurtzerverwaltung ist die Anmeldung auch ohne Kennwort möglich. Anmeldung aller Benutzer im Datenbanksystem: Zu Anmeldung bzw. Verwaltung der Benutzer im Datenbanksystem ist ein Datenbank-Editor (z.B. phpMyAdmin) erforderlich. Mögliche Probleme: Abgesehen von falschen Anmeldedaten des Benutzers werden noch folgende Probleme in der Statuszeile des Anmeldungsfensters angezeigt: “SQL-Server <Serveradresse> nicht erreichbar!“ wird gemeldet, wenn die Serverdaten in der Benutzerlizenz nicht stimmen (siehe Menü Verwaltung – Konfiguration Benutzerlizenz). Zur Problemlösung muss eine neue Benutzerlizenz mit den richtigen Serverdaten ausgestellt werden. “Benutzerlizenz und Datenbanklizenz stimmen nicht überein!“ wird gemeldet, wenn der Server zwar erreichbar ist, aber die Lizenzdaten der Benutzerlizenz nicht mit der Lizenz, die sich in der Datenbank befindet, übereinstimmen. Wenn die Zugangsdaten (Datenbankname, Portadresse) verändert werden, muss eine neue Benutzerlizenz ausgestellt werden und die Lizenztabelle (swcnf) in der SQL-Datenbank gelöscht werden. Sichere MySql-Verbindung: Zertifikate erstellen Hinweise zur Herstellung sicherer Verbindungen mit einer MySQL Datenbank finden Sie an der Adresse http://dev.mysql.com/doc/refman/5.1/de/secure-connections.html Zunächst muss OpenSSL installiert werden. Downloadmöglichkeiten findet man bei http://www.openssl.org/related/binaries.html Zur Herstellung der Zertifikate erstellt man eine Batch-Datei (folgenden Text markieren und in eine Datei mit dem Namen z.B. Zertifikat.bat kopieren): -------------------------------------------- (batch Anfang) ------------------------------------rem Ordner anlegen rem -----------------------------md c:\NewCerts SQL Modus cd c:\NewCerts echo 01 > serial.txt rem Pfad zum OpenSSL Bin Ordner set OsslBin=c:\openssl\bin\ rem Pfad zum OpenSSL Bin Ordner set OsslPath=c:\openssl\bin\openssl.exe rem Zertifikats-Autoritaet erstellen %OsslPath% req -new -x509 -days 3650 -keyout "ca-key.pem" -out "ca-cert.pem" -config "%OsslBin%openssl.cfg" rem Zertifikate für Server %OsslPath% req -new -keyout "server-key.pem" -out "server-req.pem" -days 3650 -config "%OsslBin%openssl.cfg" %OsslPath% rsa -in "server-key.pem" -out "server-key.pem" %OsslPath% x509 -req -days 3650 -CA "ca-cert.pem" -CAkey "ca-key.pem" -CAserial "serial.txt" -in "server-req.pem" -out "server-cert.pem" rem Zertifikate für Client %OsslPath% req -new -keyout "client-key.pem" -out "client-req.pem" -days 3650 -config "%OsslBin%openssl.cfg" %OsslPath% rsa -in "client-key.pem" -out "client-key.pem" %OsslPath% x509 -req -days 3650 -CA "ca-cert.pem" -CAkey "ca-key.pem" -CAserial "serial.txt" -in "client-req.pem" -out "client-cert.pem" pause -------------------------------------------------- (batch Ende) --------------------------------Bei diesem Batch Prozess werden mehrere Angaben verlangt die aber nicht von besonderer Bedeutung sind. My-SQL Server umstellen Die Server-Zertifikate werden in der Datei MY.INI für den Server bereitgestellt. Dazu MY.INI öffnen und in der Rubrik [mysqld] die folgenden Eintragungen vornehmen: ssl ssl-ca = c:/NewCerts/ca-cert.pem ssl-cert = c:/NewCerts/server-cert.pem ssl-key = c:/NewCerts/server-key.pem Nach der Änderung muss der MySQL-Server neu hochgefahren werden. Die Überprüfung erfolgt mit der SQL-Anweisung SHOW VARIABLES like '%ssl%'; Die Variable have_openssl müsste den Wert "yes" haben. Benutzer auf sichere Verbindung umstellen Mit der Anweisung GRANT ALL PRIVILEGES ON *.* TO '[name]'@'%' REQUIRE SSL; kann der angegebene Benutzer nur mehr eine sichere SSL Verbindung aufbauen. Die Überprüfung der Verbindung ist mit SHOW STATUS LIKE 'ssl%'; möglich. Die Variable ssl_cipher muss bei einer SSL-Verbindung einen Wert haben. Benutzerlizenz für SSL-Verbindung Im Menü Verwaltung – Konfiguration – Benutzerlizenz befindet sich eine Rubrik „Zertifikate“, in der die Dateinamen der Zertifikate angegeben werden. Die Zertifikate müssen sich beim Programmstart (zusammen mit der Benutzerlizenz) im lokalen Datenbankordner (c:\schule) befinden. SQL Modus Eine Verbindung mit dieser Lizenz ist nur dann möglich, wenn der Benutzer in der MySQL Datenbank als Benutzer einer sicheren Verbindung angemeldet ist. SQL Modus Die Tabellen: Die Felder der Tabelle STAMM Jahr: Jahr des Eintritts in die Schule Ken: Kennnummer 6 stellig Version: Datenversion Aender: letzte Änderung FamNam: Familienname VorNam: Vorname Geschl: Geschlecht (m/w) GebDat: Geburtsdatum (tt.mm.jj) SvNumm: Sozialversicherungsnummer Ersatz: Ersatzkennzeichen Staats: Staatsbürgerschaft Religi: Religionsbekenntnis MutSpr: Muttersprache Status: Status (o/a) AltArt: Art der letzten Schule (APS, AHS …) AltSul: Schulkennzahl der letzten Schule EinDat: Eintrittsdatum (tt.mm.jj) NeuKen: alternative Kennnummer AbWech: Ausbildungswechsel SulPfl: Letztes Jahr der Schulpflicht (jj) Marke: Beliebige Markierung TgHeim: Tagesbetreuung (0 – 5) FreFrt: Freifahrt (j/n) BeiHil: Schulbeihilfe (j/n) ErzKen: Erzieherkennung (e,v,m,g) ErzNam: Name des Erziehungsberechtigten ErzOrt: Wohnort des Erziehungsberechtigten ErzStr: Straße des Erziehungsberechtigten ErzTel: Telefon des Erziehungsberechtigten NotNam: Name des 2. Erziehungsberechtigten NotOrt: Wohnort des 2. Erziehungsberechtigten NotStr: Straße des 2. Erziehungsberechtigten NotTel: Telefon des 2. erziehungsberechtigten Nummer: Beliebige Nummer FrmNum: Schulformkennzahl AktKla: Aktuelle Klasse FrmSpr: Fremdsprache AusStd: Ausbildungsstand AbPruf: Abschlussprüfung Ethik: Ethik (j/n) FoeBed: Förderbedarf (j/n) LfBahn: Laufbahn AfNahm: Aufnahmedaten EduCrd: EduCard-Daten Auto01– Auto20: Schulautonome Daten VorPruef: Vorprüfungsdaten Kurs: Wahlgegenstände Prakt: Praktika Dauer: Daueranmerkungen Die Felder der Tabelle XXklas Name: Kat: Ken: Verh: Klassenbezeichnung Katalognummer Kennnummer Verhaltensnote SQL Modus Fach01-Fach60: VorjNg: AufStg: Optionen: WhZgDt: FehlEn: FehlUn: Sprache: AbDate: AbStand: AufVor: SulFrm: Aender: SulStu: LeiGrp: SulErf: Klausel: ZeugDt: Warnung: NprDat: LfbJhr: Koll: Gegenstandsbeurteilungen Negativer Gegenstand aus dem Vorjahr Aufstiegsberechtigung Optionen Zeugnisdatum Wiederholungsprüfung Entschuldigte Fehlstunden Unentschuldigte Fehlstunden Fremdsprache Abmeldedatum Ausbildungsstand Aufstiegsvoraussetzungen Schulform Letzte Änderung Schulstufe Leistungsgruppe Schulerfolg gewählte Zusatzklauseln Zeugnisdatum Frühwarnungen Nachtragsprüfungsdatum Anmerkungen Kolloquien Die Felder der Tabelle XXabpr Name: Klassenbezeichnung Kat: Katalognummer Ken: Kennnummer FreStd: Freigegenstand Stunden FreAnf: Freigegenstand Anfangsklasse FreEnd: Freigegenstand Endklasse FreFch: Freigegenstand Name Best00-Best03: Ergebnis 1. Termin bis 3. Wiederholung SlLehr: Schüler Lehrer-Zuordnung Date00-Date03: Prüfungsdatum 1. Termin bis 3. Wiederholung Fach01-Fach10: Prüfungsgegenstände AntArt: Antrittsart Klausel: gewählte Zusatzklauseln Thema: Thema der vorwissenschaftlichen Arbeit Die Felder der Tabelle XXlehr Name: Zahl: Form: Kv: Vers: Aender: Termin: Alias: LhrPln: Org: BilArt: BilSpr: Eltern: Vsitz: Abteil: Werkst: NotZhl: Options: Klassenbezeichnung Schülerzahl Schulformkennzahl Klassenvorstand Version letzte Änderung Termine Klassenalias Lehrplannummer Organisation Bilingualunterricht Bilingualsprache Elternvertreter Vorsitzender Abteilungsvorstand Werkstättenleiter Notenzahl Optionen SQL Modus EduDat: WhlNam: Anmerk: Fach01-Fach60: Konf1-Konf3: Pruef: Prnot: EduCard-Daten Name für Wahlgegenstände Anmerkung Gegenstände Konferenzergebnisse Prüfungsergebnisse Prüfungsnoten Die Felder der Tabelle XXrefer Art: Name: Wert: Num: Art des Datenfeldes Name des Datenfeldes Wert des Datenfeldes Nummer des Datenfeldes Datenfeldarten: KANON: Gegenstand mit Name=Kurzname, Wert=Langname, Num=Nummer LEHRK: Lehrer mit Name=Kurzname, Wert=Langname, Num=Nummer SFORM: Schulform mit Name=Kennzahl, Wert=Bezeichnung, Num=Nummer VERAN: Schulveranstaltung mit Name=laufende Nummer, Wert=Bezeichnung, Num=Nummer Die Felder der Tabelle refdaten Art: Name: Wert: Num: Art des Datenfeldes Name des Datenfeldes Wert des Datenfeldes Nummer des Datenfeldes EINZG: Schulen des Einzugsgebietes mit Name=Kennzahl, Wert=Bezeichnung, Num=Nummer MFORM: Schulform Matura mit Name=Kennzahl, Wert=Bezeichnung, Num=Nummer PLORT: Postleitzahlen mit Name=Postleitzahl, Wert=Adresse,Num=Nummer RELIG: Religionsbekenntnisse mit Name=Kurzname, Wert=Langname, Num=Nummer PARAM: Diverse Felder mit Einstellungen für die Datenbank