sql >> Database >  >> RDS >> Oracle

Meningen over authenticatie tussen applicatie- en databaselagen

In de meeste webapplicaties wordt het beveiligingsmodel gedefinieerd op de bedrijfslogicalaag, niet op de gegevenslaag.

Mijn vermogen om een ​​bericht op Stack Overflow te bewerken, wordt bijvoorbeeld niet bepaald door mijn vermogen om te lezen/schrijven naar de tabel "posts" - sterker nog, je zou waarschijnlijk niet eens een databaseschema kunnen ontwerpen waarmee je database-niveau kunt implementeren veiligheid op dit niveau. In plaats daarvan is er een bedrijfslogica-laag die mijn privileges vergelijkt met de actie die ik probeer te ondernemen (neem ik aan); beveiliging wordt geïmplementeerd op de bedrijfslogicalaag.

Eerlijk gezegd zie ik bijna geen voordeel in het doorgeven van inloggegevens aan de databaselaag - als ik op de een of andere manier de bedrijfslogica had omzeild om te bepalen wie SO-berichten kan bewerken, zouden de "lees/schrijf" -besturingselementen van de database dit niet voorkomen, en auditing zou ' niet echt helpen.

Ik zie VEEL nadelen - niet in de laatste plaats het feit dat u uw autorisatielogica in tweeën splitst (bedrijfslogica en database), en allerlei vermakelijke faalwijzen introduceert met het synchroniseren van accounts over uw bedrijfslogicalaag en databaselaag (gebruikers die hun wachtwoord of het verlaten van de website). Ik kan me niet voorstellen hoe je dit alles op een verstandige manier zou testen en debuggen - wat gebeurt er als een eindgebruiker een foutmelding krijgt met betrekking tot zijn databaserechten?



  1. MySQL-connectoren en licenties

  2. Langzame zoekopdracht op UNION ALL-weergave

  3. Transacties afhandelen in MySQL

  4. Een veel-op-veel-relatie converteren naar een-op-veel in PostgreSQL