none
Richtiges auslagern von Datenbank und Benutzerdaten mit UAC auf maximaler Stufe und beschränkten Rechte RRS feed

  • Frage

  • Hallo 2 Fragen bezüglich Daten die durch Software geändert werden müssen.

    1. Wohin sollte eine Datenbank gelegt werden, damit alle Standardbenutzer diese verwenden und installieren können (ab SQL 2005)

    2. Wohin sollten Daten gespeichert werden, damit diese auch geändert werden können. Temporäre, Logs, Config Dateien.

    Was ich bisher denken ist, dass für alle Windows Versionen der %programdata% Ordner am geeignetsten wäre. Ist dies so oder gibt es einen anderen Ort?

    Dienstag, 20. August 2013 19:28

Antworten

  • Die Software wird entweder als Server mit Datenbank, Com+ Anwendungen und Virtuelles Verzeichnis (im IIS) oder als Einzelplatz mit Datenbank und Com+ Anwendungen installiert. Die Datenbank wird im jeweiligen Installationsverzeichnis angelegt. Einige Daten werden ins Windows\temp ausgelagert und andere ins ausgewählte Installationsverzeichnis.

    IMHO kann man keine allgemeingültige Empfehlung dazu abgeben, denn bei einer Client- und Serveranwendung gibt es mehrere Möglichkeiten. Z.B. kannst Du die Einstellungen von einem Client in der Datenbank auf dem Server abspeichern und so hat der Benutzer immer die gleichen Einstellungen der Software, egal an welchem Client er sich anmeldet.

    Aber alle diese Dinge müsste eigentlich der Entwickler der Software wissen und vorgeben.


    Servus
    Winfried

    GPOs: http://www.gruppenrichtlinien.de/
    WSUS Package Publisher: http://wsuspackagepublisher.codeplex.com/

    • Als Antwort markiert nickfaker0 Mittwoch, 21. August 2013 16:22
    Mittwoch, 21. August 2013 16:19

