/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Database system
Fra : Hans


Dato : 23-09-05 07:43

Jeg har spurgt i dk.edb.database men nu prøvet jeg også lige her.
Jeg skal lave et database system hvor mange klienter har klient programmet
som jeg laver i Delphi, dette program tilgår en MySQL database via internet.
De enkelte klienter skal kun have lov til at rette i de poster de selv
opretter men skal kunne se alle andre.
Nogle ideer

Har 100% adgang til serveren som kører MySQL og bruger WindowsXP, Delphi 7
proff.

/HK



 
 
Thomas Demant (23-09-2005)
Kommentar
Fra : Thomas Demant


Dato : 23-09-05 09:17

> Jeg har spurgt i dk.edb.database men nu prøvet jeg også lige her.
> Jeg skal lave et database system hvor mange klienter har klient programmet
> som jeg laver i Delphi, dette program tilgår en MySQL database via
> internet. De enkelte klienter skal kun have lov til at rette i de poster
> de selv opretter men skal kunne se alle andre.
> Nogle ideer
>
> Har 100% adgang til serveren som kører MySQL og bruger WindowsXP, Delphi 7
> proff.
Ud fra et sikkerhedsmæssigt synspunkt på du ALDRIG lade din Delphi
applikation styre hvilke ting brugeren må se/ikke må se i databasen. Det bør
sættes op fra MySQL databasen med en brugerkonto til hver enkel person.
Hvor vidt det er muligt at opsætte på den ønskede måde ved jeg ikke, da jeg
ikke har sat mig så grundigt ind i MySQL administrering.
Om hver enkel bruger skal have sin egen tabel i databasen ved jeg ikke. Men
det kunne være en, dog måske ikke optimal, løsning. Hvor den enkelte bruger
har ret til alt i den tabel der tilhøre vedkommende, men kun kan læse fra
"andres" tabeller.

Men hvis det ikke umiddelbart er muligt kan det laves, så der ved oprettelse
af en post i en tabel skrives hvem der har lavet denne post. F.eks. et felt
der hedder "ByUser" og indeholder brugernavnet for den enkelte person.
Din Delphi applikation kan så sammenholde den på-loggede brugers brugernavn
med det navn der er i posten. Hvis det stemmer overens så lader den personen
rette posten ellers ikke.
Det virker, men ville kunne omgås rellativt let, idet man blot skal forbinde
til databasen med noget der ikke checkker om brugernavnet til databasen er
det samme som det der har lov til at rette i posten.

--
Thomas
4990 Sx



Hans (23-09-2005)
Kommentar
Fra : Hans


Dato : 23-09-05 12:36

"Thomas Demant" <news@dement.dk> skrev i en meddelelse
news:4333b9e9$0$9168$edfadb0f@dread15.news.tele.dk...
>> Jeg har spurgt i dk.edb.database men nu prøvet jeg også lige her.
>> Jeg skal lave et database system hvor mange klienter har klient
>> programmet som jeg laver i Delphi, dette program tilgår en MySQL database
>> via internet. De enkelte klienter skal kun have lov til at rette i de
>> poster de selv opretter men skal kunne se alle andre.
>> Nogle ideer
>>
>> Har 100% adgang til serveren som kører MySQL og bruger WindowsXP, Delphi
>> 7 proff.
> Ud fra et sikkerhedsmæssigt synspunkt på du ALDRIG lade din Delphi
> applikation styre hvilke ting brugeren må se/ikke må se i databasen. Det
> bør sættes op fra MySQL databasen med en brugerkonto til hver enkel
> person.
> Hvor vidt det er muligt at opsætte på den ønskede måde ved jeg ikke, da
> jeg ikke har sat mig så grundigt ind i MySQL administrering.

Jeg tror ikke det er muligt at sætte det op i MySQL.

> Om hver enkel bruger skal have sin egen tabel i databasen ved jeg ikke.
> Men det kunne være en, dog måske ikke optimal, løsning. Hvor den enkelte
> bruger har ret til alt i den tabel der tilhøre vedkommende, men kun kan
> læse fra "andres" tabeller.

Jeg tror det vil blive for bøvlig da når der søges så skal søges i alle
tabeller på samme tid, det kan måske godt lade sig gøre men det er sikkert
bøvlig.

