So stellen Sie sicher Referentielle Integrität der SQL Daten zu schützen

Sie können denken, dass, wenn Sie steuern können, wer sieht, erstellt, ändert und löscht Daten in einer SQL-Tabelle, sind Sie gut geschützt. Gegen die meisten Bedrohungen, Sie sind. Ein erfahrener Hacker kann jedoch nach wie vor das Haus plündern durch eine indirekte Methode.

Eine richtig ausgelegt relationalen Datenbank hat referentielle Integrität, was bedeutet, dass die Daten in einer Tabelle in der Datenbank mit den Daten in allen anderen Tabellen in Einklang steht. Um sicherzustellen, referentielle Integrität, Datenbankdesigner gelten Einschränkungen Tabellen, die die Datennutzer beschränken können in die Tabellen ein.

Aber hier ist der Nachteil dieses Schutzes: Wenn Sie eine Datenbank mit referenziellen Integrität haben, kann ein Benutzer erstellen möglicherweise eine neue Tabelle, die als Fremdschlüssel eine Spalte in einer vertraulichen Tabelle verwendet. Diese Spalte dient dann als Link, durch die jemand möglicherweise vertrauliche Informationen zu stehlen. Hoppla.

Nehmen wir zum Beispiel, dass Sie eine berühmte Wall Street Aktienanalyst sind. Viele Menschen glauben an die Richtigkeit Ihrer Aktienauswahl, so, wenn Sie einen Vorrat an Ihre Abonnenten empfehlen, kaufen viele Leute, die Lager, und sein Wert steigt.

Sie behalten Ihre Analyse in einer Datenbank, die eine Tabelle enthält den Namen VIER-STERN. Ihre Top-Empfehlungen für Ihren nächsten Newsletter sind in dieser Tabelle. Natürlich beschränken Sie den Zugriff auf VIER-STERN so dass Wort nicht auslaufen zu der investierenden Öffentlichkeit, bevor Sie Ihre zahlende Abonnenten den Newsletter zu erhalten.

Du bist immer noch verwundbar, aber wenn jemand eine neue Tabelle erstellen können, die den Bestand Namenfeld verwendet von VIER-STERN als Fremdschlüssel, wie im folgenden Befehl ein Beispiel gezeigt:

CREATE TABLE HOT_STOCKS (Aktien CHARACTER (30) LITERATUR FOUR_STAR) -

Der Hacker kann nun versuchen, den Namen jedes Aktie an der New York Stock Exchange, American Stock Exchange und der NASDAQ in die Tabelle einzufügen. Diese Einsätze, die sagen, der Hacker gelingt, die Bestände, die Bestände entsprechen, die Sie in Ihrer vertraulichen Tabellennamen. Es dauert nicht lange dauern, bis die Hacker Ihre gesamte Liste der Bestände zu extrahieren.

Sie können sehr vorsichtig über die Eingabe Aussagen ähnlich der folgenden, sich von Hacks wie das im vorhergehenden Beispiel zu schützen:

GRANT REFERENCES (Lager) ON FOUR_STARTO SECRET_HACKER-

Dies ist eindeutig eine Übertreibung. Sie würden nie irgendeine Art von Zugang zu einer kritischen Tabelle zu einem nicht vertrauenswürdigen Person gewähren, würden Sie? Nicht, wenn man realisiert, was Sie taten. Allerdings Hacker sind heute nicht nur technisch klug. Sie sind auch Meister der Menschen irreführend zu tun, was sie würden normalerweise nicht tun. Rampe bis zur vollen Alarm, wenn eine glatte Talker etwas in Bezug auf Ihre vertraulichen Informationen erwähnt.

Vermeiden Sie Privilegien Menschen gewähren, die sie missbrauchen kann. Es stimmt, die Leute kommen nicht mit Garantien auf ihren Stirnen gedruckt. Aber wenn Sie nicht Ihr neues Auto zu einer Person für eine lange Reise zu verleihen, sollten Sie wahrscheinlich gewähren ihm nicht die LITERATUR Privileg auf eine wichtige Tabelle, auch nicht.

Das obige Beispiel bietet einen guten Grund für die Aufrechterhaltung der sorgfältige Kontrolle der LITERATUR Privileg. Hier sind zwei weitere Gründe, warum sollten Sie eine sorgfältige Kontrolle der Aufrechterhaltung LITERATUR:

  • Wenn die andere Person gibt eine Einschränkung in HOT STOCKS durch eine mit BESCHRÄNKEN Option und Sie versuchen, eine Zeile aus Ihrer Tabelle zu löschen, sagt das DBMS Sie, dass Sie nicht können, da dies zu einer referenziellen Integrität verletzen würde.

  • Wenn Sie wollen, dass die zu verwenden FALLEN Befehl Tisch zu zerstören, finden Sie Sie die andere Person erhalten müssen FALLEN seine Beschränkung (oder seinem Tisch) zuerst.

Unterm Strich: eine andere Person Aktivieren der Integritätsbedingungen auf Ihrer Tabelle an, nicht stellt nur eine mögliche Sicherheitsverletzung, sondern bedeutet auch, dass der andere Benutzer manchmal in den Weg kommt.

Menü