Alle Antworten

  • Die Datenbank kann liegen, wo sie will. Der DIENST schreibt die Daten, nicht der User.

    Wenn es keinen Dienst oder Treiber gibt, der die Daten schreibt, der Vorgang also als BENUTZER in eigenen Kontext ausgeführt wird, dann muss die Datenbank unter %programdata% liegen, oder mittlerweile auch gerne verwendet: .\Users\Public\Documents.

    Jedenfalls ein Ort, wo der User schreiben darf.

    Config Dateien sind bäh, dafür gibt es die Registry -> HKCU

    Warum? Weil sie zentral administrierbar ist und die Werte zB über Gruppenrichtlinien für alle gesteuert werden können. 

    Und wenn schon Registry, dann auch Policy Aware!

    http://technet.microsoft.com/en-us/library/bb742499.aspx


    Tschö
    Mark Heitbrink - MVP Windows Server - Group Policy
    Homepage: www.gruppenrichtlinien.de - deutsch
    GPO Tool: www.reg2xml.com - Registry Export File Converter

    Dienstag, 20. August 2013 20:09
  • Also prinzipiell alle Dateien die geschrieben werden, auslagern nach %programdata% und wenn eine Datenbank per Script angelegt wird, dann am besten auch dorthin, da der User sonst keine Rechte unter Program Files (x86) (z.b.) hat. Config Dateien wenn möglich in die Registry zu HKCU bzw. HKU für alle Benutzer Packen.

    Würde HKLM auch gehen oder hat der Benutzer dort wiederum zu wenig Rechte?

    Dienstag, 20. August 2013 20:37
  • Config Dateien sind bäh, dafür gibt es die Registry -> HKCU

    Warum? Weil sie zentral administrierbar ist und die Werte zB über Gruppenrichtlinien für alle gesteuert werden können. 

    Und wenn schon Registry, dann auch Policy Aware!

    http://technet.microsoft.com/en-us/library/bb742499.aspx

    Wie kann man denn die Einstellungen die "Global" für ein Programm gelten sollen in HKCU speichern. Ich kann doch den 20 Usern nicht jedes mal die 50 Einstellungen eingeben lassen.

    Ohne erhöhte Rechte darf ein Programm nicht in HKLM schreiben (lesen darf man) also muss man sich einen Ordner suchen wo ein Programm ohne erhöhte Rechte für alle Benutzer lesen und schreiben kann.

    In den meisten größeren Programmen (die noch auf andere Sachen zugreifen müssen wie DBase und solche alten Sachen) wird es immer schwieriger mit eingeschalteter UAC und ohne Lokale Admin-Rechte noch Möglichkeiten zu haben "Globale" Einstellungen einmal für alle Benutzer zu speichern Stichwort "Terminal Sitzung". Also nicht immer sind Config-Dateien Bäh

    Gruß Thomas

    Dienstag, 20. August 2013 21:01
  • Hallo 2 Fragen bezüglich Daten die durch Software geändert werden müssen.

    1. Wohin sollte eine Datenbank gelegt werden, damit alle Standardbenutzer diese verwenden und installieren können (ab SQL 2005)

    Bei einer SQL Server Datenbank ist es egal wo die Dateien liegen, wie Mark schon geschrieben hat, das Schreiben übernimmt der Dienst.

    2. Wohin sollten Daten gespeichert werden, damit diese auch geändert werden können. Temporäre, Logs, Config Dateien.

    Was ich bisher denken ist, dass für alle Windows Versionen der %programdata% Ordner am geeignetsten wäre. Ist dies so oder gibt es einen anderen Ort?


    Ganz so pauschal lässt sich das nicht sagen. Wenn es Benutzerspezifische Einstellungen für ein Programm sind, dann in das jeweilige Benutzerprofil bzw. in die Registry beim Benutzer, also HKCU.

    Servus
    Winfried

    GPOs: http://www.gruppenrichtlinien.de/
    WSUS Package Publisher: http://wsuspackagepublisher.codeplex.com/

    Dienstag, 20. August 2013 21:07
  • Also prinzipiell alle Dateien die geschrieben werden, auslagern nach %programdata% und wenn eine Datenbank per Script angelegt wird, dann am besten auch dorthin, da der User sonst keine Rechte unter Program Files (x86) (z.b.) hat. Config Dateien wenn möglich in die Registry zu HKCU bzw. HKU für alle Benutzer Packen.

    Nein, so pauschal kann man das nicht schreiben. Es kommt immer darauf an. ;)

    Würde HKLM auch gehen oder hat der Benutzer dort wiederum zu wenig Rechte?


    Start > Ausführen > REGEDIT [ENTER]. Rechtsklick auf HKLM\Software > Berchtigungen. Welche Berechtigungen haben die Benutzer?

    Servus
    Winfried

    GPOs: http://www.gruppenrichtlinien.de/
    WSUS Package Publisher: http://wsuspackagepublisher.codeplex.com/

    Dienstag, 20. August 2013 21:10
  • Ok nur lesen Berechtigungen hast mich überzeugt : )

    Es gibt beide, Benutzerabhängige und Benutzerunabhängige Daten.

    Also es gibt einen Users Ordner im Verzeichnis der Software, und dort werden temporäre Daten (z.b. Word Dokumente) abgelegt.

    Da muss ich den wohl nach %programdata% am besten verschieben. Log Dateien sollten besser auch dorthin, mangels Rechten und Config Dateien können denke ich bleiben, da diese nur beim Update geändert werden und da ein Update sowieso Administrative Rechte benötigt, sollte dies passen. Stimmts du mir zu?

    Dienstag, 20. August 2013 21:29
  • Ok nur lesen Berechtigungen hast mich überzeugt : )

    ich wollte damit eigentlich nur sagen, selbst ist der Mann. ;)

    Es gibt beide, Benutzerabhängige und Benutzerunabhängige Daten.

    Also es gibt einen Users Ordner im Verzeichnis der Software, und dort werden temporäre Daten (z.b. Word Dokumente) abgelegt.

    Da muss ich den wohl nach %programdata% am besten verschieben. Log Dateien sollten besser auch dorthin, mangels Rechten und Config Dateien können denke ich bleiben, da diese nur beim Update geändert werden und da ein Update sowieso Administrative Rechte benötigt, sollte dies passen. Stimmts du mir zu?


    Erzähl doch etwas mehr über das Projekt. Soll die Software auf einem Server oder mehreren Clients installiert werden? Wie soll man dir vernünftige Tipps geben können, wenn Du nicht mit Infos kommst?

    Servus
    Winfried

    GPOs: http://www.gruppenrichtlinien.de/
    WSUS Package Publisher: http://wsuspackagepublisher.codeplex.com/

    Mittwoch, 21. August 2013 05:07
  • Die Software wird entweder als Server mit Datenbank, Com+ Anwendungen und Virtuelles Verzeichnis (im IIS) oder als Einzelplatz mit Datenbank und Com+ Anwendungen installiert. Die Datenbank wird im jeweiligen Installationsverzeichnis angelegt. Einige Daten werden ins Windows\temp ausgelagert und andere ins ausgewählte Installationsverzeichnis.
    Mittwoch, 21. August 2013 10:18
  • Die Software wird entweder als Server mit Datenbank, Com+ Anwendungen und Virtuelles Verzeichnis (im IIS) oder als Einzelplatz mit Datenbank und Com+ Anwendungen installiert. Die Datenbank wird im jeweiligen Installationsverzeichnis angelegt. Einige Daten werden ins Windows\temp ausgelagert und andere ins ausgewählte Installationsverzeichnis.

    IMHO kann man keine allgemeingültige Empfehlung dazu abgeben, denn bei einer Client- und Serveranwendung gibt es mehrere Möglichkeiten. Z.B. kannst Du die Einstellungen von einem Client in der Datenbank auf dem Server abspeichern und so hat der Benutzer immer die gleichen Einstellungen der Software, egal an welchem Client er sich anmeldet.

    Aber alle diese Dinge müsste eigentlich der Entwickler der Software wissen und vorgeben.


    Servus
    Winfried

    GPOs: http://www.gruppenrichtlinien.de/
    WSUS Package Publisher: http://wsuspackagepublisher.codeplex.com/

    • Als Antwort markiert nickfaker0 Mittwoch, 21. August 2013 16:22
    Mittwoch, 21. August 2013 16:19