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

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Fælles SQL database
Fra : Harald


Dato : 19-02-06 07:48

Ca. 20 brugere skal forbinde til den samme SQL database via internet, de
enkelte brugere skal kunne oprette/rette/slette egne poster men kun se de
andres poster som altså alle er i samme database. Kan det lade sig gøre og
hvilken SQL database skal man så bruge?

/HK



 
 
Martin Christensen (19-02-2006)
Kommentar
Fra : Martin Christensen


Dato : 19-02-06 12:12

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

"Harald" <nomail@noname.dk> writes:

> Ca. 20 brugere skal forbinde til den samme SQL database via
> internet, de enkelte brugere skal kunne oprette/rette/slette egne
> poster men kun se de andres poster som altså alle er i samme
> database. Kan det lade sig gøre og hvilken SQL database skal man så
> bruge?

Hvilke typer data taler vi om? Hvilken slags interface skal de have
til databasen?

Hvis du styrer interfaces, fx ved at lave en webbrugergrænseflade, kan
du lade hver relevant tabel have en brugerkolonne, som angiver
ejerskab af den enkelte række. Så kan du begrænse de data, den enkelte
bruger kan se, til det, de selv ejer. Dette kan du gennemføre endnu
bedre ved at lade tilgangen til data ske gennem views, som kun den
enkelte bruger har rettigheder til. På disse måder kan du snildt lade
brugerne dele tabeller.

Alternativt kan du lade brugerne have forskellige tabeller, eller
sågar databaser, som kun de selv har de relevante rettigheder til.

Du vil kunne bruge de fleste DBMS'er til dette.

Martin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using Mailcrypt+GnuPG <http://www.gnupg.org>

iEYEARECAAYFAkP4UnQACgkQYu1fMmOQldXf0ACdE8xj5aj4gBsRJsQR3btIcG2n
2EsAn1fz8f8/l18kIhbQ2k7PLWLDv1vi
=b5FJ
-----END PGP SIGNATURE-----

Harald (19-02-2006)
Kommentar
Fra : Harald


Dato : 19-02-06 16:31

"Martin Christensen" <martin.sand.christensen@gmail.com> skrev i en
meddelelse news:87zmknbo22.fsf@gmail.com...
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> "Harald" <nomail@noname.dk> writes:
>
>> Ca. 20 brugere skal forbinde til den samme SQL database via
>> internet, de enkelte brugere skal kunne oprette/rette/slette egne
>> poster men kun se de andres poster som altså alle er i samme
>> database. Kan det lade sig gøre og hvilken SQL database skal man så
>> bruge?
>
> Hvilke typer data taler vi om? Hvilken slags interface skal de have
> til databasen?
>
> Hvis du styrer interfaces, fx ved at lave en webbrugergrænseflade, kan
> du lade hver relevant tabel have en brugerkolonne, som angiver
> ejerskab af den enkelte række. Så kan du begrænse de data, den enkelte
> bruger kan se, til det, de selv ejer. Dette kan du gennemføre endnu
> bedre ved at lade tilgangen til data ske gennem views, som kun den
> enkelte bruger har rettigheder til. På disse måder kan du snildt lade
> brugerne dele tabeller.
>
> Alternativt kan du lade brugerne have forskellige tabeller, eller
> sågar databaser, som kun de selv har de relevante rettigheder til.
>
> Du vil kunne bruge de fleste DBMS'er til dette.

Interfacet til databasen er et program jeg laver og som jeg skrev skal alle
kunne se alle poster med de enkelte kun rette i egne poster. Grunden til at
jeg vil have en enkelt fælles database er at der også skal kobles en
hjemmeside til den der kan vise alle poster når en kunde søger efter noget.

/HK



Martin Christensen (20-02-2006)
Kommentar
Fra : Martin Christensen


Dato : 20-02-06 01:06

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

"Harald" <nomail@noname.dk> writes:

> Interfacet til databasen er et program jeg laver og som jeg skrev
> skal alle kunne se alle poster med de enkelte kun rette i egne
> poster. Grunden til at jeg vil have en enkelt fælles database er at
> der også skal kobles en hjemmeside til den der kan vise alle poster
> når en kunde søger efter noget.

Når du helt selv styrer interfacet, skulle det ikke være nødvendigt
med flere egentlige databasebrugere. Så skulle du kunne nøjes med at
lave brugerkonti, som du gemmer i databasen som alt muligt andet. Hvis
jeg var dig, ville jeg, som jeg foreslog først, lave en ekstra kolonne
til ejerskab i de relevante tabeller, som har en reference til en
bruger i brugertabellen. Så kan du til alle tider nøjes med at vælge
data for den bruger, der er logget ind.

Martin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using Mailcrypt+GnuPG <http://www.gnupg.org>

iEYEARECAAYFAkP5B9UACgkQYu1fMmOQldXtfwCfZ8vWsuRRoLbbV0VOnXKKxKry
2WMAnjx4Qs8yFQ6nlgHs/O/czVX/ba6A
=rplA
-----END PGP SIGNATURE-----

Harald (20-02-2006)
Kommentar
Fra : Harald


Dato : 20-02-06 07:42

"Martin Christensen" <martin.sand.christensen@gmail.com> skrev i en
meddelelse news:87u0auj3mx.fsf@gmail.com...
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> "Harald" <nomail@noname.dk> writes:
>
>> Interfacet til databasen er et program jeg laver og som jeg skrev
>> skal alle kunne se alle poster med de enkelte kun rette i egne
>> poster. Grunden til at jeg vil have en enkelt fælles database er at
>> der også skal kobles en hjemmeside til den der kan vise alle poster
>> når en kunde søger efter noget.
>
> Når du helt selv styrer interfacet, skulle det ikke være nødvendigt
> med flere egentlige databasebrugere. Så skulle du kunne nøjes med at
> lave brugerkonti, som du gemmer i databasen som alt muligt andet. Hvis
> jeg var dig, ville jeg, som jeg foreslog først, lave en ekstra kolonne
> til ejerskab i de relevante tabeller, som har en reference til en
> bruger i brugertabellen. Så kan du til alle tider nøjes med at vælge
> data for den bruger, der er logget ind.

Det havde jeg også tænkt på men en kan jo rimelig let finde frem til det
brugernavn+password der bruges i mit program og så logge ind på databasen
med et helt andet program og på den måde få fuld adgang.

/HK



Martin Christensen (20-02-2006)
Kommentar
Fra : Martin Christensen


Dato : 20-02-06 11:56

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

"Harald" <nomail@noname.dk> writes:

> Det havde jeg også tænkt på men en kan jo rimelig let finde frem til
> det brugernavn+password der bruges i mit program og så logge ind på
> databasen med et helt andet program og på den måde få fuld adgang.

Hvorfor skulle det være let at tiltuske sig brugernavn og password?

Martin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using Mailcrypt+GnuPG <http://www.gnupg.org>

iEYEARECAAYFAkP5oFkACgkQYu1fMmOQldUv8QCgubxMOuipbFQvfOk+jQ44EUBP
B/MAoNptKq39i3e6lfxMF4px8eMXZr/A
=3KSg
-----END PGP SIGNATURE-----

Harald (20-02-2006)
Kommentar
Fra : Harald


Dato : 20-02-06 12:30

"Martin Christensen" <martin.sand.christensen@gmail.com> skrev i en
meddelelse news:87r75ynvs5.fsf@gmail.com...
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> "Harald" <nomail@noname.dk> writes:
>
>> Det havde jeg også tænkt på men en kan jo rimelig let finde frem til
>> det brugernavn+password der bruges i mit program og så logge ind på
>> databasen med et helt andet program og på den måde få fuld adgang.
>
> Hvorfor skulle det være let at tiltuske sig brugernavn og password?

Med en packet sniffer er det vel let, jeg går ud fra at det bliver sendt i
ren tekst i f.eks. MySQL.

/HK



Mads (20-02-2006)
Kommentar
Fra : Mads


Dato : 20-02-06 14:27

Martin Christensen wrote:
>
> Hvorfor skulle det være let at tiltuske sig brugernavn og password?
>
Decompiler?

Venlig hilsen
Mads

Martin Christensen (20-02-2006)
Kommentar
Fra : Martin Christensen


Dato : 20-02-06 13:28

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

"Harald" <nomail@noname.dk> writes:

>> Hvorfor skulle det være let at tiltuske sig brugernavn og
>> password?
>
> Med en packet sniffer er det vel let, jeg går ud fra at det bliver
> sendt i ren tekst i f.eks. MySQL.

SSL er din ven. Det er desuden ikke et problem overhovedet, hvis
webserveren og DBMS'en ligger på samme maskine, da de så kan snakke
sammen over UNIX sockets. Det giver også en klar hastighedsforbedring
af åbenlyse årsager.

Martin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using Mailcrypt+GnuPG <http://www.gnupg.org>

iEYEARECAAYFAkP5teQACgkQYu1fMmOQldVjMQCcDH7INkTQ398qI1jSKgfn5OtS
wywAoKZa0n2ano1UOnpNUzFa/1V1vZ6q
=Ruai
-----END PGP SIGNATURE-----

Mads (19-02-2006)
Kommentar
Fra : Mads


Dato : 19-02-06 16:50

Harald wrote:
> Ca. 20 brugere skal forbinde til den samme SQL database via internet, de
> enkelte brugere skal kunne oprette/rette/slette egne poster men kun se de
> andres poster som altså alle er i samme database. Kan det lade sig gøre og
> hvilken SQL database skal man så bruge?
>
Jeg ville umiddelbart lave det således at hver bruger havde read access
to tabellen. Men derudover havde de EXEC adgang til en Stored procedure
til at ændre data.
Denne stored procedure kunne så aflæse brugernavn (f.eks. via
CURRENT_USER hvis du bruger MSSQL) og gemme dette sammen med data'en.

Venlig hilsen
Mads

Mads (19-02-2006)
Kommentar
Fra : Mads


Dato : 19-02-06 16:58

Mads wrote:
> Harald wrote:
>> Ca. 20 brugere skal forbinde til den samme SQL database via internet,
>> de enkelte brugere skal kunne oprette/rette/slette egne poster men kun
>> se de andres poster som altså alle er i samme database. Kan det lade
>> sig gøre og hvilken SQL database skal man så bruge?
>>
> Jeg ville umiddelbart lave det således at hver bruger havde read access
> to tabellen. Men derudover havde de EXEC adgang til en Stored procedure
> til at ændre data.
> Denne stored procedure kunne så aflæse brugernavn (f.eks. via
> CURRENT_USER hvis du bruger MSSQL) og gemme dette sammen med data'en.
>
En anden mulighed er at definere et view på data'en som alle brugere får
SELECT, INSERT, UPDATE access til.
Dernæst kan du i MSSQL definere en trigger der køre i stedet for en
normal INSERT el. UPDATE og bruger CURRENT_USER til at afgøre om
brugeren må dette.

I så fald skal du kigge på:
CREATE TRIGGER foo ON bar INSTEAD OF INSERT ....

Venlig hilsen
Mads

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

Månedens bedste
Årets bedste
Sidste års bedste