Warum ist es nicht ratsam, die Datenbank und den Webserver auf demselben Computer zu haben?

126

Als er Scott Hanselmans Interview mit dem Stack Overflow-Team ( Teil 1 und 2 ) hörte, bestand er darauf, dass sich der SQL-Server und der Anwendungsserver auf getrennten Computern befinden sollten. Damit soll nur sichergestellt werden, dass bei einem kompromittierten Server nicht auf beide Systeme zugegriffen werden kann? Wiegen die Sicherheitsbedenken die Komplexität von zwei Servern auf (zusätzliche Kosten, dedizierte Netzwerkverbindung zwischen den beiden, mehr Wartung usw.), insbesondere für eine kleine Anwendung, bei der keines der beiden Teile zu viel CPU oder Speicher benötigt? Selbst bei zwei Servern, bei denen ein Server kompromittiert ist, kann ein Angreifer ernsthaften Schaden anrichten, indem er entweder die Datenbank löscht oder mit dem Anwendungscode herumspielt.

Warum sollte das so eine große Sache sein, wenn Leistung kein Problem ist?

Tai im Quadrat
quelle

Antworten:

158
  1. Sicherheit. Ihr Webserver befindet sich in einer DMZ, die für das öffentliche Internet zugänglich ist und nicht vertrauenswürdige Eingaben von anonymen Benutzern entgegennimmt. Wenn Ihr Webserver kompromittiert wird und Sie beim Herstellen einer Verbindung zu Ihrer Datenbank die Regeln mit den geringsten Berechtigungen befolgt haben, kann Ihre App die maximale Gefährdung über die Datenbank-API erzielen. Wenn Sie eine Business-Ebene dazwischen haben, haben Sie einen weiteren Schritt zwischen Ihrem Angreifer und Ihren Daten. Befindet sich Ihre Datenbank hingegen auf demselben Server, hat der Angreifer jetzt Root-Zugriff auf Ihre Daten und Ihren Server.
  2. Skalierbarkeit. Wenn Sie Ihren Webserver zustandslos halten, können Sie Ihre Webserver nahezu mühelos horizontal skalieren. Es ist sehr schwierig, einen Datenbankserver horizontal zu skalieren.
  3. Performance. 2 Boxen = 2 mal die CPU, 2 mal der RAM und 2 mal die Spindeln für den Festplattenzugriff.

Trotzdem kann ich durchaus vernünftige Fälle erkennen, in denen keiner dieser Punkte wirklich von Bedeutung ist.

Mark Brackett
quelle
27
Aber mit 2 Maschinen haben Sie die doppelte Wahrscheinlichkeit eines Hardwarefehlers;)
TWith2Sugars
4
@ TWith2Sugars - im Gegensatz zu was?
Kev
3
Ref. Punkt 1. Wenn die Webschicht im Besitz ist, was möchten oder brauchen Sie dann mehr als die App / Datenbank-API-Schnittstelle? Sicher ist das Spiel zu diesem Zeitpunkt sowieso vorbei? Die Dinge werden dann sehr interessant in Bezug auf die Dienste, die zur Unterstützung der DMZ-Infrastruktur erforderlich sind, z. B. AD- oder Microsoft-Dienste im Spiel?
Noelie Dunne
4
@Noelie - Ihre Webschicht hätte keinen Zugriff darauf, die Datenbank in einer Datei zu sichern und diese Datei mit xp_cmdshell auf ftp.hackers.com zu übertragen. Oder löschen Sie die Datenbank. Oder ändern Sie die Konfigurationswerte. usw.
Mark Brackett
6
@kirgy - Da die beiden Maschinen parallel geschaltet sind und jeweils einen einzelnen Fehlerpunkt darstellen, ist die allgemeine Zuverlässigkeit geringer. Es ist technisch gesehen nicht doppelt so hoch (es ist tatsächlich 1 - (r1 * r2)), aber nahe genug für große Zuverlässigkeit und kleine Knoten. Im Fall von 0,01% wären es 0,0199%. Aber für 100 Knoten wären es 36,6% anstelle der 100%, die durch die Verdopplungsanweisung impliziert werden.
Mark Brackett
45

