none
Wie erstellt Ihr Updates für Datenbanken? RRS feed

  • Frage

  • Hallo Datenbank Profies.

    Ich stehe gerade vor der Frage, wie wir für eine Anwendung die als Datenquelle einen SQL-Server hat, Updates gegen die Datenquelle handhaben.

    Gedacht hatten wir folgendes Szenario:
    - Update der Anwendung (neue Version)
    - SQL-Scripts werden in einem Ordner abgelegt und nach erfolgreichem Update in einen Archiv Ordner verschoben.

    Also ergeben sich folgende (Grobe) Schritte:

    • Update (Anwendung) einspielen
    • Anwendung starten
    • Prüfung ob Scripts vorhanden sind welche ausgeführt werden müssen
    • Gegebenfalls Scripts ausführen
    • Mit Anwendung arbeiten

    Mein Problem was ich jetzt sehe ist, das die Arbeitsplätze kein Managment Studio oder SQL-Server installiert haben und somit die Assemblies "SMO" usw nicht verfügbar sind. Darf man diese Assemblies mitgeben. Bisher haben wir die Datenquelle falls nötig selbst geändert, aber das soll möglichst in Zukunft nicht mehr so sein.

    Kann mir da jemand Denkanstöße geben?

    Grüße Thomas

    Donnerstag, 6. Dezember 2012 09:58

Antworten

  • Hallo Thomas,

    so ein Konzept ist in einem KMU und Konzern überhaupt nicht durchführbar, da Du für das Ausführen von Scripten mit Schemaänderungen weitreichende Berechtigungen benötigst.

    Auf Grund von "Segregation of Duty" würdest Du mit diesem Konzept z. B. in einer Bank gegen die Wand laufen.
    Scripte sollten immer durch DBA's eingespielt werden, die die Scripte vorher prüfen.

    Wäre eine solche Lösung nicht praktikabel, würde die Applikation erst garnicht eingesetzt oder aber ohne Support durch die interne IT gehostet werden.

    Beispiel 1:

    Du hast ein Script in Deinem Repository, das einen Job anlegt, der periodisch ein einer Relation in Deiner Datenbank nach SQL Befehlen sucht, die ausgeführt werden sollen. Da i. d. R. der SQL Agent mit sysadmin Privilegien ausgestattet ist, würde ein unkontrollierter Zugriff auf das System gegeben sein.

    Beispiel 2:

    In einem von 20 Scripten gibt es einen Laufzeitfehler.
    Habt Ihr vorher eine Datensicherung gemacht?
    Was ist mit Änderungen in der Datenbank, die zwischen Einspielen des Scripts sowie Datenfehler vorgenommen werden sollen?
    Wer untersucht, welcher Fehler warum aufgetaucht ist?

    Mein persönliches Fazit: SQL Scripte gehören durch die IT-Abteilung (in großen Unternehmen durch dedizierte DBA) eingespielt. Und das ganze sauber in einem Change-Management-Verfahren (ITIL)


    Uwe Ricken

    MCITP Database Administrator 2005
    MCITP Database Administrator 2008
    MCITP Microsoft SQL Server 2008, Database Development

    db Berater GmbH
    http://www-db-berater.de
    SQL Server Blog (german only)

    • Als Antwort markiert tommytom73 Donnerstag, 6. Dezember 2012 10:26
    Donnerstag, 6. Dezember 2012 10:06

Alle Antworten

  • Hallo Thomas,

    so ein Konzept ist in einem KMU und Konzern überhaupt nicht durchführbar, da Du für das Ausführen von Scripten mit Schemaänderungen weitreichende Berechtigungen benötigst.

    Auf Grund von "Segregation of Duty" würdest Du mit diesem Konzept z. B. in einer Bank gegen die Wand laufen.
    Scripte sollten immer durch DBA's eingespielt werden, die die Scripte vorher prüfen.

    Wäre eine solche Lösung nicht praktikabel, würde die Applikation erst garnicht eingesetzt oder aber ohne Support durch die interne IT gehostet werden.

    Beispiel 1:

    Du hast ein Script in Deinem Repository, das einen Job anlegt, der periodisch ein einer Relation in Deiner Datenbank nach SQL Befehlen sucht, die ausgeführt werden sollen. Da i. d. R. der SQL Agent mit sysadmin Privilegien ausgestattet ist, würde ein unkontrollierter Zugriff auf das System gegeben sein.

    Beispiel 2:

    In einem von 20 Scripten gibt es einen Laufzeitfehler.
    Habt Ihr vorher eine Datensicherung gemacht?
    Was ist mit Änderungen in der Datenbank, die zwischen Einspielen des Scripts sowie Datenfehler vorgenommen werden sollen?
    Wer untersucht, welcher Fehler warum aufgetaucht ist?

    Mein persönliches Fazit: SQL Scripte gehören durch die IT-Abteilung (in großen Unternehmen durch dedizierte DBA) eingespielt. Und das ganze sauber in einem Change-Management-Verfahren (ITIL)


    Uwe Ricken

    MCITP Database Administrator 2005
    MCITP Database Administrator 2008
    MCITP Microsoft SQL Server 2008, Database Development

    db Berater GmbH
    http://www-db-berater.de
    SQL Server Blog (german only)

    • Als Antwort markiert tommytom73 Donnerstag, 6. Dezember 2012 10:26
    Donnerstag, 6. Dezember 2012 10:06
  • Hallo Uwe

    Danke für Deine Anmerkungen. Wir werden uns bei der Planung sehr warscheinlich auf "Patch-Day vor Ort" einstellen.

    Grüße Thomas 

    Donnerstag, 6. Dezember 2012 10:28