SQL Server ist kaputt?

Hallo,

ich habe ein ziemlich fehlerhaftes SQL Statement (transaction-Statement) in SQL Management Studio abgesetzt. Nun funktioniert irgend etwas nicht mehr so das mir Schnittstellen QUues volllaufen. Ein weiterer Faktor ist das mir das SQL-Server Management Studio (läuft auf einem WIndows-Server) viel Arbeitspeicher braucht SQL Server Windows NT - 64Bit verbraucht über 1 GB. Weiß jemmand was man da machen kann oder warum das so romort?

Das abgesetzte Statement

BEGIN TRANSACTION;
IF EXISTS (SELECT A.PATIENTENID, A.FALLID, A.BEFUNDID, A.SOURCE, A.UNTERSUCHUNGSART, A.UNTERSUCHUNGSZEIT, A.BEFUNDTEXT, A.AUFTRAGSNR,B.GEB, B.GESCHLECHT, B.NACHNAME, B.VORNAME, C.MERKMALTEXT,D.AUFTRAGSART,D.AUFTRAGSTATUS,D.FD, E.DOCID, F.ORT, F.FD FROM dbo.BEFUND as A, dbo.PATIENT as B, PATMERKMAL as C, LABOR_AUFTRAG as D, dbo.HCMDOC as E, dbo.BEHANDLUNG as F WHERE BEFUNDID=BEFUNDID )
BEGIN
UPDATE dbo.BEFUND SET 
PATIENTENID=PATIENTENID,
FALLID=FALLID,
SOURCE=SOURCE,
UNTERSUCHUNGSART=UNTERSUCHUNGSART,
UNTERSUCHUNGSZEIT=UNTERSUCHUNGSZEIT,
BEFUNDTEXT=BEFUNDTEXT,
AUFTRAGSNR=AUFTRAGSNR
WHERE BEFUNDID=BEFUNDID;
END
ELSE
BEGIN
INSERT INTO dbo.BEFUND (PATIENTENID,FALLID,BEFUNDID,SOURCE,UNTERSUCHUNGSART,UNTERSUCHUNGSZEIT,BEFUNDTEXT,AUFTRAGSNR) 
VALUES ('122','8753','45775','Source','uart','4665','Befundtext','094z74');
END
IF NOT EXISTS (SELECT 1 FROM dbo.SYSTEM WHERE NAME=SOURCE )
BEGIN
INSERT INTO dbo.SYSTEM (NAME) 
VALUES (SOURCE);
END
SQL, Datenbank, SQL-Server
Python Skript als Systemctl Service: Was beachten?

Hallo, ich habe ein paar grundlegende Fragen darüber wie genau die Systemctl Services unter Linux (Ubuntu Server ohne GUI) funktionieren.

Hintergrund: Ich habe ein Pyhton Skript, welches innerhalb einer virtuellen Python Umgebung fehlerfrei funktioniert und das macht was es soll (sich als Client auf einem MQTT Server anmelden und Daten in einen SQL Server schreiben). Das Skript soll beim Hochfahren des entsprechenden PCs immer automaisch im Hintegrund ausgeführt werden, dafür möchte ich das ganze als Systemctl Service benutzen. Wenn ich das Skript aber als Service anlege funktioniert es nicht mehr (Daten werden nicht gespeichert) und ich habe nicht wirklich Ideen wie ich mein Problem debuggen soll, da auch der Log vom Service nicht auffällig ist. Dort steht immer nur Service Start Successfull beim Hochfahren und Service Stop beim Runterfahren, aber keine Fehlermeldungen oder der gleichen.

2 Ich habe letztendlich 2 Fragen zum generellen Verständnis, die mich hoffentlich meinem Fehler ein Stückchen näher bringen würden:

  1. Wo müssen verwendete Python Module installiert sein? Bzw. wie kann man den Ort, an dem Systemctl nach den Modulen schaut angezeigt und verändert werden?
  2. Innerhalb des Skripts nutze ich die Client.loopforever() Funktion aus dem paho-mqtt Modul, d.h. wird das Skript einmal gestartet, läuft es ohne jemals zu enden. Ist diese Charakteristik problematisch innerhalb des Service Kontextes? Ruft der Service das Skript periodisch auf und könnte ich mir somit einen solchen Dauerloop sparen? Und wenn das so ist, kann man die Periode der Skriptaufrufe anpassen?
Server, Linux, Service, Ubuntu, Python, SQL-Server, Ubuntu Server
C# User Login: Passwort-Hash vergleichen?

Hallo,

ich programmiere eine Anwendung, in der man Adressen mit SQL-Server verwalten kann. Man kann Benutzer anlegen und sich mit denen beim Start der Anwendung einloggen.

Nun möchte ich das Passwort hashen. Beim Erstellen des Benutzers wird bereits ein Hashwert generiert und in der Passwort-Spalte in der Datenbank angezeigt. Beim Einloggen soll auch das Passwort gehasht werden und dann der Hash vom Einloggen mit dem aus der Datenbank auf Übereinstimmung verglichen werden.

Ich habe mich an folgendem Tutorial orientiert: https://dotnetcodr.com/2017/10/26/how-to-hash-passwords-with-a-salt-in-net-2/

Ich generiere also immer einen zufälligen Hashwert und das auch beim Einloggen. Wenn ich dann also den Hash vom Einloggen mit dem aus der Datenbank pvergleiche, können die nie übereinstimmen, weil eben bei beiden immer ein zufälliger Wert generiert wird.

Hash (beim Erstellen des Benutzers):

public HashWithSaltResult HashWithGenericSalt(string password, int saltLength, HashAlgorithm hashAlgo)
{
    RNG rng = new RNG();
    byte[] saltBytes = rng.GenerateRandomCryptographicBytes(saltLength);
    byte[] passwordAsBytes = Encoding.UTF8.GetBytes(password);
	List<byte> passwordWithSaltBytes = new List<byte>();

    passwordWithSaltBytes.AddRange(saltBytes);
    passwordWithSaltBytes.AddRange(passwordAsBytes);
    byte[] digestBytes = hashAlgo.ComputeHash(passwordWithSaltBytes.ToArray());

    return new HashWithSaltResult(Convert.ToBase64String(saltBytes), Convert.ToBase64String(digestBytes));
}

Hash (beim Einloggen):

public HashWithSaltResult HashWithSalt(string password, string salt, HashAlgorithm hashAlgo)
{
	// Wie hashe ich beim einloggen?
}

Einloggen:

using (var context = new PersonDbContext())
{
	var query = from p in context.Benutzers where textBoxVorname.Text == p.Vorname && textBoxName.Text == p.Name && HashResultSha512.Digest == p.PasswortDigest select p;
    HashPassword();
}

public void HashPassword()
{
    PasswordWithSaltHasher pwHasher = new PasswordWithSaltHasher();
    HashResultSha512 = pwHasher.HashWithSalt();

    db.CheckBenutzerLogin(textBoxVorname.Text, textBoxPasswort.Text, HashResultSha512.Salt, HashResultSha512.Digest);
}

Was muss ich in

public HashWithSaltResult HashWithSalt

schreiben, damit er den Hashwert aus der Datenbank verwendet und nicht wieder einen neuen Wert generiert?

SQL, programmieren, Passwort, Login, C Sharp, SQL-Server, Visual Studio

Meistgelesene Fragen zum Thema SQL-Server