JoNo 11 Posted February 2, 2011 Report Share Posted February 2, 2011 Hallo Ich suche eine Batch, die das MSSQL Export in eine normale Datei mit create und insert statements | SECURITY-BLOG.EU unter beschriebene via Batch erreicht. Das soll Datenbankänderungen leicht erkennbar machen (Batch wird dann zeitgesteuert aufgerufen), einfach indem zwei Textdateien miteinander verglichen werden. Viele Mitarbeiter in meinem "Betrieb" haben jeweils Jahrzehnte mehr Erfahrung mit Textdateien als mit grafischen Oberflächen. Ciao 1 Quote Link to comment
zahni 554 Posted February 2, 2011 Report Share Posted February 2, 2011 Sorry, aber die Methode erscheint mir abwegig. Das sich Daten in einer Datenbank verändern ist normal. Was willst Du wissen oder erreichen ? Zum Protokollieren von Änderungen gibt es den Transaktionslog. Quote Link to comment
NilsK 2,940 Posted February 2, 2011 Report Share Posted February 2, 2011 Moin, Zum Protokollieren von Änderungen gibt es den Transaktionslog. äh - nee, so dann doch nicht. Gruß, Nils Quote Link to comment
JoNo 11 Posted February 2, 2011 Author Report Share Posted February 2, 2011 Ich suche ein Batch, was mir (zeitgesteuert, also z.B. jede volle Stunde) das ausgibt, was unter (verbesserter Link) MS SQL 2008 (R2) Export in eine normale Datei mit Create und insert statements | SECURITY-BLOG.EU grafisch erzeugt werden kann (also Export von Schema und Daten im menschenlesbaren Textformat) - aber wer will schon jede Stunde das durchklicken? In vielen Behörden gibts nunmal Leute, die schon länger arbeiten als manche hier (mich eingeschlossen) auf diesem Planeten sind. diese Leute haben dann einfach gewohnte Arbeitsweisen (neben den fachlichen Anforderungen, z.B. an Nachvollziehbarkeit). Also (Beispielausgabe mit voellig erfundener "Datenbank). USE [bib1] GO /****** Object: Table [dbo].[Autor] Script Date: 02/02/2011 ******/ DROP TABLE [dbo].[Autor] GO /****** Object: Table [dbo].[buch] Script Date: 02/02/2011 ******/ DROP TABLE [dbo].[buch] GO /****** Object: Table [dbo].[buch] Script Date: 02/02/2011 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[buch]( [PKBuch] [varchar](50) NOT NULL, [Titel] [nvarchar](50) NOT NULL ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO INSERT [dbo].[buch] ([PKBuch], [Titel]) VALUES (N'555', N'weisserhai') INSERT [dbo].[buch] ([PKBuch], [Titel]) VALUES (N'666', N'nemo') /****** Object: Table [dbo].[Autor] Script Date: 02/02/2011 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Autor]( [PKAuthor] [varchar](50) NOT NULL, [AutorVorname] [nvarchar](50) NOT NULL, [AutorNachname] [nvarchar](50) NOT NULL ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO INSERT [dbo].[Autor] ([PKAuthor], [AutorVorname], [AutorNachname]) VALUES (N'111', N'anton', N'anfaenger') INSERT [dbo].[Autor] ([PKAuthor], [AutorVorname], [AutorNachname]) VALUES (N'222', N'bernd', N'bester') Quote Link to comment
zahni 554 Posted February 2, 2011 Report Share Posted February 2, 2011 Der Transaktionslog ist sicher nicht für Schema-Änderungen geeignet, das stimmt schon. Habe ich wohl nicht richtig verstanden. Aber warum sollte man Schema-Änderungen ständig überwachen wollen ? Schema-Änderungen können auf einen Testsystem getestet werden. Dann werden die im Rahmen eines Change-Verfahrens im produktiven System implementiert. @NilsK, besser ? Quote Link to comment
Dukel 454 Posted February 2, 2011 Report Share Posted February 2, 2011 Das was du suchst nennt sich Audit: MSSQL and Security SQL Server 2000 Security - Part 10 - Auditing — DatabaseJournal.com Understanding SQL Server Audit Die Frage ist nur WARUM willst du alles mitprotokollieren? Quote Link to comment
JoNo 11 Posted February 2, 2011 Author Report Share Posted February 2, 2011 @Dukel: ich will gar nicht "alles" mitprotokollieren, nur die Datenbank (Inhalte und Schema) in einem menschenlesbaren Format wegschreiben. Z.B. wer geändert hat, interessiert hier nicht. @zahni: Und woher kommen die Informationen für den "Change Request", z.B. "spalte X ist jetzt nvchar(50) statt nvchar(40)" her? Gefragt ist ein script a.k.a. Batch. Quote Link to comment
Dukel 454 Posted February 2, 2011 Report Share Posted February 2, 2011 Und Wieso? Wer fängt was mit den Informationen an? Quote Link to comment
zahni 554 Posted February 2, 2011 Report Share Posted February 2, 2011 Ich verstehe einfach nicht, warum Du das ständig machen willst. Wenn die Tabelle ein paar Gbyte groß ist, wass wilst Du dann mit dem Export in der Textdatei ? Von "Menschen" lesbar sind die auch nicht wirklich. Als Backup taugen diese Dateien auch nicht wirklich, wenn es Fremdschlüsselbeziehungen gibt. Quote Link to comment
JoNo 11 Posted February 2, 2011 Author Report Share Posted February 2, 2011 @zahni: Wo steht denn geschrieben, dass jede Datenbank "ein paar GByte" gross werden muss? @dukel: Bei "Bedarf (d.h. Es bimmelt das Telefon: 'Hilfe, die Datenbank tut nicht', nur weil da eventuell Informationen drinstehen die der 'Endanwender' auf den ersten Blick nicht nachvollziehen kann") kann man sehen, was sich von Dienstag, 17:00 auf Donnerstag 11:00 geändert hat - in dem man zwei Dateien in einen Texteditor lädt (stündliche Ausführung der Batch nehme ich einfach mal an). Falls dann da wirklich sich "zuviel" geändert hat, wird halt intern nachgebohrt - sonst nicht. Quote Link to comment
JoNo 11 Posted February 5, 2011 Author Report Share Posted February 5, 2011 MySQL kann das ab Werk, hab umgestellt, und muss auch gar nicht wegen Lizenzen fragen beim Chef und dem auch nicht das die MSSQL-Lizenzmodell erklären. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.