Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
PostgreSQL Zugriff ohne npgsql
thetruedon
myCSharp.de - Member



Dabei seit:
Beiträge: 111

Themenstarter:

PostgreSQL Zugriff ohne npgsql

beantworten | zitieren | melden

verwendetes Datenbanksystem: PostgreSQL

Hallo
ich versuche gerade auf eine PostgreSQL Datenbank via TcpClient zuzugreifen. Dafür habe ich mir auch schon die Doku zum Message Flow und Message Formates angesehen aber ich bekomme einfach nicht heraus in welchem Format die Startup Message gesendet werden muss.

Ich habe:
Datenbank: AAA
Benutzer: BBB
Passwort: CCC

In der Doku steht zwar

Int32(Messagelänge)Int32(Protokollversion)String(Parameter)\0

Aber keinerlei auskunft wie die Parameter angegeben werden (parameter=value, parameter:value usw)

Im Netz findet man auch nur die Verwendung von NpgSql auf die ich aber nicht zurückgreifen kann.

Ich habe es schon mit diversen Varianten versucht aber bei allen bekomme ich die
Fehler
EFATAL: no PostgreSQL user name specified in startup packet\n\0

Auch wenn ich user=AAA (oder in anderen Formaten) angebe.

Kann mir jemand hier weiterhelfen?
Kommt ein Mann in die Wirtschaft und sagt zum Wirt: 16 Bit!
Sagt der Wirt: Das ist ein Wort!
private Nachricht | Beiträge des Benutzers
witte
myCSharp.de - Member



Dabei seit:
Beiträge: 955

beantworten | zitieren | melden

Hallo,

Allgemein gesagt könntest Du
* im Quelltext von npgsql nachsehen
* mit wireshark mitschneiden was npgsql sendet
private Nachricht | Beiträge des Benutzers
thetruedon
myCSharp.de - Member



Dabei seit:
Beiträge: 111

Themenstarter:

beantworten | zitieren | melden

Nichts dass ich in Wire Shark ansehen konnte enthielt auch nur ansatzweise etwas im Format

Int32 int32 String (Parameter Value)

Hier nocheinmal der Link zur Doku (siehe unten StartUpMessage)
Kommt ein Mann in die Wirtschaft und sagt zum Wirt: 16 Bit!
Sagt der Wirt: Das ist ein Wort!
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.306

beantworten | zitieren | melden

Was spricht gegen die Verwendung des BSD-lizenzierten NPGSQL? Du sagst nur "kann nicht".
Das alles selbst, alleine via TCP umzusetzen unterstützt Du glaube ich massiv.
private Nachricht | Beiträge des Benutzers
thetruedon
myCSharp.de - Member



Dabei seit:
Beiträge: 111

Themenstarter:

beantworten | zitieren | melden

Dagegen spricht nur Bürokratie die bei Kunden des öffentlichen Sektors leider immer wieder Schranken aufwirft. Ich habe Auflagen die unter anderem die Nutzung der NpgSql untersagen.
Ich bin mir nicht sicher weshalb.

Aber in dem Fall muss auch "nur" ein Startup gesendet werden alles andere wie Abfragen etc. ist nicht notwendig. Auch wenn es recht sinnfrei klingt. Deshalb dachte ich sollte es hier auch wenig Probleme geben aber es will mir einfach nicht gelingen.
Kommt ein Mann in die Wirtschaft und sagt zum Wirt: 16 Bit!
Sagt der Wirt: Das ist ein Wort!
private Nachricht | Beiträge des Benutzers
thetruedon
myCSharp.de - Member



Dabei seit:
Beiträge: 111

Themenstarter:

beantworten | zitieren | melden

Ich hab die Lösung gefunden:

Ich will mich z.B. als User AAA bei der Datenbank BBB anmelden

so sende ich:

Nachrichtlänge(31)Protokollversion(3)user\0AAA\0database\0BBB\0\0

was binär dann

\000\000\000\033\000\003\000\000user\000AAA\000database\000BBB\000\000

wobei natürlich auch die Buchstaben in Byte umgewandelt werden müssen. Das habe ich jetzt nur der Übersicht wegen in Buchstaben geschrieben.
Kommt ein Mann in die Wirtschaft und sagt zum Wirt: 16 Bit!
Sagt der Wirt: Das ist ein Wort!
private Nachricht | Beiträge des Benutzers
witte
myCSharp.de - Member



Dabei seit:
Beiträge: 955

beantworten | zitieren | melden

Zitat von thetruedon
Nichts dass ich in Wire Shark ansehen konnte enthielt auch nur ansatzweise etwas im Format
Doch, dann hättest Du gesehen dass die Strings nullterminiert sind.
private Nachricht | Beiträge des Benutzers