[{"data":1,"prerenderedAt":966},["ShallowReactive",2],{"blog-de-download-your-supabase-backup":3,"blog-index-de":620},{"id":4,"title":5,"body":6,"category":577,"cover":578,"coverAlt":579,"description":580,"draft":581,"extension":582,"faq":583,"image":598,"keywords":599,"meta":609,"navigation":610,"ogTitle":5,"path":611,"published":612,"seo":613,"stem":614,"tldr":615,"updated":612,"__hash__":619},"blog_de\u002Fblog\u002Fdownload-your-supabase-backup.md","Warum du dein Supabase-Backup nicht herunterladen kannst",{"type":7,"value":8,"toc":563},"minimark",[9,13,21,24,29,46,127,135,139,147,150,163,169,173,181,202,205,235,240,244,247,255,258,262,265,271,291,305,309,318,328,335,342,366,369,373,376,393,398,401,415,423,427,430,443,450,458,462,493,497,502,543,556],[10,11,12],"p",{},"Du bist auf einem bezahlten Supabase-Tarif, also hast du Backups. Du öffnest\nDatabase, dann Backups, und da sind sie: eine Liste datierter Tageskopien, jede\nmit einem Restore-Button. Du suchst den Button, mit dem du dein Supabase-Backup\nherunterladen und irgendwo bei dir ablegen kannst, und es gibt keinen.",[10,14,15,16,20],{},"Kaputt ist nichts. Hier ist der Teil, den ältere Anleitungen immer noch falsch\ndarstellen: ",[17,18,19],"strong",{},"Auf einem aktuellen Projekt gibt es kein Tages-Backup zum\nHerunterladen."," Supabase hat seine täglichen Kopien auf eine andere Art von\nBackup umgestellt, eine, die Supabase für dich wiederherstellen und nicht\nherausgeben kann. Der Download-Button aus diesen Anleitungen gehörte zur älteren\nArt. Eine Datei, die du selbst hältst, machst du heute selbst, und es ist eine\nandere Art von Datei.",[10,22,23],{},"Am einfachsten stellst du dir den Unterschied mit deinem Handy vor. Das Backup,\ndas es jede Nacht von sich selbst macht, ist vollständig und exakt, und es kommt\nin einem Schritt zurück auf ein Handy, das im selben Konto angemeldet ist. Du\nkannst es nicht auf einem Laptop öffnen und deine Fotos herausholen. Für Fotos,\ndie du überall behalten kannst, exportierst du sie, und was du bekommst, ist ein\nOrdner mit ganz gewöhnlichen Dateien. Das tägliche Supabase-Backup ist jetzt die\nerste Art. Die Datei, die du halten kannst, ist die zweite.",[25,26,28],"h2",{"id":27},"kann-ich-mein-supabase-backup-herunterladen","Kann ich mein Supabase-Backup herunterladen?",[10,30,31,32,39,40,45],{},"Das tägliche nicht, wenn dein Projekt auf Postgres 15.8.1.079 oder neuer läuft.\nDie Backup-Dokumentation von Supabase sagt, dass\n",[33,34,38],"a",{"href":35,"rel":36},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fbackups",[37],"nofollow","alle Projekte ab dieser Version physische Backups nutzen",",\nund die Troubleshooting-Hinweise sagen, dass Supabase mit physischen Backups\n",[33,41,44],{"href":42,"rel":43},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Ftroubleshooting\u002Fdownload-logical-backups",[37],"die herunterladbare Backup-Datei nicht mehr erzeugt",".\nWiederherstellen kannst du diese Kopien, wann immer du willst. Mitnehmen kannst\ndu keine.",[47,48,49,64],"table",{},[50,51,52],"thead",{},[53,54,55,58,61],"tr",{},[56,57],"th",{},[56,59,60],{},"Das tägliche Supabase-Backup (physisch)",[56,62,63],{},"Ein Dump, den du selbst ziehst (logisch)",[65,66,67,79,95,106,117],"tbody",{},[53,68,69,73,76],{},[70,71,72],"td",{},"Was es ist",[70,74,75],{},"Ein Snapshot der Dateien, die Postgres auf der Platte hält",[70,77,78],{},"SQL: Anweisungen zum Neuaufbau jeder Tabelle, dann die Zeilen",[53,80,81,84,87],{},[70,82,83],{},"Wer es wiederherstellt",[70,85,86],{},"Supabase, wenn du auf Restore drückst",[70,88,89,90,94],{},"Du, mit ",[91,92,93],"code",{},"psql",", in ein beliebiges Postgres",[53,96,97,100,103],{},[70,98,99],{},"Wohin es gehen kann",[70,101,102],{},"Dieses Projekt oder ein neues in derselben Region",[70,104,105],{},"Ein anderes Projekt, ein anderes Konto, dein Laptop, dein Server",[53,107,108,111,114],{},[70,109,110],{},"Kannst du es herunterladen",[70,112,113],{},"Nein",[70,115,116],{},"Es ist bereits eine Datei",[53,118,119,122,124],{},[70,120,121],{},"Übersteht es den Verlust des Kontozugangs",[70,123,113],{},[70,125,126],{},"Ja, wenn du es woanders aufbewahrst",[10,128,129,130,134],{},"Die letzte Zeile solltest du zweimal lesen. Supabase schreibt, dass beim\nLöschen eines Projekts alle zugehörigen Daten entfernt werden,\n",[33,131,133],{"href":35,"rel":132},[37],"einschließlich aller in S3 gespeicherten Backups",".\nWer das Projekt löscht, löscht die Tageskopien im selben Schritt mit.",[25,136,138],{"id":137},"was-ist-der-unterschied-zwischen-einem-physischen-und-einem-logischen-backup","Was ist der Unterschied zwischen einem physischen und einem logischen Backup?",[10,140,141,142,146],{},"Woher die Kopie genommen wird. Ein physisches Backup kopiert die Dateien, die\nPostgres selbst auf die Platte schreibt, was Supabase als\n",[33,143,145],{"href":35,"rel":144},[37],"Snapshot des zugrunde liegenden Datenbankverzeichnisses","\nbeschreibt. Ein logisches Backup bittet die Datenbank, sich selbst in SQL zu\nbeschreiben, Tabelle für Tabelle und Zeile für Zeile, und schreibt diese\nBeschreibung in eine Textdatei.",[10,148,149],{},"Jede kann etwas anderes gut. Eine physische Kopie ist schnell gemacht und\nschnell zurückgespielt, und sie kommt genau so zurück, wie sie war. Lesen kann\nsie nur dieselbe Art von Postgres-Installation, aus der sie stammt, und bei\nSupabase heißt das: Supabases eigene Maschinen. Eine logische Kopie spielt sich\nlangsamer ein und braucht mehr Platz, und jedes Postgres derselben oder einer\nneueren Version kann sie laden. Es ist wieder das Handy-Backup und der\nexportierte Ordner, und nur das zweite ist eine Datei, die du halten kannst.",[10,151,152,153,158,159,162],{},"Der Download-Button, an den sich viele erinnern, war die logische Art. Die\n",[33,154,157],{"href":155,"rel":156},"https:\u002F\u002Fgithub.com\u002Fsupabase\u002Fsupabase\u002Fblob\u002Fb34da8d7eca562be5e1341413d140dd76ee19f25\u002Fapps\u002Fdocs\u002Fcontent\u002Fguides\u002Fplatform\u002Fbackups.mdx",[37],"eigene Dokumentation von Supabase aus dem Jahr 2025","\nbeschrieb, dass der tägliche Job ",[91,160,161],{},"pg_dumpall"," ausführte, die SQL-Datei zippte\nund ablegte, und dass physische Backups die Datenbank weniger belasten und\ndeine Tabellen nicht lange sperren. Auf derselben Seite stand, dass physische\nKopien sich nicht im Backups-Bereich des Dashboards herunterladen lassen.",[164,165],"diagram",{"alt":166,"caption":167,"src":168},"Zwei Bahnen. In der oberen erreicht ein versiegelter Snapshot in einer gestrichelten Supabase-Grenze zwei Projekte darin, beide mit Haken, und ein dritter Pfeil wird an der Grenze durchgestrichen, vor einem Supabase-Projekt, einem Laptop und einem Server in Grau. In der unteren erreicht eine einfache Datei außerhalb jeder Grenze dieselben drei, beleuchtet und mit Haken.","Die Tageskopie kann zurück zu Supabase und sonst nirgendwohin. Ein Dump, den du selbst ziehst, geht überall hin, wo ein Postgres läuft.","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fwhere-each-copy-can-go-1600x640.png",[25,170,172],{"id":171},"wie-finde-ich-heraus-welche-art-mein-projekt-hat","Wie finde ich heraus, welche Art mein Projekt hat?",[10,174,175,176,180],{},"Such auf der Backups-Seite nach einer Download-Möglichkeit. Öffne in deinem\nSupabase-Dashboard Database, dann Backups. Hat jede datierte Kopie eine\nMöglichkeit zum Herunterladen, läuft dein Projekt noch mit logischen Backups.\nBietet jede nur Restore und sonst nichts, sind es physische Backups, und die\n",[33,177,179],{"href":155,"rel":178},[37],"ältere Dokumentation von Supabase nutzte genau diesen Test",".",[10,182,183,184,187,188,191,192,195,196,199,200,180],{},"Die zweite Prüfung ist die Versionsnummer. Sie steht unter Project Settings,\ndann General. Alles ab ",[91,185,186],{},"15.8.1.079"," bedeutet physische Backups. Lies sie von\nlinks nach rechts: Eine Version, die mit ",[91,189,190],{},"17"," beginnt, ist neuer als jede ",[91,193,194],{},"15",",\nund ",[91,197,198],{},"15.8.1.100"," ist neuer als ",[91,201,186],{},[10,203,204],{},"Zwei Fälle musst du gar nicht prüfen:",[206,207,208,224],"ul",{},[209,210,211,218,219,223],"li",{},[17,212,213,217],{},[33,214,216],{"href":215},"\u002Fblog\u002Fsupabase-point-in-time-recovery","Point-in-Time-Recovery"," ist an.","\nDas läuft per Definition auf physischen Backups. Supabase schreibt außerdem,\ndass es nach dem\n",[33,220,222],{"href":35,"rel":221},[37],"Abschalten von Point-in-Time-Recovery","\nweiter physische Backups nimmt, der Download kommt also nicht zurück.",[209,225,226,229,230,234],{},[17,227,228],{},"Du bist auf dem Gratis-Tarif."," Auf der Backups-Seite gibt es nichts zum\nHerunterladen oder Wiederherstellen, weil dir der Gratis-Tarif keine nutzbaren\nTages-Backups gibt.\n",[33,231,233],{"href":232},"\u002Fblog\u002Fback-up-supabase-free-tier","Eine Kopie ohne Terminal machen"," ist der\nAnfang.",[164,236],{"alt":237,"caption":238,"src":239},"Zwei Listen mit je fünf datierten Kopien nebeneinander, die eine angeführt von einer einfachen Datei, die andere von einem versiegelten Snapshot. In der linken Liste trägt jede Zeile ein Wiederherstellen-Zeichen und ein Download-Zeichen. In der rechten trägt jede Zeile dasselbe Wiederherstellen-Zeichen, und wo das Download-Zeichen saß, ist ein leerer gestrichelter Umriss.","Dieselbe Seite auf zwei Projekten. Links die älteren logischen Backups, jedes mit Download. Rechts physische Backups: nur Wiederherstellen.","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fwhich-one-you-have-1600x620.png",[25,241,243],{"id":242},"wovor-schützt-mich-welche-kopie","Wovor schützt mich welche Kopie?",[10,245,246],{},"Das Tages-Backup schützt dich davor, dass innerhalb des Projekts etwas schiefgeht.\nEine Datei, die du selbst hältst, deckt auch den Verlust des Projekts selbst ab.",[10,248,249,250,254],{},"Die erste Art von Verlust verursachst du selbst. Ein Löschbefehl, der mehr\nZeilen erwischt hat als gedacht, eine Migration, die ein KI-Agent geschrieben\nund du abgenickt hast, ein Skript, das auf die falsche Tabelle zeigte. Dafür ist\ndie Tageskopie genau das richtige Werkzeug: gestern auswählen, Restore drücken,\nund das Projekt ist wiederhergestellt. Wie weit sie zurückreicht, hängt von\ndeinem Tarif ab, und\n",[33,251,253],{"href":252},"\u002Fblog\u002Fdoes-supabase-back-up-my-database","auf welchem Tarif du bist",", klärst du\nin etwa zwei Minuten.",[10,256,257],{},"Die zweite Art hat mit einem Fehler in der Datenbank gar nichts zu tun. Eine\nKarte, die abgelaufen ist, während du weg warst, ein Login, das du nicht\nwiederherstellen kannst, ein Projekt, das jemand gelöscht hat. Die Kopien liegen\nhinter derselben Tür wie das Projekt, und die Tür ist das, was zugefallen ist.\nDein Handy-Backup verhält sich genauso: Es rettet dich, wenn das Handy ins Meer\nfällt, und es hilft dir nicht an dem Tag, an dem du dich nicht mehr in das Konto\neinloggen kannst, in dem es liegt. Supabase bewahrt seine Backups bei der\nPlattform auf, weil eine Wiederherstellung genau deshalb nur einen Klick braucht.\nEine Kopie, die das Konto übersteht, muss woanders liegen, und bei Supabase heißt\ndas: ein logischer Dump, der aus dem Konto herausgeholt wurde.",[25,259,261],{"id":260},"was-bedeutet-wiederherstellen-bei-welcher-kopie","Was bedeutet Wiederherstellen bei welcher Kopie?",[10,263,264],{},"Bei der Tageskopie macht Supabase die Arbeit, und du wählst, wo sie landet. Bei\neiner Datei, die du hältst, machst du die Arbeit, und sie kann überall landen.",[10,266,267,270],{},[17,268,269],{},"Die Tageskopie ins selbe Projekt wiederherstellen"," ersetzt die Datenbank\ndurch die Kopie, die du auswählst. Supabase schreibt, dass das Projekt währenddessen\nnicht erreichbar ist und eine größere Datenbank länger braucht.",[10,272,273,276,277,282,283,286,287,290],{},[17,274,275],{},"Sie in ein neues Projekt wiederherstellen"," ist eine kostenpflichtige Funktion,\ndie Supabase\n",[33,278,281],{"href":279,"rel":280},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fclone-project",[37],"Restore to a New Project","\nnennt und noch als Beta kennzeichnet. Sie legt ein eigenes Projekt in derselben\nRegion an, mit deinen Nutzern und ihren gehashten Passwörtern, und es wird als\nzweites Projekt abgerechnet. Ein Hinweis auf derselben Seite geht leicht unter.\nSie kopiert die gesamte Datenbank, einschließlich Erweiterungen, die nach außen\nwirken, etwa ",[91,284,285],{},"pg_cron"," und ",[91,288,289],{},"pg_net",", und diese Jobs laufen los, sobald die\nWiederherstellung fertig ist. Wenn ein geplanter Job in deiner App E-Mails\nverschickt oder eine Zahlungs-API aufruft, tut das neue Projekt das ab dem\nMoment, in dem es existiert, ebenfalls.",[10,292,293,296,297,299,300,304],{},[17,294,295],{},"Eine Datei wiederherstellen, die du hältst",", heißt, sie mit ",[91,298,93],{}," in das\neinzuspielen, worauf du zeigst: ein neues Supabase-Projekt, eines in einem\nanderen Konto oder ein Postgres auf deinem eigenen Rechner.\n",[33,301,303],{"href":302},"\u002Fblog\u002Fhow-to-restore-a-supabase-backup","Wie du ein Supabase-Backup wiederherstellst","\ngeht die Befehle durch und auch das, was danach noch kaputt ist.",[25,306,308],{"id":307},"wie-bekomme-ich-eine-kopie-meiner-supabase-datenbank-als-datei","Wie bekomme ich eine Kopie meiner Supabase-Datenbank als Datei?",[10,310,311,312,317],{},"Zieh selbst einen logischen Dump. Supabase veröffentlicht ihn in seiner\n",[33,313,316],{"href":314,"rel":315},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fplatform\u002Fmigrating-within-supabase\u002Fbackup-restore",[37],"Anleitung zu Backup und Restore","\nals drei Befehle, von denen jeder eine Datei schreibt:",[319,320,325],"pre",{"className":321,"code":323,"language":324},[322],"language-text","supabase db dump --db-url \"postgresql:\u002F\u002F…\" -f roles.sql --role-only\nsupabase db dump --db-url \"postgresql:\u002F\u002F…\" -f schema.sql\nsupabase db dump --db-url \"postgresql:\u002F\u002F…\" -f data.sql --use-copy --data-only\n","text",[91,326,323],{"__ignoreMap":327},"",[10,329,330,331,334],{},"Den Connection String bekommst du über den Connect-Button oben in deinem\nProjekt, mit deinem Datenbankpasswort anstelle des Platzhalters. Die Supabase\nCLI braucht ein installiertes Docker, weil sie ",[91,332,333],{},"pg_dump"," in einem Container\nausführt, statt eines von deinem Rechner zu nehmen.",[10,336,337,338,180],{},"Behalte alle drei Dateien. Die zweite allein ist die Form deiner Tabellen ohne\neine einzige Zeile darin, und\n",[33,339,341],{"href":340},"\u002Fblog\u002Fsupabase-backup-auth-users","deine Nutzer stecken nur in der dritten",[10,343,344,345,347,348,353,354,356,357,362,363,365],{},"Du kannst ",[91,346,333],{}," auch direkt ausführen. Zwei Dinge solltest du vorher wissen.\n",[33,349,352],{"href":350,"rel":351},"https:\u002F\u002Fsupabase.com\u002Fdocs\u002Fguides\u002Fself-hosting\u002Frestore-from-platform",[37],"Supabase schreibt",",\ndass ein rohes ",[91,355,333],{}," die internen Schemas von Supabase mit deinen zusammen\nmitnimmt und dass das Einspielen dieser Schemas Berechtigungsfehler auslöst. Und\n",[33,358,361],{"href":359,"rel":360},"https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002Fcurrent\u002Fapp-pgdump.html",[37],"Postgres dokumentiert",",\ndass ",[91,364,333],{}," nicht von einem Server dumpt, der eine neuere Hauptversion hat als\nes selbst. Eine ältere Kopie auf deinem Rechner weigert sich also zu starten,\nstatt eine fehlerhafte Datei zu schreiben.",[10,367,368],{},"Leg die Dateien irgendwo ab, das nicht dein Supabase-Konto ist, und nicht nur\nauf deinen Laptop.",[25,370,372],{"id":371},"kann-ich-ein-supabase-backup-auf-meinem-eigenen-rechner-wiederherstellen","Kann ich ein Supabase-Backup auf meinem eigenen Rechner wiederherstellen?",[10,374,375],{},"Ein logisches schon, in ein Postgres derselben Hauptversion oder einer neueren.\nDie physische Tageskopie lässt sich nirgends außer bei Supabase wiederherstellen.",[10,377,378,379,383,384,388,389,392],{},"Die Versionsregel kommt von Postgres selbst. Seine Dokumentation sagt, dass sich\nein Dump\n",[33,380,382],{"href":359,"rel":381},[37],"in neuere Versionen laden lassen sollte","\nund in eine ältere nicht garantiert, nicht einmal in die, aus der er stammt. Die\nAnleitung von Supabase zum\n",[33,385,387],{"href":350,"rel":386},[37],"Umzug eines Plattform-Projekts auf selbst gehostetes Supabase","\nzeigt, wie das aussieht. Die Plattform kann Postgres 17 fahren, während das\nselbst gehostete Image standardmäßig auf 15 läuft, und die Datendatei enthält\ndann eine Zeile, ",[91,390,391],{},"SET transaction_timeout = 0",", die Postgres 15 nicht kennt.",[164,394],{"alt":395,"caption":396,"src":397},"Zwei Bahnen. In der oberen verlässt eine Datei eine Datenbank mit der Nummer 15 und kommt in einer Datenbank mit der Nummer 17 an, mit Haken. In der unteren verlässt eine Datei eine Datenbank mit der Nummer 17 und bleibt vor einer Datenbank mit der Nummer 15 stehen, durchgestrichen.","Ein Dump bewegt sich vorwärts. Wer ihn in ein älteres Postgres lädt als das, aus dem er stammt, bekommt Fehler.","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fforwards-not-backwards-1600x560.png",[10,399,400],{},"Dieselben drei Dateien sind auch der Weg ganz weg von Supabase. Diese Anleitung\nbeschreibt, wie du Supabase auf einem eigenen Server betreibst, und der\nVersionskonflikt ist das Erste, wovor sie warnt.",[10,402,403,404,407,408,410,411,414],{},"Auf deinem eigenen Rechner startet die Supabase CLI mit ",[91,405,406],{},"supabase start"," eine\nlokale Kopie von Supabase in Docker. Spiel die drei Dateien mit dem\n",[91,409,93],{},"-Befehl aus der Anleitung zu Backup und Restore von Supabase ein, gerichtet\nauf ",[91,412,413],{},"postgresql:\u002F\u002Fpostgres:postgres@localhost:54322\u002Fpostgres",", und deine Daten\nsind auf deinem eigenen Rechner lesbar, ganz ohne Konto.",[10,416,417,418,422],{},"Es gibt eine Stelle, an der Supabase noch ein Backup zum Herunterladen anbietet.\nEin Gratis-Projekt, das über sein Wiederherstellungsfenster hinaus pausiert ist,\nersetzt den Restore-Button durch einen Download der letzten Kopie vor der Pause,\nund\n",[33,419,421],{"href":420},"\u002Fblog\u002Fsupabase-project-paused-recover","was du mit dieser Datei machst",", ist ein\neigener Artikel.",[25,424,426],{"id":425},"was-ist-in-keiner-der-beiden-kopien","Was ist in keiner der beiden Kopien?",[10,428,429],{},"Deine hochgeladenen Dateien, deine Edge Functions und die meisten Einstellungen\ndeines Projekts.",[10,431,432,433,437,438,442],{},"Supabase schreibt, dass Datenbank-Backups\n",[33,434,436],{"href":35,"rel":435},[37],"keine über die Storage API gespeicherten Objekte enthalten",".\nDie Datenbank hält eine Zeile, die jede Datei beschreibt, und die Datei selbst\nliegt woanders, also enthält kein Datenbank-Backup auf irgendeinem Tarif die\nUploads deiner Nutzer.\n",[33,439,441],{"href":440},"\u002Fblog\u002Fsupabase-storage-backup","Storage sichern"," ist eine eigene Aufgabe.",[10,444,445,446,449],{},"Die Liste, die Supabase für\n",[33,447,281],{"href":279,"rel":448},[37],"\nangibt, ist eine gute Bestandsaufnahme des Rests: Edge Functions,\nAuth-Einstellungen und API-Schlüssel, Realtime-Einstellungen,\nErweiterungseinstellungen und Read Replicas müssen alle von Hand neu eingerichtet\nwerden.",[10,451,452,453,457],{},"Eine Lücke betrifft nur die Datei, die du hältst. Wenn deine App Geheimnisse in\nSupabase Vault ablegt oder verschlüsselte Spalten nutzt, schreibt Supabase, dass\n",[33,454,456],{"href":314,"rel":455},[37],"Backup-Dateien nie den Root Key enthalten",",\nnur die verschlüsselten Daten. Ein neues Projekt startet mit einem eigenen\nSchlüssel, also kommen diese Werte unlesbar an, bis der alte Schlüssel\nhinüberkopiert ist. Und der alte Schlüssel lässt sich nur abrufen, solange das\nalte Projekt noch aktiv ist. Ist dieses Projekt pausiert oder gelöscht, lässt\nsich der Schlüssel nicht mehr abrufen, und alles, was damit verschlüsselt wurde,\nauch nicht.",[25,459,461],{"id":460},"was-du-diese-woche-tun-solltest","Was du diese Woche tun solltest",[463,464,465],"key-takeaways",{},[206,466,467,470,473,484,487,490],{},[209,468,469],{},"Öffne Database, dann Backups, und such nach einer Download-Möglichkeit. Bietet jede Kopie nur Restore, hast du physische Backups und dort nichts zum Mitnehmen.",[209,471,472],{},"Zieh heute einen logischen Dump mit den drei Befehlen und bewahre alle drei Dateien zusammen auf.",[209,474,475,476,479,480,483],{},"Durchsuche ",[91,477,478],{},"data.sql"," nach ",[91,481,482],{},"auth.users",", bevor du dich darauf verlässt. In dieser Datei stecken deine Konten, wenn sie überhaupt drin sind.",[209,485,486],{},"Leg die Dateien an einem Ort ab, der nicht dein Supabase-Konto ist.",[209,488,489],{},"Wenn du Supabase Vault oder verschlüsselte Spalten nutzt, lies nach, wie der Root Key umzieht, bevor du ihn brauchst. Er ist nicht in der Datei.",[209,491,492],{},"Spiel den Dump einmal in ein Wegwerf-Projekt oder ein lokales Supabase ein, damit du ihn nicht zum ersten Mal an dem Tag öffnest, an dem du ihn brauchst.",[25,494,496],{"id":495},"wo-reeve-care-passt","Wo Reeve Care passt",[10,498,499],{},[17,500,501],{},"Care zieht die logische Kopie für dich, bewahrt sie außerhalb von Supabase auf,\nund jede Kopie ist eine Datei, die du herunterladen kannst.",[206,503,504,521,527,533],{},[209,505,506,509,510,513,514,516,517,520],{},[17,507,508],{},"Lade jede Kopie als Zip herunter."," Darin stecken ",[91,511,512],{},"schema.sql",", ",[91,515,478],{},"\nund ",[91,518,519],{},"roles.sql",", ein Manifest, das die Zeilen jeder Tabelle zählt, und eine\nNotiz, wie du alles in ein beliebiges Postgres lädst. Es ist ein\nStandard-Dump, also kann ihn jede Entwicklerin und jeder Entwickler öffnen,\nund jeder andere Hoster auch.",[209,522,523,526],{},[17,524,525],{},"Außerhalb deines Supabase-Kontos gespeichert",", verschlüsselt, also noch da\nan einem Tag, an dem das Konto es nicht mehr ist.",[209,528,529,532],{},[17,530,531],{},"Zurückgelesen, bevor sie zählt."," Das Datum in deinem Dashboard ist die\nletzte Kopie, die geöffnet und geprüft wurde, nie die letzte, die versucht\nwurde.",[209,534,535,538,539,542],{},[17,536,537],{},"Deine Nutzer sind drin."," Das ",[91,540,541],{},"auth","-Schema reist mit deinen Tabellen, und\ndie Dateien, die deine Nutzer hochgeladen haben, kommen mit, sobald du einen\nStorage-Zugang verbindest.",[10,544,545,546,550,551,555],{},"Care bewahrt eine Kopie deiner Supabase-Datenbank auf. Lass die täglichen\nSupabase-Backups daneben eingeschaltet: Sie sind der schnellste Weg zurück nach\neiner schiefgegangenen Migration, und die Datei ist das, was bleibt, wenn du das\nKonto verlierst. Wie eine Kopie gezogen, geprüft und heruntergeladen wird, ist\nSchritt für Schritt auf der ",[33,547,549],{"href":548},"\u002Fsupabase-backups","Seite zu Supabase-Backups","\ngezeichnet, und ",[33,552,554],{"href":553},"\u002Fpricing","was jeder Tarif enthält",", steht auf der Preisseite.",[10,557,558,559,562],{},"Bevor du diesen Tab schließt, öffne Database, dann Backups, und schau neben deine\nneueste Kopie. Gibt es dort nichts zum Herunterladen, ist die nächste Datei, die\ndu hältst, die, die du selbst machst, und\n",[33,560,561],{"href":340},"was einen Dump vollständig macht",", liest du\nam besten, bevor du ihn machst.",{"title":327,"searchDepth":564,"depth":564,"links":565},3,[566,568,569,570,571,572,573,574,575,576],{"id":27,"depth":567,"text":28},2,{"id":137,"depth":567,"text":138},{"id":171,"depth":567,"text":172},{"id":242,"depth":567,"text":243},{"id":260,"depth":567,"text":261},{"id":307,"depth":567,"text":308},{"id":371,"depth":567,"text":372},{"id":425,"depth":567,"text":426},{"id":460,"depth":567,"text":461},{"id":495,"depth":567,"text":496},"Backups","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fcover-1200x630.png","Vier tägliche Datenbank-Snapshots in einem Supabase-Gehäuse, der vordere beleuchtet und versiegelt, daneben eine leere Download-Ablage.","Dein Supabase-Backup kannst du auf aktuellen Projekten nicht herunterladen, weil die Tageskopie physisch ist. Wie du es prüfst und selbst eine Kopie hältst.",false,"md",[584,586,588,591,593,595],{"q":28,"a":585},"Das tägliche nicht, wenn dein Projekt auf Postgres 15.8.1.079 oder neuer läuft. Supabase schreibt, dass jedes Projekt auf diesen Versionen physische Backups nutzt und dass die herunterladbare Backup-Datei danach nicht mehr erzeugt wird. Wiederherstellen kannst du diese Kopien im Dashboard weiterhin. Eine Datei, die du behalten kannst, bekommst du mit einem logischen Dump, den du selbst mit der Supabase CLI oder pg_dump ziehst.",{"q":138,"a":587},"Ein physisches Backup kopiert die Dateien, die Postgres auf der Festplatte ablegt. Es lässt sich schnell und exakt wiederherstellen, aber nur auf derselben Art von Postgres-Installation, aus der es stammt, und bei Supabase heißt das: Supabase stellt es für dich wieder her. Ein logisches Backup ist SQL, also die Anweisungen zum Neuaufbau jeder Tabelle, gefolgt von den Zeilen. Es spielt sich langsamer ein und lässt sich in jedes Postgres derselben oder einer neueren Version laden, auch auf deinem eigenen Rechner.",{"q":589,"a":590},"Warum ist der Download-Button verschwunden?","Weil das, was er heruntergeladen hat, nicht mehr erzeugt wird. Der Button gehörte zu den älteren logischen Tages-Backups, also SQL-Dateien, die Supabase gezippt und abgelegt hat. Wechselt ein Projekt zu physischen Backups, erzeugt Supabase diese Datei nicht mehr, und die Backups-Seite bietet nur noch Restore ohne Download daneben. Point-in-Time-Recovery abzuschalten bringt ihn nicht zurück, denn Supabase nimmt auch danach physische Backups.",{"q":308,"a":592},"Führe die drei Befehle aus, die Supabase in seiner Anleitung zu Backup und Restore veröffentlicht: supabase db dump mit --role-only, dann ohne Flags für das Schema, dann mit --data-only und --use-copy für die Zeilen. Die CLI braucht Docker, weil sie pg_dump in einem Container ausführt. Bewahre alle drei Dateien zusammen auf, und zwar an einem Ort, der nicht dein Supabase-Konto ist.",{"q":372,"a":594},"Ein logisches schon, in ein Postgres derselben Hauptversion oder einer neueren. Postgres dokumentiert, dass ein Dump sich vorwärts laden lässt und in eine ältere Version nicht garantiert, und Supabase nennt ein Beispiel: Die Plattform kann Postgres 17 fahren, während selbst gehostetes Supabase standardmäßig auf 15 läuft. Eine physische Tageskopie lässt sich nirgends außer bei Supabase wiederherstellen.",{"q":596,"a":597},"Bekomme ich mit dem Pro-Tarif ein herunterladbares Backup?","Nicht auf einem Projekt mit Postgres 15.8.1.079 oder neuer. Dort bekommst du mit Pro tägliche physische Backups, sieben Tage lang aufbewahrt, die du ins selbe Projekt wiederherstellen kannst oder, solange die Funktion in der Beta ist, in ein neues Projekt in derselben Region. Keiner der beiden Wege gibt dir eine Datei. Eine herunterladbare Kopie ziehst du selbst oder bezahlst jemanden dafür.","\u002Fblog\u002Fdownload-your-supabase-backup\u002Fcard-800x500.png",[600,601,602,603,604,605,606,607,608],"download supabase backup","supabase backup herunterladen","supabase physisches backup","supabase logisches backup","supabase backup datei","kopie meiner supabase datenbank","supabase backup nicht herunterladbar","supabase tägliches backup download","supabase backup exportieren",{},true,"\u002Fblog\u002Fdownload-your-supabase-backup","2026-09-26",{"title":5,"description":580},"blog\u002Fdownload-your-supabase-backup",[616,617,618],"Dein Supabase-Backup kannst du auf einem Projekt mit Postgres 15.8.1.079 oder neuer nicht herunterladen. Die täglichen Kopien sind dort physische Snapshots: Supabase kann sie für dich wiederherstellen, herunterladen kannst du sie nicht.","Der Download-Button, den ältere Anleitungen beschreiben, gehörte zu logischen Backups, also SQL-Dateien. Nur Projekte auf den älteren Versionen haben ihn noch.","Eine eigene Datei bekommst du nur, wenn du selbst einen logischen Dump mit der Supabase CLI oder pg_dump ziehst. Es ist die einzige Kopie, die den Verlust des Kontozugangs übersteht.","hkue44k8TFPMi_ELwctpamDmW1fIZ_q2_USX_jDfnZw",[621,628,634,640,646,652,658,664,670,676,682,688,694,700,706,707,712,718,724,729,735,741,747,753,759,765,771,777,782,787,792,798,804,810,816,822,828,834,840,846,852,858,864,869,875,881,887,893,899,904,910,916,922,928,933,939,944,950,955,961],{"path":622,"title":623,"description":624,"published":625,"category":626,"image":627,"draft":581},"\u002Fblog\u002Fbase44-security-scan","Base44 Security Scan: das, was nur er sehen kann","Der Base44 Security Scan prüft sieben Arten von Problemen von innen. Hier ist die Hälfte, die er liest und sonst niemand, und die Hälfte, die er nie ansieht.","2026-10-10","Sicherheitsgrundlagen","\u002Fblog\u002Fbase44-security-scan\u002Fcard-800x500.png",{"path":629,"title":630,"description":631,"published":632,"category":626,"image":633,"draft":581},"\u002Fblog\u002Fapi-key-leaked-what-to-do","Dein API-Key wurde geleakt. Die richtige Reihenfolge","Ein API-Key wurde geleakt und du weißt nicht, was zuerst zu tun ist. Nicht jeder Key im Frontend ist ein Leck, und die Reihenfolge zählt mehr als das Tempo.","2026-10-09","\u002Fblog\u002Fapi-key-leaked-what-to-do\u002Fcard-800x500.png",{"path":635,"title":636,"description":637,"published":638,"category":626,"image":639,"draft":581},"\u002Fblog\u002Finfinite-recursion-in-policy-for-relation","\"Infinite recursion detected in policy\" ohne RLS abzuschalten","\"Infinite recursion detected in policy for relation\" heißt: Deine Policy hat die Tabelle gefragt, die sie schützt. So brichst du den Kreis.","2026-10-08","\u002Fblog\u002Finfinite-recursion-in-policy-for-relation\u002Fcard-800x500.png",{"path":641,"title":642,"description":643,"published":644,"category":626,"image":645,"draft":581},"\u002Fblog\u002Fno-api-key-found-in-request","\"No API key found in request\" in Supabase, und die falsche Lösung","\"No API key found in request\" heißt, deine Supabase-Anfrage kam ohne Schlüssel an. Die meisten Antworten zeigen stattdessen auf deine Datenbankregeln.","2026-10-07","\u002Fblog\u002Fno-api-key-found-in-request\u002Fcard-800x500.png",{"path":647,"title":648,"description":649,"published":650,"category":626,"image":651,"draft":581},"\u002Fblog\u002Fis-base44-safe","Ist Base44 sicher? Was 5.442 echte Base44-Apps zeigten","Ist Base44 sicher? Wir haben 5.442 laufende Base44-Apps mit neun Checks geprüft. Fast alle bekamen ein B, aus Gründen, die der Inhaber nie gewählt hat.","2026-10-06","\u002Fblog\u002Fis-base44-safe\u002Fcard-800x500.png",{"path":653,"title":654,"description":655,"published":656,"category":626,"image":657,"draft":581},"\u002Fblog\u002Fmove-a-secret-to-an-edge-function","API-Schlüssel verstecken: ab in eine Supabase Edge Function","Einen API-Schlüssel verstecken heißt, ihn aus dem Browser zu nehmen. Eine Supabase Edge Function ist der kleinste Ort dafür, und zwei Schritte zählen mehr.","2026-10-05","\u002Fblog\u002Fmove-a-secret-to-an-edge-function\u002Fcard-800x500.png",{"path":659,"title":660,"description":661,"published":662,"category":626,"image":663,"draft":581},"\u002Fblog\u002Fenv-file-exposed-on-your-server","Ist deine .env-Datei öffentlich? Zwölf Pfade zum Prüfen","Ist deine .env-Datei auf deinem eigenen Webserver öffentlich? Zwölf Adressen sagen es dir, und ein Treffer heißt: alles darin ist längst öffentlich.","2026-10-04","\u002Fblog\u002Fenv-file-exposed-on-your-server\u002Fcard-800x500.png",{"path":665,"title":666,"description":667,"published":668,"category":626,"image":669,"draft":581},"\u002Fblog\u002Fis-v0-safe","v0-Sicherheit: alle 1.790 gescannten v0-Apps bekamen ein A","v0-Sicherheit, gemessen an 1.790 laufenden v0-Apps: Jede bekam ein A. Nur 17 nannten eine Datenbank, und genau das misst das A vor allem.","2026-10-03","\u002Fblog\u002Fis-v0-safe\u002Fcard-800x500.png",{"path":671,"title":672,"description":673,"published":674,"category":626,"image":675,"draft":581},"\u002Fblog\u002Fis-bolt-safe","Ist Bolt sicher? Was 1.123 echte Bolt-Apps zeigten","Ist Bolt sicher? Wir haben 1.123 laufende Bolt-Apps mit neun Checks geprüft. Das Hosting war sauber. Die Funde waren Schlüssel und offene Tabellen in den Apps.","2026-10-02","\u002Fblog\u002Fis-bolt-safe\u002Fcard-800x500.png",{"path":677,"title":678,"description":679,"published":680,"category":626,"image":681,"draft":581},"\u002Fblog\u002Fis-supabase-down-or-your-app","Ist Supabase down oder liegt es an deiner App? So erkennst du es","Ist Supabase down oder liegt es an deiner App? Ein pausiertes Projekt, eine volle Datenbank und ein eigener Fehler sehen gleich aus. Vier Prüfungen helfen.","2026-10-01","\u002Fblog\u002Fis-supabase-down-or-your-app\u002Fcard-800x500.png",{"path":683,"title":684,"description":685,"published":686,"category":626,"image":687,"draft":581},"\u002Fblog\u002Fdoes-supabase-encrypt-my-data","Verschlüsselt Supabase meine Daten? Ja. Wovor das schützt","Verschlüsselt Supabase Daten? Ja: AES-256 im Ruhezustand, TLS bei der Übertragung, SOC 2 und ISO 27001. Was jedes abdeckt und welches Leck keines stoppt.","2026-09-30","\u002Fblog\u002Fdoes-supabase-encrypt-my-data\u002Fcard-800x500.png",{"path":689,"title":690,"description":691,"published":692,"category":626,"image":693,"draft":581},"\u002Fblog\u002Fsupabase-free-plan-limits","Supabase Gratis-Tarif: die Limits und was an jedem passiert","Die Limits des Supabase-Gratis-Tarifs: 500 MB Datenbank, 5 GB Egress und keine Backups. Was an jeder Grenze passiert und was $25 für Pro ändern.","2026-09-29","\u002Fblog\u002Fsupabase-free-plan-limits\u002Fcard-800x500.png",{"path":695,"title":696,"description":697,"published":698,"category":577,"image":699,"draft":581},"\u002Fblog\u002Ftest-your-supabase-backup","Teste dein Supabase-Backup, bevor du es brauchst","So testest du dein Supabase-Backup: in ein Übungsprojekt einspielen, Zeilen zählen, anmelden und die Zeile suchen, die einer abgeschnittenen Datei fehlt.","2026-09-28","\u002Fblog\u002Ftest-your-supabase-backup\u002Fcard-800x500.png",{"path":701,"title":702,"description":703,"published":704,"category":577,"image":705,"draft":581},"\u002Fblog\u002Fsupabase-backup-github-action","Kostenloses Supabase-Backup per GitHub Action, mit Haken","Eine Supabase-Backup-GitHub-Action kostet nichts und passt für viele Apps. Der Workflow, der richtige Connection String und das Egress pro Lauf.","2026-09-27","\u002Fblog\u002Fsupabase-backup-github-action\u002Fcard-800x500.png",{"path":611,"title":5,"description":580,"published":612,"category":577,"image":598,"draft":581},{"path":708,"title":709,"description":710,"published":612,"category":626,"image":711,"draft":581},"\u002Fblog\u002Fsupabase-permission-denied-for-table","Supabase \"permission denied for table\": der fehlende Grant","Ab 30. Oktober antwortet eine neue Supabase-Tabelle mit \"permission denied for table\", bis du Zugriff erteilst. Der Grant aus der E-Mail ist die halbe Lösung.","\u002Fblog\u002Fsupabase-permission-denied-for-table\u002Fcard-800x500.png",{"path":713,"title":714,"description":715,"published":716,"category":626,"image":717,"draft":581},"\u002Fblog\u002Fopen-api-endpoint-exposed","Ist ein offener API-Endpunkt ein Sicherheitsproblem? Sieh ins JSON","Dein Scan hat einen offenen API-Endpunkt gemeldet. Ob das zählt, hängt davon ab, was zurückkam, und die meisten hier gehörten der Plattform.","2026-09-25","\u002Fblog\u002Fopen-api-endpoint-exposed\u002Fcard-800x500.png",{"path":719,"title":720,"description":721,"published":722,"category":626,"image":723,"draft":581},"\u002Fblog\u002Flovable-security-scan","Lovable Security Scan: das Eine, was er nicht beweist","Lovable Security Scan: was Quick Scan und Deep Scan prüfen, wann welcher läuft, und das Eine, was kein Scan von innen beweisen kann.","2026-09-24","\u002Fblog\u002Flovable-security-scan\u002Fcard-800x500.png",{"path":340,"title":725,"description":726,"published":727,"category":577,"image":728,"draft":581},"Warum in deinem Supabase-Dump keine Nutzer stehen","Führe supabase db dump allein aus und du bekommst die Form deiner Datenbank und keine einzige Zeile, und das auth-Schema mit deinen Nutzern fehlt ganz.","2026-09-23","\u002Fblog\u002Fsupabase-backup-auth-users\u002Fcard-800x500.png",{"path":730,"title":731,"description":732,"published":733,"category":626,"image":734,"draft":581},"\u002Fblog\u002Fdomain-and-certificate-expiry","Domain abgelaufen, Website offline: was jetzt passiert","Deine Domain ist abgelaufen und deine Website ist offline. Welche Frist jetzt läuft, warum das Zertifikat das kleinere Problem ist, und wie du beides prüfst.","2026-09-22","\u002Fblog\u002Fdomain-and-certificate-expiry\u002Fcard-800x500.png",{"path":736,"title":737,"description":738,"published":739,"category":626,"image":740,"draft":581},"\u002Fblog\u002Fis-lovable-safe","Ist Lovable sicher? Was 18.554 echte Lovable-Apps zeigten","Ist Lovable sicher? Wir haben 18.554 laufende Lovable-Apps mit neun Checks geprüft. Die Plattform war die sauberste von fünf. Die Funde saßen in den Apps.","2026-09-21","\u002Fblog\u002Fis-lovable-safe\u002Fcard-800x500.png",{"path":742,"title":743,"description":744,"published":745,"category":626,"image":746,"draft":581},"\u002Fblog\u002Fvibe-coded-app-security-checklist","Die Sicherheits-Checkliste für Vibe-Coding, in neun Prüfungen","Eine Sicherheits-Checkliste für Vibe-Coding mit neun Punkten, die jeder von außen an deiner Live-App nachprüfen kann, jeder mit einem Test in einer Zeile.","2026-09-20","\u002Fblog\u002Fvibe-coded-app-security-checklist\u002Fcard-800x500.png",{"path":748,"title":749,"description":750,"published":751,"category":626,"image":752,"draft":581},"\u002Fblog\u002Fstripe-secret-key-in-frontend","Ein geheimer Stripe-Schlüssel im Frontend kann Geld bewegen","Ein geheimer Stripe-Schlüssel im Frontend kann erstatten, abbuchen und jeden Kundendatensatz lesen, den du hast. Dein pk_live_-Schlüssel gehört dorthin.","2026-09-19","\u002Fblog\u002Fstripe-secret-key-in-frontend\u002Fcard-800x500.png",{"path":754,"title":755,"description":756,"published":757,"category":626,"image":758,"draft":581},"\u002Fblog\u002Fvite-and-next-public-env-vars","Vite-Env-Variablen offengelegt: der Präfix heißt veröffentlichen","Vite-Env-Variablen offengelegt: Deine App hat getan, was der Präfix verlangt. VITE_ und NEXT_PUBLIC_ heißen veröffentlichen, und die KI kannte den Preis nie.","2026-09-18","\u002Fblog\u002Fvite-and-next-public-env-vars\u002Fcard-800x500.png",{"path":760,"title":761,"description":762,"published":763,"category":626,"image":764,"draft":581},"\u002Fblog\u002Fbase44-source-maps","Base44-Sicherheit: was ein Scan meldet und was du ändern kannst","Base44-Sicherheit auf 5.438 gescannten Apps: Drei Befunde auf fast jeder gehören der Plattform, die Source Map ist das Base44-Badge, und deine Liste ist kurz.","2026-09-17","\u002Fblog\u002Fbase44-source-maps\u002Fcard-800x500.png",{"path":766,"title":767,"description":768,"published":769,"category":626,"image":770,"draft":581},"\u002Fblog\u002Fis-cursor-ai-safe","Ist Cursor AI sicher? Editor, Code und die App, die du veröffentlichst","Ist Cursor AI sicher? Drei Fragen in einer Suche: was Cursor behält, was sein Code falsch macht und ob deine veröffentlichte App offen steht.","2026-09-16","\u002Fblog\u002Fis-cursor-ai-safe\u002Fcard-800x500.png",{"path":772,"title":773,"description":774,"published":775,"category":626,"image":776,"draft":581},"\u002Fblog\u002Fis-replit-safe","Ist Replit sicher? Was wir in 3.042 Replit-Apps gefunden haben","Ist Replit sicher? Wir haben 3.042 laufende Replit-Apps mit neun externen Checks geprüft. Die Funde saßen in der veröffentlichten App, nicht im Hosting.","2026-09-15","\u002Fblog\u002Fis-replit-safe\u002Fcard-800x500.png",{"path":440,"title":778,"description":779,"published":780,"category":577,"image":781,"draft":581},"Supabase Storage Backup: deine Datenbankkopie hat keine Dateien","Ein Supabase Storage Backup ist eine eigene Aufgabe. Datenbank-Backups enthalten die Liste deiner Dateien und keine davon, also bleibt jeder Upload kaputt.","2026-09-14","\u002Fblog\u002Fsupabase-storage-backup\u002Fcard-800x500.png",{"path":215,"title":783,"description":784,"published":785,"category":577,"image":786,"draft":581},"Supabase Point-in-Time Recovery: Kosten und Grenzen","Supabase Point-in-Time Recovery spult deine Datenbank auf jede Sekunde der letzten Woche zurück. $100 im Monat zusätzlich zu Pro, und nur die Datenbank.","2026-09-13","\u002Fblog\u002Fsupabase-point-in-time-recovery\u002Fcard-800x500.png",{"path":420,"title":788,"description":789,"published":790,"category":577,"image":791,"draft":581},"Supabase-Projekt pausiert? Deine Daten sind noch da","Supabase hat dein Projekt nach einer Woche ohne Aktivität pausiert. Gelöscht ist nichts, Wiederherstellen steht neben dem Namen, und du hast ein Jahr.","2026-09-12","\u002Fblog\u002Fsupabase-project-paused-recover\u002Fcard-800x500.png",{"path":793,"title":794,"description":795,"published":796,"category":626,"image":797,"draft":581},"\u002Fblog\u002Fsafest-ai-app-builder","Welcher KI-App-Builder ist am sichersten? 30.998 Apps im Test","Welcher KI-App-Builder ist am sichersten? Wir haben 30.998 aktive Apps von Lovable, Base44, Replit, v0 und Bolt gescannt. Der Builder entscheidet das nicht.","2026-09-11","\u002Fblog\u002Fsafest-ai-app-builder\u002Fcard-800x500.png",{"path":799,"title":800,"description":801,"published":802,"category":626,"image":803,"draft":581},"\u002Fblog\u002Fenable-rls-on-every-supabase-table","Row Level Security für jede Supabase-Tabelle aktivieren und prüfen","Row Level Security in Supabase ohne Policy sperrt eine Tabelle komplett. Eine Policy ohne den Schalter bringt gar nichts. Hier ist das SQL, und der Test.","2026-09-10","\u002Fblog\u002Fenable-rls-on-every-supabase-table\u002Fcard-800x500.png",{"path":805,"title":806,"description":807,"published":808,"category":626,"image":809,"draft":581},"\u002Fblog\u002Fsupabase-rls-disabled-in-public","Supabase \"RLS disabled in public\": was die Warnung übersieht","Supabase meldet \"RLS disabled in public\" als Fehler. Zur Lese-Policy, die deine Tabelle genauso offen lässt, sagt der Advisor gar nichts.","2026-09-09","\u002Fblog\u002Fsupabase-rls-disabled-in-public\u002Fcard-800x500.png",{"path":811,"title":812,"description":813,"published":814,"category":626,"image":815,"draft":581},"\u002Fblog\u002Frotate-supabase-service-role-key","Geleakten Supabase-service_role-Schlüssel richtig tauschen","Supabase sagt: erst das Leck schließen. Andere Anleitungen: sofort tauschen. Was richtig ist, hängt davon ab, wohin dein service_role-Schlüssel gelangt ist.","2026-09-08","\u002Fblog\u002Frotate-supabase-service-role-key\u002Fcard-800x500.png",{"path":817,"title":818,"description":819,"published":820,"category":626,"image":821,"draft":581},"\u002Fblog\u002Fvibe-coding-security-scanners-compared","Vibe-Coding-Security-Scanner im Vergleich, unserer eingeschlossen","Der beste Vibe-Coding-Security-Scanner hängt an drei Fragen, die keine Funktionsliste beantwortet. Zehn Tools im Vergleich, mit Preisen und unseren Lücken.","2026-09-07","\u002Fblog\u002Fvibe-coding-security-scanners-compared\u002Fcard-800x500.png",{"path":823,"title":824,"description":825,"published":826,"category":626,"image":827,"draft":581},"\u002Fblog\u002Fsupabase-security-checker","Supabase Security Checker: die fünf Prüfungen selbst machen","Ein Supabase Security Checker liest deine veröffentlichte App statt deiner Projekteinstellungen. Hier sind die fünf Prüfungen und wie du jede selbst ausführst.","2026-09-06","\u002Fblog\u002Fsupabase-security-checker\u002Fcard-800x500.png",{"path":829,"title":830,"description":831,"published":832,"category":626,"image":833,"draft":581},"\u002Fblog\u002Fvibe-coding-security-scanner","Vibe-Coding-Security-Scanner: was ein URL-Scan übersieht","Ein Vibe-Coding-Security-Scanner liest deine laufende App von außen. Was das abdeckt, die vier Dinge, die er nicht sehen kann, und wie du das Ergebnis liest.","2026-09-05","\u002Fblog\u002Fvibe-coding-security-scanner\u002Fcard-800x500.png",{"path":835,"title":836,"description":837,"published":838,"category":626,"image":839,"draft":581},"\u002Fblog\u002Fmissing-security-headers","Fehlende Sicherheitsheader: wann sie wirklich zählen","Fehlende Sicherheitsheader ist unser häufigster Befund. Wogegen sie schützen, und wann sie die unwichtigste Zeile in deinem Bericht sind.","2026-09-04","\u002Fblog\u002Fmissing-security-headers\u002Fcard-800x500.png",{"path":841,"title":842,"description":843,"published":844,"category":626,"image":845,"draft":581},"\u002Fblog\u002Fopenai-api-key-exposed-in-frontend","Dein OpenAI-API-Schlüssel liegt im Frontend. Tausch ihn aus.","Ein OpenAI-API-Schlüssel im Frontend lässt sich an keine Domain binden. Tausch ihn heute, leg den Aufruf hinter deinen Server und begrenze das Budget.","2026-09-03","\u002Fblog\u002Fopenai-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":847,"title":848,"description":849,"published":850,"category":626,"image":851,"draft":581},"\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps","API-Schlüssel im Frontend: was 30.998 Apps wirklich ausliefern","Ein API-Schlüssel im Frontend ist meistens ein Google-Maps-Schlüssel. Wir haben 30.998 aktive Vibe-Coding-Apps gescannt und gezählt, was wirklich austritt.","2026-09-02","\u002Fblog\u002Fwhat-secrets-leak-from-vibe-coded-apps\u002Fcard-800x500.png",{"path":853,"title":854,"description":855,"published":856,"category":577,"image":857,"draft":581},"\u002Fblog\u002Fsupabase-backup-tools-compared","Supabase-Backup-Tools im Vergleich, unseres eingeschlossen","Vier Arten von Supabase-Backup-Tool, was jedes wirklich kopiert und wann eine kostenlose GitHub Action jeden Anbieter schlägt, uns eingeschlossen.","2026-09-01","\u002Fblog\u002Fsupabase-backup-tools-compared\u002Fcard-800x500.png",{"path":859,"title":860,"description":861,"published":862,"category":626,"image":863,"draft":581},"\u002Fblog\u002Freplit-secrets-explained","Secrets in Replit nutzen, und was trotzdem veröffentlicht wird","Secrets in Replit nutzen: anlegen, auslesen und die zwei Gründe beheben, warum undefined zurückkommt. Dazu die Schlüssel, die das Werkzeug nicht schützt.","2026-08-31","\u002Fblog\u002Freplit-secrets-explained\u002Fcard-800x500.png",{"path":232,"title":865,"description":866,"published":867,"category":577,"image":868,"draft":581},"Supabase Gratis-Tarif: Backup ohne Terminal selbst machen","Im Supabase Gratis-Tarif gibt es keine Backups, die Kopie musst du selbst machen. Wie das im Dashboard geht und was der CSV-Weg auslässt.","2026-08-30","\u002Fblog\u002Fback-up-supabase-free-tier\u002Fcard-800x500.png",{"path":870,"title":871,"description":872,"published":873,"category":626,"image":874,"draft":581},"\u002Fblog\u002Fis-supabase-secure","Ist Supabase sicher? Ja. Dein Projekt ist eine eigene Frage","Ist Supabase sicher? Die Plattform ist auditiert, verschlüsselt und pentestet. Supabase schreibt selbst auf, wo das aufhört und deine Einstellungen anfangen.","2026-08-29","\u002Fblog\u002Fis-supabase-secure\u002Fcard-800x500.png",{"path":876,"title":877,"description":878,"published":879,"category":626,"image":880,"draft":581},"\u002Fblog\u002Fwhere-to-find-supabase-api-keys","Wo du deine Supabase API-Keys findest: anon, service_role, URL","Projekt-URL, anon-Schlüssel und service_role-Schlüssel liegen auf einer Seite im Dashboard. Wo sie ist, und welcher der vier Werte in deine App gehört.","2026-08-28","\u002Fblog\u002Fwhere-to-find-supabase-api-keys\u002Fcard-800x500.png",{"path":882,"title":883,"description":884,"published":885,"category":626,"image":886,"draft":581},"\u002Fblog\u002Fnew-row-violates-row-level-security-policy","New row violates row-level security policy in Supabase: was jetzt?","\"New row violates row-level security policy\" heißt, Supabase hat einen Schreibvorgang abgelehnt. Die schnelle Lösung öffnet die Tabelle wieder für alle.","2026-08-27","\u002Fblog\u002Fnew-row-violates-row-level-security-policy\u002Fcard-800x500.png",{"path":888,"title":889,"description":890,"published":891,"category":626,"image":892,"draft":581},"\u002Fblog\u002Fcors-wildcard-security-risk","Ist eine CORS-Wildcard ein Sicherheitsrisiko? Meist nicht.","Ist eine CORS-Wildcard ein Sicherheitsrisiko? Meist ist sie die Voreinstellung deines Builders und gibt nichts preis, was dein Server nicht ohnehin herausgab.","2026-08-26","\u002Fblog\u002Fcors-wildcard-security-risk\u002Fcard-800x500.png",{"path":894,"title":895,"description":896,"published":897,"category":577,"image":898,"draft":581},"\u002Fblog\u002Fsupabase-branching-is-not-a-backup","Supabase Branching ist kein Backup. Es geht nur vorwärts.","Warum Supabase Branching kein Backup ist: Ein Branch startet ohne deine Daten, und ein Merge bringt nur das Schema. Wofür es gut ist und was stattdessen hilft.","2026-08-25","\u002Fblog\u002Fsupabase-branching-is-not-a-backup\u002Fcard-800x500.png",{"path":302,"title":900,"description":901,"published":902,"category":577,"image":903,"draft":581},"Supabase-Backup wiederherstellen, und was danach kaputt ist","Wie du ein Supabase-Backup aus dem Dashboard oder aus einer Dump-Datei wiederherstellst, was ersetzt wird und warum die App danach kaputt sein kann.","2026-08-24","\u002Fblog\u002Fhow-to-restore-a-supabase-backup\u002Fcard-800x500.png",{"path":905,"title":906,"description":907,"published":908,"category":626,"image":909,"draft":581},"\u002Fblog\u002Fsupabase-storage-bucket-public","Dein Supabase-Storage-Bucket ist öffentlich. Ist das ein Problem?","Ein öffentlicher Supabase-Storage-Bucket heißt: Wer die URL einer Datei hat, kann sie öffnen. Er heißt nicht, dass jemand den Inhalt auflisten darf.","2026-08-23","\u002Fblog\u002Fsupabase-storage-bucket-public\u002Fcard-800x500.png",{"path":911,"title":912,"description":913,"published":914,"category":626,"image":915,"draft":581},"\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend","Ist ein Google-API-Schlüssel im Frontend ein Problem?","Ein Google-API-Schlüssel im Frontend ist der Fund unseres Scanners Nummer eins, und meistens unbedenklich. Eine kostenlose Einstellung entscheidet darüber.","2026-08-22","\u002Fblog\u002Fgoogle-api-key-exposed-in-frontend\u002Fcard-800x500.png",{"path":917,"title":918,"description":919,"published":920,"category":577,"image":921,"draft":581},"\u002Fblog\u002Fai-agent-deleted-my-database","Ein KI-Agent hat meine Supabase-Daten gelöscht. Was hole ich zurück?","Ein KI-Agent hat Daten aus deiner Datenbank gelöscht. Was du zurückholst, stand schon vorher fest, und die nächsten Minuten entscheiden über den Rest.","2026-08-21","\u002Fblog\u002Fai-agent-deleted-my-database\u002Fcard-800x500.png",{"path":923,"title":924,"description":925,"published":926,"category":626,"image":927,"draft":581},"\u002Fblog\u002Fcan-anyone-read-your-supabase-database","Kann jeder deine Supabase-Datenbank lesen? 3.680 Apps im Test","Kann jeder deine Supabase-Datenbank ohne Login lesen? Wir haben 30.998 aktive Apps aus KI-Buildern gescannt und gemessen, wie oft die Antwort ja lautet.","2026-08-18","\u002Fblog\u002Fcan-anyone-read-your-supabase-database\u002Fcard-800x500.png",{"path":929,"title":930,"description":931,"published":926,"category":626,"image":932,"draft":581},"\u002Fblog\u002Fsource-maps-exposed-in-production","Source-Maps öffentlich: deine App veröffentlicht ihren Quellcode","Eine öffentliche Source-Map lässt jeden den Originalcode deiner App lesen, Kommentare inklusive. Der 30-Sekunden-Check, und was wirklich zählt.","\u002Fblog\u002Fsource-maps-exposed-in-production\u002Fcard-800x500.png",{"path":934,"title":935,"description":936,"published":937,"category":626,"image":938,"draft":581},"\u002Fblog\u002Fsupabase-new-api-keys","Supabases neue API-Schlüssel: welcher gehört in deine App?","Supabase hat anon und service_role durch öffentliche und geheime Schlüssel ersetzt. Welcher gehört in deine App, und welcher nie?","2026-08-12","\u002Fblog\u002Fsupabase-new-api-keys\u002Fcard-800x500.png",{"path":252,"title":940,"description":941,"published":942,"category":577,"image":943,"draft":581},"Sichert Supabase meine Datenbank? Das hängt von deinem Tarif ab.","Sichert Supabase deine Datenbank? Auf bezahlten Tarifen täglich, im Gratis-Tarif gar nicht. So findest du heraus, was du hast und was es nicht abdeckt.","2026-08-11","\u002Fblog\u002Fdoes-supabase-back-up-my-database\u002Fcard-800x500.png",{"path":945,"title":946,"description":947,"published":948,"category":626,"image":949,"draft":581},"\u002Fblog\u002Fsupabase-rls-on-but-table-still-public","Supabase Row Level Security ist an. Die Tabelle ist trotzdem offen.","Supabase Row Level Security anzuschalten schützt keine Tabelle. Erst deine Policies tun das, und die, die deine App repariert hat, lässt oft alle herein.","2026-08-10","\u002Fblog\u002Fsupabase-rls-on-but-table-still-public\u002Fcard-800x500.png",{"path":951,"title":952,"description":953,"published":948,"category":577,"image":954,"draft":581},"\u002Fblog\u002Fversion-history-is-not-a-backup","Der Versionsverlauf ist kein Backup. Er holt keine Tabelle zurück.","Lovable und Bolt führen einen Versionsverlauf für deinen Code. Deine Datenbank ist ein eigener Dienst, und ein Rücksprung holt deine Daten nicht zurück.","\u002Fblog\u002Fversion-history-is-not-a-backup\u002Fcard-800x500.png",{"path":956,"title":957,"description":958,"published":959,"category":577,"image":960,"draft":581},"\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database","Drei Wege, eine Supabase-Datenbank zu sichern, und was fehlt","Das Dashboard, pg_dump und ein verwalteter Dienst. Was jeder Weg wirklich sichert, was er stillschweigend auslässt und welcher den Kontoverlust übersteht.","2026-08-09","\u002Fblog\u002Fthree-ways-to-back-up-a-supabase-database\u002Fcard-800x500.png",{"path":962,"title":963,"description":964,"published":959,"category":626,"image":965,"draft":581},"\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend","Welche API-Schlüssel im Frontend sicher sind, und welche nicht","Dein Supabase-anon-Schlüssel darf öffentlich sein. Der service_role-Schlüssel nicht. Er ignoriert jede Regel, die du setzt. So erkennst du den Unterschied.","\u002Fblog\u002Fwhich-api-keys-are-safe-in-your-frontend\u002Fcard-800x500.png",1791618966337]