[Alg] Gebruikers en lokale databases

Pagina: 1
Acties:

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 18-08 22:57

Gerco

Professional Newbie

Topicstarter
Ik ben bezig om een programma te maken waarbij verschillende gebruikers gedefinieerd kunnen worden, met verschillende rechten natuurlijk. Nu is het zo dat dit programma gebruikt moet kunnen worden op 1 enkele computer en dat de database (MSSQL) daar dus ook moet draaien.

Hoe voorkom ik nu op een handige manier dat de gebruiker op de database inlogt en vrolijk zijn eigen rechten gaat zitten aanpassen of data kan zien/veranderen waar hij niet bijmag?

MSSQL is trouwens maar 1 geval, het moet via ODBC met zowat alles kunnen praten, in ieder geval ook MySQL.

[ Voor 17% gewijzigd door Gerco op 20-05-2003 17:58 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • whoami
  • Registratie: December 2000
  • Laatst online: 10:17
De juiste rechten instellen in de databank lijkt me.
Zorg ervoor dat de account waar de gebruiker mee inlogged op de DB slechts beperkte privileges heeft.

https://fgheysels.github.io/


Verwijderd

Maak een database aan voor de applicatie, maak daar 1 applicatie user account in aan. Zet in je code de inloggegevens voor deze account, zodat de applicatie altijd via deze connectie werkt. Maak vervolgens user / group tabellen in de database, en zorg dat de user altijd in de applicatie moet inloggen, en afhankelijk van deze gegevens de rechten worden bepaald binnen de applicatie.

Als alternatief kun je met MS SQL Server ook lokale of netwerkaccounts gebruiken om te valideren, maar dat werkt volgens mij niet op bijv. MySQL, dus is minder generiek.

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 18-08 22:57

Gerco

Professional Newbie

Topicstarter
Een applicatie account gebruiken met het password in de app komt me een beetje voor als security by obscurity, al is het dat misschien niet.

Hoe kun je zorgen dat de gebruiker altijd in je applicatie moet inloggen? Je windows shell veranderen naar de app is nu niet bepaald gebruikersvriendelijk (wel leuk).

Ik verwacht niet dat mijn gebruikers slim genoeg zijn om het ook daadwerkelijk te proberen, maar het staat zo lullig naar je klant toe als 1 gebruiker opeens admin geworden is omdat ik geen zin had dit probleem aan te pakken :)

Nu bedacht ik me dat ik van iedere gebruiker in het programma ook een gebruiker in de database zou kunnen maken, zou prima moeten werken, je rechtensysteem is dan wel wat beperkt, maar daar is mee te leven.

Alleen waar ik niet uitkom is hoe ik het zo kan krijgen dat de gebruiker niet bij records kan komen waar hij niets te zoeken heeft (klant x mag hij zien, maar klant y niet). Rechten op tabellen is allemaal wel in te stellen. Schrijfrecht op de user tabel heeft alleen de admin nodig, maar de data zelf is een ander verhaal...

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • PdeHoog
  • Registratie: December 2001
  • Laatst online: 23-09-2024
Gerco schreef op 21 May 2003 @ 09:50:
Een applicatie account gebruiken met het password in de app komt me een beetje voor als security by obscurity, al is het dat misschien niet.
Het is een keuze, en ik persoonlijk zou dat ook doen omdat dat de beste manier is om de database af te grendelen.
Hoe kun je zorgen dat de gebruiker altijd in je applicatie moet inloggen? Je windows shell veranderen naar de app is nu niet bepaald gebruikersvriendelijk (wel leuk).
Als ze niet anders kunnen, om de data te benaderen, zullen ze vanzelf die app wel opstarten.
Ik verwacht niet dat mijn gebruikers slim genoeg zijn om het ook daadwerkelijk te proberen, maar het staat zo lullig naar je klant toe als 1 gebruiker opeens admin geworden is omdat ik geen zin had dit probleem aan te pakken :)

Nu bedacht ik me dat ik van iedere gebruiker in het programma ook een gebruiker in de database zou kunnen maken, zou prima moeten werken, je rechtensysteem is dan wel wat beperkt, maar daar is mee te leven.

Alleen waar ik niet uitkom is hoe ik het zo kan krijgen dat de gebruiker niet bij records kan komen waar hij niets te zoeken heeft (klant x mag hij zien, maar klant y niet). Rechten op tabellen is allemaal wel in te stellen. Schrijfrecht op de user tabel heeft alleen de admin nodig, maar de data zelf is een ander verhaal...
Als eerste een tip vanuit mijn ervaring: vergeet vooral niet het SA- of Administrator-account van een wachtwoord te voorzien. Ik heb meegemaakt met een Exact voor Windows op SQLServer 2000-installatie dat alles aan de voorkant was dichtgezet behalve het SA-wachtwoord voor de database. Je kon dus gewoon met Access de financiele data benaderen.

Alle gebruikers aanmaken als database-user heeft als nadeel dat je het beheer van de applicatie gaat bemoeilijken. Je kunt ook maar heel beperkt dingen regelen in de autorisatiestructuur van SQLServer. In de applicatie kan nog een autorisatie op menu / submenu plaatsvinden. Lijkt me een stuk handiger en er is maar een (1) tool om de gebruikers te beheren.

Voor wat betreft de beperking van de data per gebruiker zou je volgens mij gebruik moeten kunnen maken van views. Je zou dan per client aan moeten gaan geven welke gebruiker rechten heeft en dan in de view hierop een selectie uitvoeren.