suchen
HeimDatenbankMySQL-TutorialDetaillierte Einführung in die dynamische Maskierung von SQLServer (Codebeispiel)

Dieser Artikel bietet Ihnen eine detaillierte Einführung (Codebeispiel) über die dynamische Maskierung von SQL Server. Ich hoffe, dass er Ihnen weiterhilft .

Dynamic Data Masking (DDM) ist eine neue Funktion, die in SQL Server 2016 eingeführt wurde. Der Zweck besteht darin, Personen ohne Erlaubnis den Zugriff auf private Informationen zu verwehren. Admin-Benutzer können entscheiden, welche Felder maskiert werden müssen. Wie können sie also maskiert werden, ohne den Anwendungscode zu ändern? Es muss außerdem sichergestellt werden, dass die Daten unabhängig davon, wie auf sie zugegriffen wird, konsistent sind.

Dies ist eine Funktion, die zum ersten Mal in Azure SQL-Datenbank eingeführt wurde. Sie wird von Benutzern in der Cloud getestet und wurde auf das lokale Produkt migriert. Ich denke, dass viele weitere neue Funktionen diesem Ansatz folgen werden (cloudlokal).

Es ist zu beachten, dass es sich wie bei meiner vorherigen Datensicherheit auf Zeilenebene um datensicherheitsbezogene Inhalte handelt (empfohlene Kurse: MySQL-Tutorial)

Spalte Daten Maskierung

Erstellen Sie zunächst eine Tabelle mit einer maskierten Version einiger Daten. Ich werde einem der Felder beginnend in der Tabellendefinition eine Maske hinzufügen. Beachten Sie, dass Sie dazu das Format „Maske mit ()“ nach dem Datentyp, aber vor den Optionen NULL und Standard verwenden müssen. In Klammern ist FUNCTION = „anzugeben, das unsere Funktion angibt. In den Anführungszeichen geben wir an Die CREATE TABLE-Anweisung lautet wie folgt:

CREATE TABLE MyTable
  ( MySSN VARCHAR (10) MASKED WITH (FUNCTION = 'default()') DEFAULT ('0000000000' )
 , MyName VARCHAR (200) DEFAULT ( ' ')
 , MyEmail VARCHAR (250) DEFAULT ( '')
 , MyInt int
)
GO
INSERT dbo. MyTable
 ( MySSN , MyName, MyEmail , MyInt)
VALUES
 ( '1234567890', 'Steve Jones', 'SomeSteve@SomeDomain.com', 10 )

Wenn der Ersteller diese Tabelle abfragt, werden mir beim Einfügen alle Daten nicht angezeigt Erstellen Sie nun einen normalen Benutzer ohne hohe Berechtigungen, um die Daten in der Tabelle anzuzeigen Sehen Sie, was der Unterschied ist.

Wir können sehen, dass die erste Spalte maskierte Daten enthält. Dadurch wird erreicht, was ich möchte, nämlich die Daten vor Nichtprivilegien zu verbergen Beachten Sie, dass die Daten auf der Festplatte nicht geändert werden, bis sie an den nicht privilegierten Benutzer zurückgegeben werden.

Ich kann sehen, dass dies im letzten Teil des Ausführungsplans geschieht Benutzerplan unter Verwendung derselben Abfrage.


Es gibt ein benutzerdefiniertes Maskenformat, mit dem Sie steuern können, was für eine E-Mail-Adresse angezeigt wird, und eine Zufallszahlenmaske Ich werde diese Probleme in einem anderen Artikel ausführlich besprechen.

Es ist jetzt möglich, mithilfe der E-Mail-Maske eine Maske zu einer anderen Spalte hinzuzufügen. Die Abfrageergebnisse sind wie folgt:

Wie wir sehen können, erhalte ich unterschiedliche Masken aus verschiedenen Zeilen, jede Maske wird auf bestimmte Zeilendaten angewendet

Benutzern erlauben, maskierte echte Daten anzuzeigen.

Es gibt eine neue DDM-Berechtigung. Dies ist die UNMASK-Berechtigung, die wie jede andere Berechtigung funktioniert Erstellen Sie einen neuen Benutzer mit denselben Berechtigungen wie der vorhandene Benutzer. Dann werde ich die Tabelle abfragen. Ähnliche Ergebnisse wie zuvor. Dann schalten wir die Maske mit der Berechtigung ein Wir können sehen, dass die Daten genauso angezeigt werden wie für privilegierte Benutzer. Für NewTester-Benutzer sind alle Daten „entlarvt“.

Allerdings gibt es einen Nachteil. UNMASK-Berechtigungen werden dem Benutzer datenbankweit gewährt. Es gibt keine Granularität nach Tabelle oder Spalte. Wenn ein Benutzer über UNMASK verfügt, kann er alle Daten in in der Datenbank gespeicherten Tabellen mit der SELECT-Berechtigung anzeigen. Wir können dies sehen, indem wir die erste Tabelle mit Newtest abfragen.

Maske entfernen

Der Code lautet wie folgt:

CREATE USER mytest WITHOUT LOGIN
GRANT SELECT ON mytable TO mytest
Sobald ich das mache, sieht der Benutzer direkt die echten Daten.

Die Daten in der Spalte „MySSN“ sind nicht maskiert, aber die Daten in „MyEmail“ und „MyID“ sind weiterhin maskiert

Zusammenfassung

Dynamic Data Masking ist eine großartige neue Funktion, die den Schutz von Daten vor nicht privilegierten Benutzern erleichtern soll. Dies kann in der Datenbank implementiert werden, ohne dass Änderungen am Anwendungscode erforderlich sind, sodass Sie vertrauliche Daten von Anwendungsbenutzern mit minimalem Kosten- und Aufwand maskieren können. Ich möchte Sie auch daran erinnern, dass es sich hierbei nicht um eine echte Sicherheitsfunktion handelt. Die auf Datenträgern und Tabellen gespeicherten Daten werden in keiner Weise verändert. Hierbei handelt es sich immer noch um reine Textdaten, und wenn Benutzer das System abfragen können, können sie möglicherweise immer noch Ihre Daten abfragen und deren Wert ermitteln.

Auf jeden Fall ist diese Funktion zweifellos hilfreich, insbesondere für Systeme, die eine Datenentschlüsselung erfordern. Natürlich haben sich auch die Funktionen seit 17 stark weiterentwickelt. Ich werde sie bei Gelegenheit weiterhin vorstellen.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die dynamische Maskierung von SQLServer (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:博客园. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Was sind die verschiedenen Speichermotoren in MySQL?Was sind die verschiedenen Speichermotoren in MySQL?Apr 26, 2025 am 12:27 AM

MysqloffersVariousStorageEngines, EverySuitedfordifferentusecases: 1) InnoDbisidealforApplicationsNeedingaCidComplianceandHighConcurrency, SupportingingTransactions und MisseractersactionSactions.2) MyisamisBestforread-Heavyworks, Fehlen von Abladungen, mangelndtransaktionen

Was sind einige gängige Sicherheitslücken in MySQL?Was sind einige gängige Sicherheitslücken in MySQL?Apr 26, 2025 am 12:27 AM

Zu den allgemeinen Sicherheitslücken in MySQL gehören die SQL -Injektion, schwache Passwörter, unsachgemäße Berechtigungskonfiguration und eine nicht updierte Software. 1. SQL -Injektion kann durch Verwendung von Vorverarbeitungsanweisungen verhindert werden. 2. Schwache Passwörter können vermieden werden, indem Sie starke Kennwortstrategien verwenden. 3. Eine unsachgemäße Berechtigungskonfiguration kann durch regelmäßige Überprüfung und Anpassung der Benutzerberechtigungen behoben werden. 4. Die nicht updierte Software kann durch regelmäßiges Überprüfen und Aktualisieren der MySQL -Version gepatcht werden.

Wie können Sie langsame Abfragen in MySQL identifizieren?Wie können Sie langsame Abfragen in MySQL identifizieren?Apr 26, 2025 am 12:15 AM

Das Identifizieren langsamer Abfragen in MySQL kann erreicht werden, indem langsame Abfrageprotokolle aktiviert und Schwellenwerte festgelegt werden. 1. Aktivieren Sie langsame Abfrageprotokolle und setzen Sie Schwellenwerte. 2. Sehen und analysieren Sie langsame Abfrageprotokolldateien und verwenden Sie Tools wie MySQLDUMPSLOW oder PT-Query-Digest für eingehende Analysen. 3. Die Optimierung langsamer Abfragen kann durch Indexoptimierung, Umschreiben von Abfragen und Vermeidung der Verwendung von Select*erreicht werden.

