Avatar billede roadkill Nybegynder
16. januar 2001 - 12:19 Der er 9 kommentarer og
1 løsning

Flere brugere på samme database

http://www.weblogin.dk tilbyder vi sites at benytte et system, der deler profildata mellem alle de sites, en bruger besøger (hvis brugeren ønsker det). Vi har i første omgang implementeret dette på en måde, der binder sig meget hårdt til PHP, men vil nu gerne undersøge andre muligheder.
Den mest åbenlyse måde at dele profildataene på ville jo være, at der til hver site blev lavet en bruger, som kun kunne tilgå de indgange i vores Profil-tabel, som svarede til brugere, der havde benyttet sin profil hos netop denne site... Altså vha. et view -- men da views ikke endnu er implementeret i MySQL, så er det jo ikke en mulighed. Er der nogen, som har et godt forslag til, hvordan man laver begrænset tilgang til en bestemt tabel afhængigt af hvilken bruger, man er logget ind som...? Er det virkeligt nødvendigt at lave redundante tabeller - en pr. bruger -, som man kopierer info fra hovedtabellen over i, når den bliver tilgængelig for brugeren?
Avatar billede roadkill Nybegynder
16. januar 2001 - 12:20 #1
Jeg ved godt, at man kan skjulle kolonner for brugere... men kan man ligeledes skjule rækker...?
Avatar billede disky Nybegynder
16. januar 2001 - 12:43 #2
Hvorfor SKAL der bruges et view, du kan da bare søge efter de poster hvor brugens ID passer
Avatar billede defrost Nybegynder
16. januar 2001 - 12:43 #3
Tror ikke, at der er nogen umiddelbar løsning. Anden en at oprette redundante tabeller.

Uden views eller rules kan du vist ikke laves sådan noget...

Desværre.
Avatar billede roadkill Nybegynder
16. januar 2001 - 12:56 #4
>> defrost : Så\'n noget må du ikke sige!
>> disky : Fordi brugeren KUN MÅ få adgang til de rækker i tabellen, som han har lov til at se - resten MÅ han/hun ikke kunne kigge i!
Avatar billede steffen Nybegynder
16. januar 2001 - 13:05 #5
Du kan sagtens bruge fx. MSSQL i PHP.
Avatar billede mkelle1 Nybegynder
16. januar 2001 - 13:21 #6
Hej Roadkill

Hvis den enkelte bruger har et antal poster i hovedtabellen, skulle det kunne løses som disky siger med at tilføje et bruger-ID til hovedtabellen. Hvis flere brugere deler nogle poster i tabellen, bliver du nødt til at oprette en tabel der holder styr på hvilke poster den enkelte bruger har relationer til, men det behøver ikke at være alle data, primærnøglen fra hovedtabellen er nok. - Eller er problematikken i virkeligheden en anden?

Mads
Avatar billede defrost Nybegynder
16. januar 2001 - 14:03 #7
Jeg tror, at Roadkills problem er, at brugerne kan have adgang direkte til mysql og ikke gennem et specialskrevet klient-program. Det giver et problem ved at folk nemt kunne læse \"andres\" entries i en tabel, da de enten har select-rettigheder eller ej på den tabel (eller kolonne). Der er ikke muligheder for at sige, at de kun må select bestemte rækker ud.

Et view vil kunne løse problemerne ved kun at tillade visning af view\'et og ikke af den bagvedliggende database. Viewet skulle så oprettes, så det kun viste brugerens entry i den underliggende tabel.

Desværre kan jeg ikke se andre løsninger. :(
Avatar billede roadkill Nybegynder
16. januar 2001 - 16:05 #8
>> steffen: I know... men jeg har altså kun adgang til MySQL :-)
Avatar billede roadkill Nybegynder
16. januar 2001 - 16:07 #9
mkelle1 >> Problemet er, som defrost skriver, at alle brugerne skal ha\' direkte adgang til mySQL-databasens tabel - men KUN til den del af tabellen, som de har ret til at kigge i.
Avatar billede roadkill Nybegynder
21. februar 2001 - 10:51 #10
Nå, men tak for hjælpen - bare ærgerligt, at ingen kunne løse mit problem (det er nok desværre uløseligt...)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester