it-swarm.com.de

Warum beschränken einige Hosting-Unternehmen die zulässigen Zeichen in DB-Namen?

GoDaddy lässt nur Buchstaben und Zahlen in Datenbanknamen zu. Andere Hosting-Unternehmen haben ähnliche Einschränkungen. Könnte dahinter eine technische Motivation stecken?

3
Emanuil Rusev

Es kann mehrere Erklärungen geben.

Eines davon ist die Sicherheit. Es ist auf jeden Fall sicherer, Sonderzeichen zu verbieten, die während einer Abfrage möglicherweise falsch interpretiert werden. Aus Sicht des Endbenutzers wäre es natürlich am besten, diese Zeichen zuzulassen und sicher zu entkommen/zu zitieren, aber dieses Verhalten erhöht das Risiko, dass ein Entwickler tatsächlich vergisst, das System zu gefährden.

Auf der anderen Seite müssen Sie sich daran erinnern, dass Sie sich in einer gemeinsamen Umgebung befinden. Zeichen wie _ oder - werden häufig intern verwendet, um Konventionen festzulegen. Lassen Sie mich Ihnen ein Beispiel zeigen.

Angenommen, Ihr Benutzername in GoDaddy ist 345678 und Sie erstellen eine mysite -Datenbank. GoDaddy könnte beschließen, die endgültige Datenbank als 345678_mysite zu erstellen und diese Konvention intern in seiner Routing-Infrastruktur einzuhalten. Wenn Sie das interne Trennzeichen in Ihrem Datenbanknamen verwenden, werden möglicherweise die internen Konventionen ungültig, wenn die Datenbank USERNAME_DATABASE lautet.

4
Simone Carletti

Könnte dahinter eine technische Motivation stecken?

Sehr wahrscheinlich - theoretisch mySQL-Datenbanknamen können fast jedes Zeichen enthalten , aber da sie als Ordner auf Dateisystemebene gespeichert sind, kann ich sehen, warum man "komplizierte" Benennungsschemata vermeiden möchte, insbesondere in eine Massenhosting-Umgebung mit Tausenden von Kunden.

Man könnte jedoch argumentieren, dass der Unterstrich eine harmlose und nützliche Erweiterung dazu wäre. Erlaubt GoDaddy keine Unterstriche?

3
Pekka 웃

Dies liegt in der Regel daran, dass diese (Sonder-) Zeichen für bestimmte interne Zwecke reserviert sind und für die Verwendung in Datenbanken eine Syntaxanalyse erforderlich ist.

Like 'könnte in einer Abfrage verwendet werden, um eine LIKE-Klausel anzugeben. Wenn der Name der Tabelle/Datenbank dasselbe Zeichen hat und nicht analysiert wird, liegt ein Fehler in der Abfrage vor.

Indem sie die Verwendung dieser Zeichen einschränken, müssen sie die Namen nicht analysieren und den Zeichen nicht entkommen.

3
Jan S

Dies ist keine eigentliche Programmierfrage, und Sie sollten den Hosting-Anbieter fragen, aber hier ist meine Meinung.

Ich kann es dir ehrlich gesagt nicht sagen. Wenn Sie darüber nachdenken, beziehen Sie sich außerdem auf eine gemeinsam genutzte Hosting-Umgebung, die nicht für technisch versierte Anwender ausgelegt ist. Shared Hosting und die dafür bereitgestellten Tools richten sich außerdem an nicht-technische Personen, die eine einfache Verwaltung zu einem erschwinglichen Preis benötigen. Wenn Sie anfangen, nicht-alphanumerische Zeichen (nicht-A-Z0-9) einzugeben, sind diese Personengruppen in der Regel überfordert. Dies führt häufig zu größerer Frustration sowohl für den Kunden als auch für den Kundenservice, wenn Sie versuchen, Hilfe zu leisten. Ich weiß, dass es albern klingt, wenn jemand von mehr Flexibilität überwältigt wird, aber es ist wahr, es passiert in der realen Welt mit Kunden.

Oft werden diese Einschränkungen zur Vereinfachung für den Endbenutzer eingeführt. Für uns Techniker, die sich mehr auf dedizierte Server verlassen, gibt es in dieser Umgebung jedoch keine derartigen Einschränkungen, da wir diese selbst verwalten und der Hosting-Anbieter nicht wirklich viel Support oder Tools bereitstellen muss.

Ich nehme an, Sie könnten einfach eine E-Mail an GoDaddy oder einen anderen Hosting-Anbieter senden und ihn fragen, und er könnte möglicherweise eine Antwort geben oder auch nicht. Generell ist der Kundenservice für Hosting-Anbieter einfach, um es gelinde auszudrücken. (Es sei denn, Sie haben einen guten Anbieter wie GearHost, bei dem die Entwickler selbst Support leisten) oder einen anderen Nicht-Mainstream-Anbieter. Sie bieten in der Regel die Unterstützung, die für eine durchschnittliche Person ausreichend ist, während von technischen Mitarbeitern eher eine Selbstversorgung mit ihren Diensten erwartet wird.

Was MySQL betrifft, das fast alle Zeichen zulässt, denke ich, dass es eine wirklich schlechte Praxis und eine schlechte Designentscheidung des MySQL-Teams ist. Nehmen Sie zum Beispiel Folgendes:

new_schema.&^

Der tatsächliche Name im Dateisystem wird verschlüsselt:

[email protected]@[email protected]

Während es nett ist, dass Sie dies tun können, ist es immer noch schlechte Praxis. Wenn es sich nicht um ein Zeichen handelt, das in einem Dateinamen des Windows-Dateisystems unterstützt wird, sollte es nicht zulässig sein. Nur schreckliches Design in diesem Fall. Cool, flexibler, aber grauenvoll und unnötig.

3
David Anderson