Es ist nicht wirklich Materie (Sie ganz glücklich können Sie Ihre Website mit Web / Datenbank auf demselben Rechner laufen), es ist nur der einfachste Schritt in Skalierung ..

Genau das hat StackOverflow getan - angefangen bei einem einzelnen Computer, auf dem IIS / SQL Server ausgeführt wird, und dann, als es stark ausgelastet wurde, wurde ein zweiter Server gekauft und der SQL Server darauf verschoben.

Wenn die Leistung kein Problem darstellt, verschwenden Sie kein Geld mit dem Kauf / der Wartung von zwei Servern.

dbr
quelle
3
Ich stimme zu, es kann gemacht werden, während die Last niedrig ist ... wenn die Last zunimmt, ist es einfach, sie in 2 oder mehr Maschinen zu trennen.
EJ Brennan
4
Ich kam herein und wollte dasselbe kommentieren. Das Wechseln Ihres DB-Servers ist so einfach wie das Ändern Ihrer Verbindungszeichenfolge (in den meisten Fällen).
CitizenBane
Äh, das gefällt mir. Jemand denkt über den Kontext nach, bevor er eine Lösung vorschlägt!
Demisx
22

Auf der anderen Seite bezogen sie sich auf einen anderen Blogger, Scott (Watermasyck, von Telligent). Sie stellten fest, dass die meisten Benutzer die Websites beschleunigen konnten (mithilfe des Community-Servers von Telligent), indem sie die Datenbank auf demselben Computer wie die Website platzierten. Im Fall ihrer Kunden sind jedoch normalerweise der Datenbank- und Webserver die einzigen Anwendungen auf diesem Computer, und die Website belastet den Computer nicht so sehr. Die Effizienz, keine Daten mehr über das Netzwerk senden zu müssen, machte die erhöhte Belastung wieder wett.

James Curran
quelle
4
... bis die gleichzeitige Nutzung zunimmt und der Datenbankserver mehr Speicher benötigt, um Puffer und Caches effektiv nutzen zu können. Sobald die Web- / App- und DB-Server mehr Speicher benötigen, als sie auf einer einzelnen Box gemeinsam nutzen können, erhöhen sich die Paging- und Festplatten-E / A sowie die Leistungstanks.
Kermatt
@MattK - aber was ist, wenn Sie sehr viel Speicher haben? Wir haben eine App, in der jeder Client seine eigene Datenbank hat, sodass sowohl die Datenbank als auch die Webserver sehr einfach horizontal skaliert werden können. Wäre es für die Leistung nicht besser, alles auf demselben Computer zu belassen, da mehr Speicher als Festplatte verwendet wird (64 GB gegenüber ~ 40 GB)?
Beep Beep
1
Wenn Ihr Arbeitssatz in den Speicher passt, werden möglicherweise keine der von mir erwähnten Leistungsprobleme angezeigt. Häufig haben Server mehr Festplatte als RAM, aber in Ihrem Fall haben Sie Datenbanken, die vollständig in den RAM passen - solange die Anwendungen auf dem gemeinsam genutzten Server nicht zu viel davon verbrauchen.
Kermatt
15

Ich würde denken, der große Faktor wäre die Leistung. Sowohl der Webserver / App-Code als auch SQL Server würden häufig angeforderte Daten im Speicher zwischenspeichern, und Sie beeinträchtigen Ihre Cache-Leistung, indem Sie sie im selben Speicherbereich ausführen.

