![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: ZEOS
Ändern der Alias Adresse einer DB
Hallo zusammen,
mal wieder ein wahrscheinlich simple aber für mich zur Zeit nicht ganz klare frage. Bei der Firebird DB arbeitet man ja mit Alias Adressen, die in der aliases.conf unter...
Code:
Standartmäßig abgespeichert sind.
C:\Programme\Firebird\Firebird_2_1\aliases.conf'
Wenn ich jetzt dem Kunden über z.B. folgenden Code (Öffnen eines OpenDialog und Standort wählen)
Delphi-Quellcode:
die Möglichkeit geben will, den Alias zu ändern, kommen wir mal wieder zu dem Thema Speicherorte. Ich kann ohne Adminrechte auf
procedure TForm1.USERDB1Click(Sender: TObject);
var Speicherort : String; f : TextFile; begin if DatenbankUserOpenDialog.Execute then begin Speicherort := DatenbankUserOpenDialog.FileName; end; if DM_PS.SpeicherOrtDBUser(Speicherort) = true then begin AssignFile(f,'C:\Programme\Firebird\Firebird_2_1\aliases.conf'); {$i-} Append(f); {$i+} if IOResult <> 0 then begin ShowMessage('Fehler beim schreiben der Alias'); Exit; end; Writeln(f,'PSUser = '+Speicherort); CloseFile(f); MessageDlg('Datenbankverbindung erfolgreich geändert!',mtInformation,[mbOK],0); end else begin MessageDlg('Datenbankverbindung nicht geändert!',mtInformation,[mbOK],0); end; end; C:\Programme ja nicht schreiben. Wie muss man sowas machen. Also, schon mal danke bis dann. Gruß Jens |
Re: Ändern der Alias Adresse einer DB
Die Frage ist, ob es sinnvoll ist, das ein normaler Benutzer diese Datei direkt bearbeiten können. U.U wäre es sinnvoller ein Programm dafür anzubieten, welches sich die Rechte besorgt (elevation)
|
Re: Ändern der Alias Adresse einer DB
Ja, das weiß ich momentan auch noch nicht so richtig.
Im normalen Fall, werden diese Rechner mit Adminrechten versehen sein. Frage wäre, ob es Sinn machen könnte, z.B. die Menüpunkte im Menü auf Enabled = false zu setzen, wenn eine USER (WINDOWS) angemeldet ist, der keine Adminrechte hat. Das kann man doch bestimmt irgendwie beim Programmstart abfragen lassen. Grundsätzlich möchte ich halt diese Möglichkeit zur Verfügung stellen. Die Frage ist halt, wie es Sinn macht. Sollte ein Kunde anrufen, und die bitte haben, die DB an einem anderen Ort zu hinterlegen, würde ich Ihm halt gerne auf einfache weise, aber ohne etwas zu beschädigen dieses ermöglichen. Den Speicherort der DB ändere ich im Datenmodul, über folgende Funktion...
Delphi-Quellcode:
Somit, kann er währende dem laufenden Programm die DB ändern und alles funktioniert. Ich muss halt jetzt nur hinbekommen, das auch nach einem Neustart, natürlich auf den neuen Standort zugegriifen wird.
{Speicherorte der Datenbanken ändern}
function TDM_PS.SpeicherOrtDBConfig(var DBOrt: String): Boolean; begin if ConPSUser.Connected = true then begin ConPSConfig.Disconnect; ConPSConfig.Database := DBOrt; try ConPSConfig.Connect; SpeicherOrtDBConfig := true; except SpeicherOrtDBConfig := false; end; end else begin ConPSConfig.Database := DBOrt; try ConPSConfig.Connect; SpeicherOrtDBConfig := true; except SpeicherOrtDBConfig := false; end; end; end; Gruß Jens |
Re: Ändern der Alias Adresse einer DB
Hab das ganze nochmal überdacht. Ich werde die Funktion so belassen und diese Funktion nur Administratoren erstmal zur Verfügung stellen.
Aber wie sieht es denn aus, wenn ich den Standort der Datenbank, nicht in die aliases.conf, sondern in die Registry schreibe. Ist das OK, oder macht man sich über so eine Funktion gar keine Gedanken. Was bedeutet das oben mit dem externen Programm... Zitat:
|
Re: Ändern der Alias Adresse einer DB
Ich dachte da, z.B. an einen zusätzlichen Dienst auf den Server, mit Hilfe man die Aliase verwalten kann
|
Re: Ändern der Alias Adresse einer DB
Das ist mir jetzt ein bißchen unklar. Da fehlen mir jetzt die Erfahrungen. Ich vermute, Du meinst ein Programm, was als Dienst läuft, welches sich beim Start, wie auch immer ADMIN Rechte besorgt, in dem man dann diese Alias einstellen könnte.
Gruß Jens |
Re: Ändern der Alias Adresse einer DB
Bei Diensten kann man direkt angeben, unter welchem Account sie gestartet werden sollen.
|
Re: Ändern der Alias Adresse einer DB
Alles klar,
danke erstmal. Werde mich mal damit auseinandersetzte und bei Gelegenheit bestimmt nochmal Fragen. Gruß Jens |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz