SQL Server - Datentyp 'Passwort'?

Hallo,

für ein paar Nutzer habe ich eine kleine Datenbank aufgesetzt. Frontend ist dabei Access, Backend ein SQL Server 2008 Express. Ich habe jetzt eine Tabelle mit Nutzerdaten, in der u.a. auch ein Kennwort gespeichert wird. Die Eingabe des Kennworts erfolgt über ein Formular, Datentyp des entsprechenden Feldes ist hierbei „Passwort“. Entsprechend wird die Eingabe mit Sternchen maskiert angezeigt.

In der Tabelle im SQL-Server wird das Kennwort aber im Klartext gespeichert und angezeigt. Selbst wenn das die Nutzer der Datenbank wissen, kann man davon ausgehen, dass der eine oder andere aus Faulheit ein Passwort einträgt, dass er auch sonst noch verwendet.

Jetzt möchte ich nicht in Versuchung kommen bei Gelegenheit bei der Arbeit mit der Datenbank diese Kennwörter zu sehen. Meine Frage ist, ob es ggf. beim SQL-Server irgendwo eine Möglichkeit gibt, einen Datentyp auf „Passwort“ zu stellen, damit in dem entsprechenden Feld nur Sternchen angezeigt werden und nicht das Kennwort im Klartext?

Natürlich könnte man auch das Kennwort irgendwie verschlüsseln oder ähnliche Späßchen machen - ist mir aber irgendwie zu aufwendig.

Ggf. kann man das ja irgendwo recht einfach so einstellen…

Grüße

Stefan

Hallo Stefan,

auch wenn ich diese SQL-Version nicht in Betrieb kenne: Es wird sowas nicht geben, da man die Leute nicht zwingen kann das Standardabfragetool zu nutzen. Das Paßwort ist also verschlüsselt ab zu legen, da nicht nur Deine Versuchung zählt.

MfG Georg V.

Hallo Georg,

so richtig hab ich deine Antwort jetzt nicht verstanden. Was bedeutet denn „da man die Leute nicht zwingen kann das Standardabfragetool zu benutzen“?

Ich habe einen SQL-Server in einem kleinen abgesicherten Intranet. Außer mir kennt sich mit der Technik niemand groß aus und wird auch nicht versuchen etwas zu manipulieren. In Access gibt es die Maskierung der Passwort-Eingabe… entsprechend wäre es ja durchaus denkbar, dass es so etwas ähnliches auch beim SQL Server gibt.

In das Thema „Verschlüsselung“ müsste ich mich dagegen neu einlesen - für 10 Nutzer lohnt es sich für mich aber nicht, da Kräfte reinzustecken (ich werd für die Arbeit sowieso nicht bezahlt).

Grüße

Stefan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Georg,

In das Thema „Verschlüsselung“ müsste ich mich dagegen neu
einlesen - für 10 Nutzer lohnt es sich für mich aber nicht, da
Kräfte reinzustecken…

Grüße

Stefan

Hallo,

Ich würde die Passwörter auch nicht verschlüsseln, sondern als Hash in die Datenbank ablegen (Ein Passwort muss ja nie „entschlüsselt“ werden). Ich kenne SQL - Server nicht, aber es wird sicher einer eingebaute Hash-Funktion geben, so dass du nichts neu schreiben musst.

>

  • Das ist bitter :smile:

Gruss

Hi

Ich würde die Passwörter auch nicht verschlüsseln, sondern als
Hash in die Datenbank ablegen (Ein Passwort muss ja nie
„entschlüsselt“ werden). Ich kenne SQL - Server nicht, aber es
wird sicher einer eingebaute Hash-Funktion geben, so dass du
nichts neu schreiben musst.

Genau, Hash ist der richtige Ansatz zum Speichern von Passwörtern. Das Einfügen geschieht etwa folgend:

INSERT INTO Users
( Name, Passwort )
VALUES
( @name, HASH(@pwd, 'sha1') );

Hier müssen @name und @pwd natürlich durch deine realen Werte ersetzt werden.
Neben SHA-1 gibt es noch MD5, das Passwortfeld muss für MD5 ein VARCHAR(32) und für SHA-1 ein VARCHAR(40) sein.

Grüße
m4tt3n

1 Like