Tom Ritter
quelle
12
Was ist, wenn Sie eine kleine (ish) Datenbank haben, aber mit viel Speicher? Würden nicht die Kosten für das Durchsuchen des Netzwerks für jeden Datenbankaufruf, insbesondere wenn es viele gibt, die Vorteile überwiegen?
Beep Beep
1
@ Tom Ritter Obwohl die Leistung ein Problem darstellt (gemäß dieser Antwort und Punkt 3 in Mark Bracketts Antwort), weiß ich, dass einige Leute (ich eingeschlossen) wahrscheinlich das Geld sparen würden, wenn sie KEINEN separaten DB-Server in MEHR CPU / RAM / stecken würden etc. auf dem einzigen Server, der es ersetzt hat. Dies sollte also berücksichtigt werden. In Bezug auf getrennten Speicher könnten IIS und SQL so konfiguriert werden, dass ihre Konkurrenz um Ressourcen berücksichtigt wird. Persönlich war der "Kicker" für mich Marks wichtigster Punkt ... Sicherheit. Ich mag den Gedanken an den eingeschränkten Zugriff, den ein kompromittierter Webserver auf einen separaten DB-Server haben würde.
Dylan - INNO Software
@ Tom, Sie können den Speicherplatz jederzeit in zwei separate Einheiten aufteilen. Eine Hälfte für Server und eine Hälfte für Datenbank.
Pacerier
15

Tom hat damit Recht. Einige andere Gründe sind, dass es nicht kosteneffektiv ist und dass zusätzliche Sicherheitsrisiken bestehen.

Webserver haben andere Hardwareanforderungen als Datenbankserver. Datenbankserver schneiden mit viel Speicher und einem sehr schnellen Festplattenarray besser ab, während Webserver nur genügend Speicher zum Zwischenspeichern von Dateien und häufigen DB-Anforderungen benötigen (abhängig von Ihrem Setup). In Bezug auf die Kosteneffizienz sind die beiden Server nicht unbedingt günstiger. Das Verhältnis von Leistung zu Kosten sollte jedoch höher sein, da Sie nicht unterschiedliche Anwendungen benötigen, die um Ressourcen konkurrieren. Aus diesem Grund müssen Sie wahrscheinlich viel mehr für einen Server ausgeben, der beiden Anforderungen gerecht wird und die Leistung von zwei spezialisierten Servern bietet.

Die Sicherheitsbedenken bestehen darin, dass sowohl der Webserver als auch die Datenbank anfällig sind, wenn der einzelne Computer kompromittiert wird. Mit zwei Servern haben Sie etwas Luft zum Atmen, da der zweite Server (zumindest für eine Weile) noch sicher ist.

Es gibt auch einige Skalierbarkeitsvorteile, da Sie möglicherweise nur einige Datenbankserver warten müssen, die von einer Reihe verschiedener Webanwendungen verwendet werden. Auf diese Weise haben Sie weniger Arbeit, um Upgrades oder Patches anzuwenden und die Leistung zu optimieren. Ich glaube, dass es Server-Management-Tools gibt, die diese Aufgaben vereinfachen (im Fall eines einzelnen Computers).

Dana die Gesunde
quelle
2
Wenn Sie etwas anderes als SPs ausführen, hat Ihr Webserver wahrscheinlich sowieso vollen Zugriff auf die Daten in Ihrer Datenbank
George Mauer
Warum ist es nicht kosteneffizient? Bitte angeben.
Robert Jeppesen
Robert I hat das erweitert und einige Kommentare zur Skalierbarkeit und Wartung hinzugefügt.
Dana the Sane
9

Sicherheit ist ein wichtiges Anliegen. Idealerweise sollte sich Ihr Datenbankserver hinter einer Firewall befinden und nur die für den Datenzugriff erforderlichen Ports geöffnet sein. Ihre Webanwendung sollte eine Verbindung zum Datenbankserver mit einem SQL-Konto herstellen, das gerade über genügend Rechte verfügt, damit die Anwendung funktioniert, und nicht mehr. Zum Beispiel sollten Sie Rechte entfernen, die das Löschen von Objekten ermöglichen, und Sie sollten mit Sicherheit keine Verbindung mit Konten wie 'sa' herstellen.

Für den Fall, dass Sie den Webserver durch einen Hijack verlieren (dh eine vollständige Eskalation von Berechtigungen zu Administratorrechten), besteht das schlimmste Szenario darin, dass die Datenbank Ihrer Anwendung möglicherweise gefährdet ist, jedoch nicht der gesamte Datenbankserver (wie dies der Fall wäre, wenn der Datenbankserver und Webserver waren dieselbe Maschine). Wenn Sie Ihre Datenbankverbindungszeichenfolgen verschlüsselt haben und der Hacker nicht geschickt genug ist, um sie zu entschlüsseln, haben Sie nur den Webserver verloren.

Kev
quelle
Aber Sie sichern die Datenbank, richtig? Andernfalls besteht das gleiche Risiko, dass Sie es aufgrund eines Hardwarefehlers oder eines selten aufgeregten Fehlers verlieren. Ein Angriff, der den Webserver tötet, führt von selbst zu Ausfallzeiten. Ausreichende Berechtigungen zum Hinzufügen von Datensätzen zu Tabellen reichen aus, um eine Site unbrauchbar zu machen.
Daniel Earwicker
Natürlich sichern Sie die Datenbank, das ist implizit, wo ich in meinem Beitrag etwas anderes vorgeschlagen habe.
Kev
1
Ja, aber die Schlussfolgerung ist daher, dass ein Angriff, der die Site zum Absturz bringen soll, dazu führen kann, dass die Webserverkonfiguration oder die Datenbank zerstört werden. Die Lösung ist für beide gleich: Wiederherstellung aus Sicherung. Ein spezieller Schutz der Datenbank ist (a) unnötig und (b) ohnehin unmöglich.
Daniel Earwicker
@Earwicker - Was ist mit all den anderen Datenbanken auf dem DB-Server? Sie haben nur eine Datenbank verloren.
Kev
8
Neben Daniel fehlt dir ein RIESIGER Punkt. Es geht nicht um eine Datenbanksicherung, sondern um die kompromittierten Daten. Wäre es für Ihre Kunden in Ordnung, dass "ein Hacker alle Ihre Kunden- und Verkaufsdaten gestohlen hat, aber keine Sorge, ich habe ein Backup." :)
Dylan - INNO Software
9

Ein Faktor, der noch nicht erwähnt wurde, ist der Lastausgleich. Wenn Sie zunächst den Webserver und die Datenbank als separate Computer betrachten, optimieren Sie für weniger Netzwerk-Roundtrips und es wird auch einfacher, einen zweiten Webserver oder eine zweite Datenbank-Engine hinzuzufügen, wenn die Anforderungen steigen.

Paul Tomblin
quelle
6

Ich kann aus eigener Erfahrung sagen, dass es oft eine gute Idee ist, den Webserver und die Datenbank auf verschiedenen Computern zu platzieren. Wenn Sie eine ressourcenintensive Anwendung haben, kann dies leicht dazu führen, dass die CPU-Zyklen auf dem Computer einen Spitzenwert erreichen und den Computer im Wesentlichen zum Stillstand bringen. Wenn Ihre Anwendung die Datenbank jedoch nur eingeschränkt nutzt, ist es wahrscheinlich keine große Sache, wenn sie einen Server gemeinsam nutzen.

Mr. Will
quelle
6

Wow, niemand spricht die Tatsache an, dass Sie SQL Server, wenn Sie es tatsächlich für 5.000 Dollar kaufen, möglicherweise für mehr als Ihre Webanwendung verwenden möchten. Wenn Sie Express verwenden, ist es Ihnen vielleicht egal. Ich sehe, dass SQL Server Datenbanken für 20 bis 30 Anwendungen ausführen, daher wäre es nicht klug, sie auf den Webserver zu stellen.

