Sign inSign up

kuomar/kuonensql

By kuomar

•Updated about 6 hours ago

T-SQL-Datenbankserver, kompatibel zu SQL Server (TDS, SSMS, EF Core), dazu Redis – .NET 10

Image
Developer tools
0

1.7K

kuomar/kuonensql repository overview

⁠KuonenSQL

Ein eigenständiger Datenbank-Server, der T-SQL spricht und sich für Clients wie Microsoft SQL Server verhält. SSMS, Microsoft.Data.SqlClient, Dapper und Entity Framework Core (UseSqlServer) verbinden sich ohne jede Änderung.

  • Geschrieben in .NET 10, der Kern hat keine einzige Fremdabhängigkeit.
  • Läuft unter Linux, Windows und macOS, auf x64 und ARM64.
  • Das Abbild ist multi-arch (linux/amd64, linux/arm64).

⁠Schnellstart

docker run -d --name kuonensql \
  -p 1433:1433 -p 6379:6379 \
  -v kuonensql-daten:/app/data \
  kuomar/kuonensql:latest

Anmelden mit SSMS oder einem beliebigen SQL-Server-Treiber:

FeldWert
Serverlocalhost,1433
Anmeldungsa (ohne Kennwort beim ersten Start)
Verschlüsselung„Serverzertifikat vertrauen“ bzw. TrustServerCertificate=True

Vor dem produktiven Einsatz ein Kennwort setzen:

ALTER LOGIN sa WITH PASSWORD = 'Ein-Starkes-Kennwort!2026';

⚠️ Ohne Volume auf /app/data gehen die Daten beim Neuerstellen des Containers verloren.


⁠Funktionsumfang

⁠Protokoll und Werkzeuge
  • TDS-Protokoll auf Port 1433:
    • Pre-Login, Login7, TLS in allen Modi;
    • ohne eigenes Zertifikat ein selbstsigniertes, wie bei SQL Server;
    • Abbruch (Attention) auch mitten in einer Anweisung.
  • SSMS-kompatibel: Object Explorer, Eigenschaftsdialoge, „Skript generieren“, Protokoll-Viewer und der XEvent Profiler mit Livestrom.
  • Entity Framework Core: Migrationen, sys.*-Katalogsichten, OBJECT_ID() und sp_describe_first_result_set.
⁠T-SQL-Sprachumfang (Ziel: SQL Server 2025, Version 17.x)
  • Alle Datentypen von SQL Server 2022, dazu aus 2025 json und vector(n).
  • Exakte Arithmetik und alle Sortierungen (Collations).
  • Joins, Unterabfragen, CTEs, Fensterfunktionen, MERGE, OUTPUT, PIVOT/UNPIVOT.
  • Prozeduren, Funktionen, Trigger, Sichten, Cursor, TRY/CATCH, dynamisches SQL.
  • Schema-DDL mit Constraints, Indizes, berechneten Spalten und Sequenzen.
  • Aus SQL Server 2025 und ISO SQL:2023:
    • REGEXP_*-Funktionen;
    • JSON-Funktionen;
    • Property Graphs (AS NODE / AS EDGE, MATCH).
  • Transaktionen mit Savepoints und IMPLICIT_TRANSACTIONS.
  • Sperren und gleichzeitige Schreiber.
  • Ein Write-Ahead-Log (WAL) samt Datendateien und Kontrollpunkten.
⁠Sicherheit
  • Anmeldungen, Benutzer, Rollen und Berechtigungen (GRANT / DENY / REVOKE).
  • Integrierte Windows-Anmeldung.
  • Row-Level Security und Berechtigungen auf Spaltenebene.
  • Verschlüsselung im Ruhezustand: Hauptschlüssel, Zertifikate und symmetrische Schlüssel.