Wie können Sie die Gesundheit und Leistung von MySQL Server überwachen?Wie können Sie die Gesundheit und Leistung von MySQL Server überwachen?Apr 26, 2025 am 12:15 AM

Um die Gesundheit und Leistung von MySQL -Servern zu überwachen, sollten Sie auf Systemgesundheit, Leistungsmetriken und Abfrageausführung achten. 1) Überwachen Sie die Systemgesundheit: Verwenden Sie die Befehle von Top-, HTOP- oder ShowglobalStatus, um CPU-, Speicher-, Festplatten -E/A- und Netzwerkaktivitäten anzuzeigen. 2) Leistungsindikatoren verfolgen: Überwachen Sie die Schlüsselindikatoren wie die Abfragennummer pro Sekunde, die durchschnittliche Abfragezeit und den Cache -Hit -Rate. 3) Optimierung der Abfrageausführung sicherstellen: Aktivieren Sie langsame Abfragenprotokolle, zeichnen und optimieren Sie Abfragen, deren Ausführungszeit den festgelegten Schwellenwert überschreitet.

Vergleichen und kontrastieren Sie MySQL und Mariadb.Vergleichen und kontrastieren Sie MySQL und Mariadb.Apr 26, 2025 am 12:08 AM

Der Hauptunterschied zwischen MySQL und Mariadb ist Leistung, Funktionalität und Lizenz: 1. MySQL wird von Oracle entwickelt und Mariadb ist seine Gabel. 2. Mariadb kann in Umgebungen mit hoher Last besser abschneiden. 3.MariADB bietet mehr Speichermotoren und Funktionen. 4.Mysql nimmt eine doppelte Lizenz an, und Mariadb ist vollständig Open Source. Die vorhandene Infrastruktur, Leistungsanforderungen, funktionale Anforderungen und Lizenzkosten sollten bei der Auswahl berücksichtigt werden.

Wie ist die Lizenzierung von MySQL mit anderen Datenbanksystemen verglichen?Wie ist die Lizenzierung von MySQL mit anderen Datenbanksystemen verglichen?Apr 25, 2025 am 12:26 AM

MySQL verwendet eine GPL -Lizenz. 1) Die GPL -Lizenz ermöglicht die freie Verwendung, Änderung und Verteilung von MySQL, aber die geänderte Verteilung muss GPL entsprechen. 2) Gewerbelizenzen können öffentliche Änderungen vermeiden und für gewerbliche Anwendungen geeignet sind, die Vertraulichkeit erfordern.

Wann würden Sie InnoDB über MyISAM wählen und umgekehrt?Wann würden Sie InnoDB über MyISAM wählen und umgekehrt?Apr 25, 2025 am 12:22 AM

Die Situationen bei der Auswahl von InnoDB anstelle von MyISAM umfassen: 1) Unterstützung der Transaktion, 2) hohe Genauigkeitsumgebung, 3) hohe Datenkonsistenz; Umgekehrt umfasst die Situation bei der Auswahl von MyISAM: 1) hauptsächlich Lesen von Operationen, 2) Es ist keine Transaktionsunterstützung erforderlich. InnoDB ist für Anwendungen geeignet, die eine hohe Datenkonsistenz und Transaktionsverarbeitung erfordern, z. B. E-Commerce-Plattformen, während MyISAM für lessintensive und transaktionsfreie Anwendungen wie Blog-Systeme geeignet ist.

Erklären Sie den Zweck von Fremdschlüssel in MySQL.Erklären Sie den Zweck von Fremdschlüssel in MySQL.Apr 25, 2025 am 12:17 AM

In MySQL besteht die Funktion von Fremdschlüssel darin, die Beziehung zwischen Tabellen herzustellen und die Konsistenz und Integrität der Daten zu gewährleisten. Fremdeschlüssel behalten die Wirksamkeit von Daten durch Referenzintegritätsprüfungen und Kaskadierungsvorgänge bei. Achten Sie auf die Leistungsoptimierung und vermeiden Sie bei der Verwendung häufige Fehler.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software