Der SQL-Server von 4D ermöglicht den externen Zugriff auf die in der 4D Datenbank gespeicherten Daten. Für third party Anwendungen und 4D Applikationen erfolgt dieser Zugriff über einen 4D ODBC Treiber. Es ist auch möglich, direkte Verbindungen zwischen einem 4D Client und einer 4D Server Applikation herzustellen. Alle Verbindungen werden über das TCP/IP Protokoll hergestellt.
Der SQL Server einer 4D Applikation kann jederzeit gestoppt oder gestartet werden. Außerdem können Sie aus Performance- und Sicherheitsgründen den TCP Port sowie die zuhörende IP-Adresse angeben und die Zugriffsmöglichkeiten auf die 4D Datenbank einschränken.
Der externe Zugriff auf den 4D SQL Server kann entweder über ODBC (alle Konfigurationen) oder direkt (4D Client Applikation verbunden mit 4D Server) erfolgen. Dies ist im folgenden Diagramm zusammengefasst:
Auf der Abfrageebene wird das Öffnen einer direkten externen Verbindung oder einer Verbindung über ODBC mit dem Befehl SQL LOGIN durchgeführt. Weitere Informationen finden Sie in der Beschreibung dieses Befehls.
Verbindungen über ODBC: 4D stellt einen ODBC Treiber zur Verfügung, mit dem jede third party Anwendung (Spreadsheet vom Typ Excel®, andere DBMS usw.) oder eine andere 4D Anwendung eine Verbindung zum 4D SQL Server herstellen kann. Der 4D ODBC Treiber muss auf dem SQL Client Rechner installiert werden. Die Installation und Konfiguration des 4D ODBC Treibers wird in einem separaten Handbuch beschrieben.
Direkte Verbindungen: Nur eine 4D Server Applikation kann auf direkte SQL Abfragen von anderen 4D Applikationen antworten. Ebenso können nur 4D Applikationen der "Professional" Produktlinie eine direkte Verbindung zu einer anderen 4D Applikation öffnen. Bei einer direkten Verbindung erfolgt der Datenaustausch automatisch im synchronen Modus, wodurch Fragen der Synchronisation und der Datenintegrität entfallen. Pro Prozess ist nur eine Verbindung zulässig. Wenn Sie mehrere gleichzeitige Verbindungen herstellen möchten, müssen Sie so viele Prozesse wie nötig erstellen. Direktverbindungen können gesichert werden, indem Sie auf der Zielseite der Verbindung (4D Server) auf der Registerkarte "SQL" der Datenbank-Eigenschaften die Option TLS aktivieren. Direkte Verbindungen werden von 4D Server nur zugelassen, wenn der SQL Server gestartet ist. Der Hauptvorteil von Direktverbindungen besteht darin, dass der Datenaustausch beschleunigt wird.
Der SQL-Server kann auf drei Arten gestartet und gestoppt werden:
Manuell über die Befehle Start SQL Server/Stop SQL Server im Menü Start der 4D Applikation:
Hinweis: Bei 4D Server ist dieser Befehl als Schaltfläche auf dem Find in array zu finden. Wenn der Server gestartet wird, ändert sich dieser Menüeintrag in SQL Server stoppen.
Automatisch beim Start der Applikation, über die Datenbank-Einstellungen. Rufen Sie dazu die Seite SQL auf und aktivieren Sie die Option SQL Server beim Start starten:
Durch Programmierung mit den Befehlen START SQL SERVER und STOP SQL SERVER (Thema "SQL"). Wenn der SQL-Server gestoppt ist (oder wenn er nicht gestartet wurde), reagiert 4D nicht auf externe SQL-Anfragen. Hinweis: Das Stoppen des SQL Servers hat keinen Einfluss auf die interne Funktion der 4D SQL Engine. Die SQL-Engine ist immer für interne Abfragen verfügbar.
Es ist möglich, die Veröffentlichungsparameter für den in 4D integrierten SQL Server zu konfigurieren. Diese Parameter finden Sie auf der Seite SQL in den Datenbank-Eigenschaften:
Mit der Option SQL-Server beim Start starten können Sie den SQL-Server beim Starten der Applikation starten.
TCP Port: Standardmäßig antwortet der 4D SQL Server über den TCP Port 19812. Wenn dieser Port bereits von einem anderen Dienst verwendet wird oder wenn Ihre Verbindungsparameter eine andere Konfiguration erfordern, können Sie den vom 4D SQL Server verwendeten TCP Port ändern.
Hinweise: - Wenn Sie 0 übergeben, verwendet 4D die Standard-TCP-Portnummer, d.h. 19812. - Sie können diesen Wert programmatisch festlegen, indem Sie den SQL Server Port ID Selector des Befehls SET DATABASE PARAMETER verwenden.
IP-Adresse: Sie können die IP-Adresse des Rechners festlegen, auf dem der SQL-Server SQL-Abfragen verarbeiten muss. Standardmäßig antwortet der Server auf alle IP-Adressen (Option Alle).
Die Dropdown-Liste "IP-Adresse" enthält automatisch alle auf dem Rechner vorhandenen IP-Adressen. Wenn Sie eine bestimmte Adresse auswählen, antwortet der Server nur auf Abfragen, die an diese Adresse gesendet werden.
Dies ist für 4D Applikationen gedacht, die auf Rechnern mit mehreren TCP/IP-Adressen gehostet werden.
Hinweise: - Auf der Client-Seite müssen die IP-Adresse und der TCP-Port des SQL-Servers, mit dem sich die Applikation verbindet, in der ODBC-Datenquellendefinition korrekt konfiguriert sein. - Ab 4D v14 verarbeitet der SQL Server die Notation von IPv6-Adressen. Der Server akzeptiert entweder IPv6- oder IPv4-Verbindungen, wenn die "IP-Adresse" des Servers auf Alle eingestellt ist. Weitere Informationen finden Sie unter Unterstützung von IPv6.
TLS aktivieren: Diese Option gibt an, ob der SQL-Server das TLS-Protokoll für die Verarbeitung von SQL-Verbindungen aktivieren muss. Beachten Sie, dass Sie bei aktiviertem Protokoll das Schlüsselwort ":ssl" an das Ende der IP-Adresse des SQL-Servers anfügen müssen, wenn Sie mit dem Befehl SQL LOGIN eine Verbindung öffnen.
Standardmäßig verwendet der SQL-Server interne Dateien für den TLS-Schlüssel und das Zertifikat. Sie können jedoch auch benutzerdefinierte Elemente verwenden: Kopieren Sie dazu einfach Ihre eigenen Dateien key.pem und cert.pem an den folgenden Speicherort: MyDatabase/Preferences/SQL (wobei "MyDatabase" für den Datenbankordner/das Datenbankpaket steht).
Hinweise: - Ab 4D v16 R5 ist das Standardprotokoll TLS 1.2. - Sie können diesen Wert programmatisch ändern, indem Sie den Min TLS version Selector mit dem Befehl SET DATABASE PARAMETER verwenden.
Flash Player Anfragen zulassen: Mit dieser Option können Sie den Mechanismus zur Unterstützung von Flash Player-Anfragen durch den 4D SQL Server aktivieren. Dieser Mechanismus basiert auf dem Vorhandensein einer Datei namens "socketpolicy.xml" im Voreinstellungsordner der Datenbank (Preferences/SQL/Flash/). Diese Datei wird vom Flash Player benötigt, um domänenübergreifende Verbindungen oder Verbindungen über Sockets von Flex (Web 2.0) Applikationen zu ermöglichen.
In der vorherigen Version von 4D musste diese Datei manuell hinzugefügt werden. Von nun an erfolgt die Aktivierung über die Option Flash Player-Anfragen zulassen: Wenn Sie diese Option aktivieren, werden Flash Player-Anfragen akzeptiert und eine generische Datei "socketpolicy.xml" für die Datenbank erstellt, falls erforderlich.
Wenn Sie diese Option deaktivieren, wird die Datei "socketpolicy.xml" deaktiviert (umbenannt). Alle Flash Player-Anfragen, die anschließend vom SQL-Server empfangen werden, werden dann abgewiesen. Beim Öffnen der Datenbank wird die Option je nach Vorhandensein einer aktiven "socketpolicy.xml"-Datei im Voreinstellungsordner der Datenbank aktiviert oder nicht aktiviert.
Hinweis: Sie können die Kodierung, die der SQL-Server für die Verarbeitung externer Anfragen verwendet, mit dem Befehl 4D SQL SET OPTION festlegen.
Aus Sicherheitsgründen ist es möglich, die Aktionen einzuschränken, die externe Abfragen, die an den SQL Server gesendet werden, in der 4D Datenbank durchführen können. Dies kann auf zwei Ebenen geschehen:
Auf der Ebene der Art der erlaubten Aktion,
auf der Ebene des Users, der die Abfrage durchführt. Diese Einstellungen können auf der Seite SQL der Datenbankeinstellungen vorgenommen werden.
Die in diesem Dialogfenster eingestellten Parameter werden auf das Standardschema angewendet. Die Steuerung des externen Zugriffs auf die Datenbank basiert auf dem Konzept der SQL-Schemata (siehe Abschnitt 4D SQL engine implementation). Wenn Sie keine benutzerdefinierten Schemas erstellen, umfasst das Standardschema alle Tabellen der Datenbank. Wenn Sie andere Schemas mit bestimmten Zugriffsrechten erstellen und diese mit Tabellen verknüpfen, enthält das Standardschema nur die Tabellen, die nicht in benutzerdefinierten Schemas enthalten sind.
Sie können drei verschiedene Arten des Zugriffs auf das Standardschema über den SQL-Server konfigurieren:
"Nur Lesen (Daten)": Uneingeschränkter Zugriff zum Lesen aller Daten der Datenbanktabellen, aber kein Hinzufügen, Ändern oder Entfernen von Datensätzen und keine Änderung der Datenbankstruktur ist erlaubt.
"Lesen/Schreiben (Daten)": Lese- und Schreibzugriff (Hinzufügen, Ändern und Löschen) auf alle Daten der Datenbanktabellen, aber keine Änderung der Datenbankstruktur ist erlaubt.
"Vollständig (Daten und Design)": Lese- und Schreibzugriff (Hinzufügen, Ändern und Löschen) auf alle Daten der Datenbanktabellen sowie die Änderung der Datenbankstruktur (Tabellen, Felder, Verknüpfungen usw.) ist erlaubt.
Sie können für jede Zugriffsart eine Reihe von Benutzern festlegen. Zu diesem Zweck stehen Ihnen drei Optionen zur Verfügung:
<Niemand>: Wenn Sie diese Option wählen, wird die betreffende Zugriffsart für alle Abfragen verweigert, unabhängig von deren Herkunft. Dieser Parameter kann auch verwendet werden, wenn das 4D Passwort-Zugangsverwaltungssystem nicht aktiviert ist.
<Jeder>: Wenn Sie diese Option wählen, wird die betreffende Zugriffsart für alle Abfragen zugelassen (es gibt keine Beschränkung).
Gruppe von Usern: Mit dieser Option können Sie eine Gruppe von Usern benennen, die ausschließlich für die betreffende Zugriffsart berechtigt sind. Diese Option setzt voraus, dass 4D Passwörter aktiviert sind. Der User, von dem die Abfragen ausgehen, gibt seinen Namen und sein Passwort an, wenn er sich mit dem SQL-Server verbindet.
WARNUNG: Jede Zugriffsart wird unabhängig von den anderen festgelegt. Genauer gesagt, wenn Sie einer Gruppe nur den Zugriff vom Typ Nur lesen zuweisen, hat dies keine Auswirkungen, da diese Gruppe sowie alle anderen weiterhin vom Zugriff vom Typ Lesen/Schreiben profitieren (standardmäßig <Jeder> zugewiesen). Um einen Zugriff vom Typ Nur Lesen einzurichten, müssen Sie auch den Zugriff vom Typ Lesen/Schreiben konfigurieren.
WARNUNG: Dieser Mechanismus basiert auf 4D Passwörtern. Damit die Zugriffskontrolle des SQL-Servers wirksam wird, muss das 4D-Passwortsystem aktiviert sein (dem Designer muss ein Passwort zugewiesen werden).
Hinweis: Auf der Ebene der einzelnen 4D Projektmethoden kann eine zusätzliche Sicherheitsoption eingestellt werden. Weitere Informationen hierzu finden Sie im Abschnitt "Über die SQL-Option verfügbar" in den Grundsätzen zur Integration von 4D und der 4D SQL Engine.