⁠Betrieb
  • BACKUP / RESTORE als echte Sicherung.
  • Getrennte Datenbanken mit eigenem Katalog.
  • Query Store mit Messwerten, die einen Neustart überleben.
  • Resource Governor mit Pools, Gruppen, CPU-Anteilen und Prozessor-Affinität.
  • Erweiterte Ereignisse (Extended Events).
  • Change Tracking und Change Data Capture.
  • SQL-Agent-Tabellen in msdb.
  • BULK INSERT, Formatdateien und OPENROWSET(BULK …).
  • Verbindungsserver (Linked Server) mit OPENQUERY, OPENROWSET und viergliedrigen Namen.
  • sp_invoke_external_rest_endpoint.
⁠Redis auf derselben Ablage (Port 6379)
  • Der Redis-Befehlssatz über RESP:
    • Zeichenketten, Listen, Hashes, Mengen und sortierte Mengen;
    • MULTI / EXEC / WATCH, Pipelining und Pub/Sub.
  • Jeder Redis-Schlüssel ist zugleich als Zeile im Schema redis per T-SQL lesbar: eine Datenbasis, zwei Sprachen.
⁠Prüfstand (Weboberfläche, Port 5299)
  • Ein zweiter Einstiegspunkt im selben Abbild.
  • Enthält Beispiele zum Ausprobieren, das Handbuch, eine Installationsanleitung und die Roadmap.

⁠Docker Compose

services:
  kuonensql:
    image: kuomar/kuonensql:latest
    restart: unless-stopped
    ports:
      - "1433:1433"
      - "6379:6379"
    volumes:
      - ./Daten/kuonensql:/app/data

  kuonensql-pruefstand:
    image: kuomar/kuonensql:latest
    working_dir: /app/playground
    command: ["Kuonen.KuonenSQL.Playground.dll"]
    ports:
      - "5299:5299"
    environment:
      - KUONENSQL_PLAYGROUND_URLS=http://+:5299
      - KUONENSQL_PLAYGROUND_ZIEL=kuonensql
    depends_on:
      - kuonensql

⁠Umgebungsvariablen

VariableBedeutungVorgabe
KUONENSQL_SORTIERUNGServer-Sortierung, jeder Name aus sys.fn_helpcollations()SQL_Latin1_General_CP1_CI_AS
KUONENSQL_DATEIFREIGABEWelche Ordner SSMS beim Durchsuchen sieht: Keine, Daten, Protokoll, Sicherung, Serverordner, AllesServerordner
KUONENSQL_VERSIONSTEXTEigener Text für @@VERSION (die Produktversion bleibt 17.0)leer
KUONENSQL_TLS_CERT_PATH / KUONENSQL_TLS_CERT_PASSWORDEigenes PFX-Zertifikat statt des selbstsignierten–

⁠Ports

PortDienst
1433TDS (SQL Server-Protokoll)
6379Redis (RESP)
5299Prüfstand (Web)

⁠Tags

  • latest: die neueste Fassung.
  • 1.<Meilenstein>.<n>: eine feste Fassung, z. B. 1.11.188.

⁠Qualität

Jede Fassung wird mit einer Testsuite von rund 2000 Tests geprüft. Verglichen wird differentiell gegen echte Microsoft-SQL-Server-Instanzen (2022 und 2025): Fehlernummern und Meldungstexte folgen dem Wortlaut des Originals.

⁠In Arbeit

  • MariaDB/MySQL-Protokoll (Port 3306) auf derselben Ablage.
  • PostgreSQL-Protokoll (Port 5432).
  • GraphQL mit einem Schema aus dem Katalog.
  • Weitere Leistungsarbeit.

KuonenSQL ist ein eigenständiges Produkt und steht in keiner Verbindung zu Microsoft. „SQL Server“ bezeichnet hier das Protokoll und den Befehlssatz, mit dem KuonenSQL kompatibel ist.

Tag summary

Content type

Image

Digest

sha256:0cf414c44…

Size

106 MB

Last updated

about 6 hours ago

docker pull kuomar/kuonensql