Zweitens hängt davon ab, für wen der Server ist. Ich arbeite für Finanzunternehmen und die Regierung. Wir verwenden also einen verrückten Schmerz im Arsch-Ansatz, nur Sprocs zu verwenden und Ports vom Webserver auf SQL zu beschränken. Also, wenn die Web-App gehackt wird. Der Hacker kann nur Sprocs aufrufen, da das Benutzerkonto auf dem Webserver gesperrt ist, um nur Sprocs in der Datenbank anzuzeigen / aufzurufen. Jetzt muss der Hacker herausfinden, wie er in die DB kommt. Wenn es auf dem Webserver gut ist, ist es leicht zu erreichen.

Jojo
quelle
5

Ich stimme Daniel Earwicker zu - die Sicherheitsfrage ist ziemlich fehlerhaft.

Wenn Sie ein Single-Box-Setup mit einem Webserver und nur der Datenbank für diesen Webserver haben, verlieren Sie sowohl den Webserver als auch nur die Datenbank für diese bestimmte Anwendung, wenn dieser Webserver kompromittiert ist.

Dies ist genau das Gleiche wie wenn Sie den Webserver bei einem 2-Server-Setup verlieren. Sie verlieren den Webserver und nur die Datenbank für diese bestimmte Anwendung.

Das Argument, dass bei einem Setup mit zwei Servern der Rest der Integrität des DB-Servers erhalten bleibt, ist irrelevant, da im ersten Szenario auch jeder andere Datenbankserver, der sich auf jede andere Anwendung bezieht (falls vorhanden), nicht betroffen ist - so wie sie sind, woanders gehostet werden.

Ähnlich wie bei der Frage von Kev: Was ist mit all den anderen Datenbanken, die sich auf dem DB-Server befinden? Sie haben nur eine Datenbank verloren. '

  • Wenn Sie eine Anwendung und eine Datenbank auf einem Server hosten würden, würden Sie nur Datenbanken auf diesem Server hosten, die sich auf diese Anwendung beziehen. Daher würden Sie in einem einzelnen Server-Setup im Vergleich zu einem Setup mit mehreren Servern keine zusätzlichen Datenbanken verlieren.

Im Gegensatz dazu könnten in einem 2-Server-Setup, in dem der Angreifer Zugriff auf den Webserver hatte und durch Proxy eingeschränkte Rechte (im besten Fall) auf den Datenbankserver, die Datenbanken jeder anderen Anwendung durch das Tragen gefährdet werden langsame, speicherintensive Abfragen oder Maximierung des verfügbaren Speicherplatzes auf dem Datenbankserver. Indem Sie die Anwendungen ähnlich wie bei der Virtualisierung in ihre eigenen Belange aufteilen, isolieren Sie sie auch aus Sicherheitsgründen auf positive Weise.

orientalisch
quelle
4

Dies hängt von der Anwendung und dem Zweck ab. Wenn Hochverfügbarkeit und Leistung nicht kritisch sind, ist es nicht schlecht, die Datenbank und den Webserver nicht zu trennen. Insbesondere unter Berücksichtigung der Leistungssteigerungen: Wenn die Anwendung eine große Anzahl von Datenbankabfragen durchführt, kann eine beträchtliche Menge an Netzwerklast entfernt werden, indem alles auf demselben System gespeichert wird, wodurch die Antwortzeiten niedrig gehalten werden.

Simon
quelle
2

Ich denke, das liegt daran, dass die beiden Maschinen normalerweise auf unterschiedliche Weise optimiert werden müssten. Abgesehen davon habe ich keine Ahnung, dass wir alle unsere Anwendungen mit der Serverdatenbank auf demselben Computer ausführen - vorausgesetzt, wir sind nicht öffentlich zugänglich -, aber wir hatten keine Probleme.