> Men hvis det ikke umiddelbart er muligt kan det laves, så der ved
> oprettelse af en post i en tabel skrives hvem der har lavet denne post.
> F.eks. et felt der hedder "ByUser" og indeholder brugernavnet for den
> enkelte person.
> Din Delphi applikation kan så sammenholde den på-loggede brugers
> brugernavn med det navn der er i posten. Hvis det stemmer overens så lader
> den personen rette posten ellers ikke.
> Det virker, men ville kunne omgås rellativt let, idet man blot skal
> forbinde til databasen med noget der ikke checkker om brugernavnet til
> databasen er det samme som det der har lov til at rette i posten.

Det er også hvad jeg har tænkt på men som du selv skriver så kan den lidt
smartere bruger måske finde frem til brugernavn og password og så bruge et
andet program.

En anden løsning kunne måske være at ligge et program på serveren som så
ligger i mellem klient programmet og MySQL databasen, nogen der har erfaring
med den slags?

/HK



Jesper Nielsen (24-09-2005)
Kommentar
Fra : Jesper Nielsen


Dato : 24-09-05 10:55

> Jeg har spurgt i dk.edb.database men nu prøvet jeg også lige her.
> Jeg skal lave et database system hvor mange klienter har klient programmet
> som jeg laver i Delphi, dette program tilgår en MySQL database via
> internet. De enkelte klienter skal kun have lov til at rette i de poster
> de selv opretter men skal kunne se alle andre.
> Nogle ideer

Hvad med en lavteknologisk løsning.
Lad hver bruger skrive i sin tabel, og lave et view der er et join af alle
brugeres tabeller. Så skal du kun når du skriver gøre det i alternativ
tabel, resten af tiden bruger du dit view. Nu kender jeg ikke mySQL, men i
andre databaser kan man lave et populeret view så det ikke koster
performance overhovedet.

/Jesper



Hans (24-09-2005)
Kommentar
Fra : Hans


Dato : 24-09-05 11:38

"Jesper Nielsen" <jesperlangfeldt@nielsen.fjerndette.mail.dk> skrev i en
meddelelse news:43352262$0$181$edfadb0f@dtext02.news.tele.dk...
>> Jeg har spurgt i dk.edb.database men nu prøvet jeg også lige her.
>> Jeg skal lave et database system hvor mange klienter har klient
>> programmet som jeg laver i Delphi, dette program tilgår en MySQL database
>> via internet. De enkelte klienter skal kun have lov til at rette i de
>> poster de selv opretter men skal kunne se alle andre.
>> Nogle ideer
>
> Hvad med en lavteknologisk løsning.
> Lad hver bruger skrive i sin tabel, og lave et view der er et join af alle
> brugeres tabeller. Så skal du kun når du skriver gøre det i alternativ
> tabel, resten af tiden bruger du dit view. Nu kender jeg ikke mySQL, men i
> andre databaser kan man lave et populeret view så det ikke koster
> performance overhovedet.

Det ser ud til at view først er understøttet fra version 5 og jeg bruger
version 4.

/HK



Jesper Nielsen (24-09-2005)
Kommentar
Fra : Jesper Nielsen


Dato : 24-09-05 17:06


> Det ser ud til at view først er understøttet fra version 5 og jeg bruger
> version 4.

Hvad med database triggers eller anden funktionalitet der kunne tillade dig
at kopiere data fra den individuelle tabel over i en anden, evt som server
task?

/Jesper



Hans (25-09-2005)
Kommentar
Fra : Hans


Dato : 25-09-05 15:55

"Jesper Nielsen" <jesperlangfeldt@nielsen.fjerndette.mail.dk> skrev i en
meddelelse news:4335795f$0$177$edfadb0f@dtext02.news.tele.dk...
>
>> Det ser ud til at view først er understøttet fra version 5 og jeg bruger
>> version 4.
>
> Hvad med database triggers eller anden funktionalitet der kunne tillade
> dig at kopiere data fra den individuelle tabel over i en anden, evt som
> server task?

Triggers er vist også først med i MySQL fra version 5 og jeg syntes ikke jeg
er faldet over andre muligheder. Det ender nok med at jeg laver et lille
program som kører på serveren som de enkelte klienter så logger på, det
giver mig så også muligheden for at lave nogle smart ting.

/HK



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste