Announcement

Collapse
No announcement yet.

Warum braucht eine Delphi-Anwendung kein Passwort um auf eine Access-Datei zuzugreifen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Warum braucht eine Delphi-Anwendung kein Passwort um auf eine Access-Datei zuzugreifen?

    hallo,

    eigentlich wurde hier ja schon eine menge zu diesem thema geschrieben. ich habe es aber trotzdem nicht so richtig verstanden.

    meine anwendung greift auf eine accessdatei zu. da ich noch nicht weiss, wo sie im netz liegen wird, kann man mit<br>
    --> VarDSN := PromptDataSource(0,'');<br>
    den adoconnection string einlesen. dann werden die tabellen aktiviert und alles funktioniert.

    da nicht jeder in der db schreibrechte haben soll, habe ich wie hier beschrieben eine informationsdatei mit einem administrator und einem benutzer eingerichtet.

    klicke ich die mdb datei direkt an, wird nach benutzerkonto und kennwort gefragt. der administrator hat schreibrechte und der benutzer kann nur lesen.

    starte ich aber die delphi anwendung und rufe die datenverknüpfungseigenschaften auf, habe ich ohne benutzerkonto und kennwort sofort schreibrechte in der access datenbank.

    gruss matthias

  • #2
    hallo,

    jetzt habe ich 10.000 versuche gemacht und weiss wie es funktioniert ;-)

    <PRE>
    procedure CreateDSNTemp;
    begin
    VarDSNTemp := 'Provider=Microsoft.Jet.OLEDB.4.0;';
    VarDSNTemp := VarDSNTemp+'Password="";';
    VarDSNTemp := VarDSNTemp+'User ID=;';
    VarDSNTemp := VarDSNTemp+'Data Source='+VarMDBPath+';';
    VarDSNTemp := VarDSNTemp+'Mode=Share Deny None;';
    VarDSNTemp := VarDSNTemp+'Extended Properties="";';
    VarDSNTemp := VarDSNTemp+'Locale Identifier=1033;';
    VarDSNTemp := VarDSNTemp+'Jet OLEDB:System database='+VarMDWPath+';';
    VarDSNTemp := VarDSNTemp+'Jet OLEDB:Registry Path="";';
    VarDSNTemp := VarDSNTemp+'Jet OLEDB:Engine Type=5;';
    VarDSNTemp := VarDSNTemp+'Jet OLEDBatabase Locking Mode=1;';
    VarDSNTemp := VarDSNTemp+'Jet OLEDB:Global Partial Bulk Ops=2;';
    VarDSNTemp := VarDSNTemp+'Jet OLEDB:Global Bulk Transactions=1;';
    VarDSNTemp := VarDSNTemp+'Jet OLEDB:New Database Password="";';
    VarDSNTemp := VarDSNTemp+'Jet OLEDB:Create System Database=False;';
    VarDSNTemp := VarDSNTemp+'Jet OLEDB:Encrypt Database=False;';
    VarDSNTemp := VarDSNTemp+'Jet OLEDB:Compact Without Replica Repair=False;';
    VarDSNTemp := VarDSNTemp+'Jet OLEDB:SFP=False;';
    VarDSNTemp := VarDSNTemp+'Jet OLEDBatabase Password="'+VarDBPW+'"';
    end;
    </PRE>

    VarMDBPath > pfad zur mdb datei<br>
    VarMDWPath > pfad zur mdw datei<br>
    VarDBPW > access datenbankpasswort<br>

    1. so kann man die pfade variabel halten<br>
    2. das datenbankpasswort wird übergeben<br>
    3. in die anmeldemaske kann man konto/passwort eingeben<br>

    gruss matthia

    Comment

    Working...
    X