Ich kann mir nicht vorstellen, dass sich zu viele Menschen darum kümmern, dass ein Computer über beide kompromittiert wird, da die Webanwendung normalerweise fast uneingeschränkten Zugriff auf zumindest die Daten hat, wenn nicht auf das Schema in der Datenbank.

Interessiert an dem, was andere sagen könnten.

George Mauer
quelle
1
George, ich denke, Sie sollten sich auf Mark Bracketts Antwort beziehen. Die Sicherheit, die Ihr Webserver für die Datenbank hat, ist NICHT dieselbe wie wenn der Server separat wäre. Insbesondere wäre die "lokale Festplatte" nicht zugänglich. Wenn nur eine einzige Website (von vielen) gehackt worden wäre, hätten sie wahrscheinlich nur den Zugriff auf die Datenbank DIESER WEBSITE beeinträchtigt (es sei denn, Sie verwenden einen zu leistungsfähigen Benutzer für diese Verbindungszeichenfolge). Es gibt unzählige andere Szenarien, ich glaube nur nicht, dass ein Kommentar hier der richtige Ort für sie ist.
Dylan - INNO Software
2

Ich habe mir diesen Podcast angehört und es war amüsant, aber das Sicherheitsargument ergab für mich keinen Sinn. Wenn Sie Server A kompromittiert haben und dieser Server auf Daten auf Server B zugreifen kann, haben Sie sofort Zugriff auf die Daten auf Server B.

Daniel Earwicker
quelle
Nicht wahr. Sie haben Zugriff auf alle Daten oder Berechtigungen, die Box A für Box B hatte. In einem sicheren Setup bedeutet dies, dass Sie über die höchste DB-Zugriffsebene verfügen, über die die App in Box A verfügt. Sie haben jedoch keine Berechtigungen in der Datenbank oder Root auf dem Betriebssystem von Box B.
Mark Brackett
2
"Sie haben Zugriff auf alle Daten oder Berechtigungen, die Box A für Box B hatte" - das habe ich mit "Sie haben sofort Zugriff auf die Daten auf Server B" gemeint. Wenn sich das RDBMS in Box A befand und es keine Box B gab, welchen Unterschied würde es machen? NB. Wir gehen davon aus, dass Sie Box A so oder so bereits gehackt haben.
Daniel Earwicker
Wenn Sie in einer Konfiguration mit zwei Boxen das Prinzip der geringsten Berechtigungen anwenden und Box A (Web) gefährdet ist, ist das Schlimmste, was hätte passieren müssen, dass Sie die Datenbank in Box B verloren haben und nicht mehr.
Kev
1
Und in einer One-Box-Konfiguration haben Sie, wenn diese eine Box kompromittiert ist, diese eine Box verloren, die die DB enthält. Was ist der Unterschied?
Daniel Earwicker
2
Der Unterschied besteht darin, dass bei einer Konfiguration mit zwei Boxen, wenn der Webserver kompromittiert ist, Sie nur den Webserver und im schlimmsten Fall die Datenbank verloren haben. Der Rest der Integrität des DB-Servers bleibt erhalten.
Kev
2

Datenbanklizenzen sind nicht billig und werden häufig pro CPU berechnet. Durch die Trennung Ihrer Webserver können Sie daher die Kosten für Ihre Datenbanklizenzen senken.

Wenn Sie beispielsweise einen Server haben, der sowohl das Web als auch die Datenbank mit 8 CPUs ausführt, müssen Sie für eine 8-CPU-Lizenz bezahlen. Wenn Sie jedoch zwei Server mit jeweils 4 CPUs haben und die Datenbank auf einem Server ausführen, müssen Sie nur für 4 CPU-Lizenzen bezahlen

Ian Ringrose
quelle
Bitte erläutern Sie, wie sich dies auf eine Einsparung auswirkt.
John Saunders
1
John - er sagt, um die Leistung von 2 Computern zu erreichen, müssten Sie die Anzahl der Kerne verdoppeln, was die Lizenzkosten für SQL Server verdoppeln würde. Warum für SQL Server zusätzlich 10 bis 20.000 US-Dollar zahlen, wenn Sie nur die gleiche Leistung wie bei der Verwendung von zwei Computern erhalten?
Beep Beep
Nur wahr, wenn die Leistung / Ressourcennutzung (z. B. CPU) von den App-Servern und nicht vom DB-Server dominiert wird. Wenn die Datenbank 8 CPU benötigt, funktioniert es nicht.
Andreas Dietrich
1

Ein weiteres Problem ist, dass Datenbanken gerne den gesamten verfügbaren Speicher belegen und ihn für die Zeit reservieren, in der er verwendet werden soll. Sie können die Speicherbeschränkung erzwingen, dies kann jedoch den Datenzugriff erheblich verlangsamen.

HLGEM
quelle
-1

Das Argument, dass durch das Ausführen eines Datenbankservers auf einem Webserver ein echter Leistungsgewinn erzielt werden kann, ist ein fehlerhaftes Argument.

Da Datenbankserver Abfragezeichenfolgen verwenden und Ergebnismengen zurückgeben, sind die tatsächlich vom Datenserver zum Webserver fließenden Daten relativ gering, aber die zum Verarbeiten der Abfrage und Generieren der Ergebnismenge erforderliche Leistung ist relativ groß. Die Optimierung der Leistung um die Datenübertragungszeit herum ist daher eine Optimierung um das Falsche.

In Bezug auf die Sicherheit bietet es Vorteile, wenn sich der Datenserver auf einer anderen Box als der Webserver befindet. Ein solches Setup ist nicht das A und O der Sicherheit, aber es ist ein Schritt in die richtige Richtung.

In Bezug auf die Skalierbarkeit ist es einfach und relativ kostengünstig, Webserver hinzuzufügen und in Cluster zu packen, um den erhöhten Datenverkehr zu bewältigen. Es ist nicht so einfach und billig, Datenserver hinzuzufügen und zu gruppieren. Außerdem haben Webserver und Datenserver unterschiedliche Hardwareanforderungen, sodass mehrere Boxen die Skalierbarkeit verbessern.

Wenn Sie klein anfangen und nur eine Box haben, ist es ein guter Weg, virtuelle Maschinen zu verwenden. Wenn Sie den Webserver und den Datenserver auf verschiedenen VMs auf einem Host ausführen, erhalten Sie alle Vorteile separater Boxen zum Preis eines großen Boxpreises.

Dave Anderson
quelle
1
Die ursprüngliche Frage bezog sich auf Anwendungsserver, nicht unbedingt auf Webserver mit öffentlichem Internet.
João Bragança
-2

Das Betriebssystem ist eine weitere Überlegung. Während Ihre Datenbank möglicherweise größere Speicherplätze und damit UNIX benötigt, ist Ihr Webserver - oder genauer gesagt Ihr App-Server, da Sie nur zwei Ebenen erwähnen - möglicherweise .NET-basiert und erfordert daher Windows.

Chris Noe
quelle
Ich habe dies nicht abgelehnt, aber "Während Ihre Datenbank möglicherweise größere Speicherplätze und daher UNIX benötigt" - Wenn Sie 64-Bit-Fenster und 64-Bit-SQL ausführen, gibt es viel Speicher zum Spielen.
Kev
Entschuldigung, Speicher war als Beispiel für die Bereitstellung für Split-Betriebssysteme gedacht. Andere Gründe sind: Leistung, Sicherheit, Unternehmensstandards / Lizenzierung, Anbietersupport usw.
Chris Noe
-6

OK! Hier ist die Sache, es ist sicherer, Ihren DB Server auf einem anderen Computer und Ihre Anwendung auf dem Webserver zu installieren. Anschließend verbinden Sie Ihre Anwendung über einen Weblink mit der Datenbank. Danke.

Muroko
quelle
3
warum ist es sicherer?
Bryan Chen