Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Opinie na temat uwierzytelniania między warstwami aplikacji i bazy danych

W większości aplikacji internetowych model zabezpieczeń jest definiowany w warstwie logiki biznesowej, a nie w warstwie danych.

Na przykład moja zdolność do edycji postu na Stack Overflow nie jest kontrolowana przez moją zdolność do odczytu / zapisu do tabeli "posts" - w rzeczywistości prawdopodobnie nie mógłbyś nawet zaprojektować schematu bazy danych, który pozwoliłby na zaimplementowanie na poziomie bazy danych bezpieczeństwo na tym poziomie. Zamiast tego istnieje warstwa logiki biznesowej, która porównuje moje uprawnienia z akcją, którą próbuję wykonać (zakładam); bezpieczeństwo jest zaimplementowane w warstwie logiki biznesowej.

Szczerze mówiąc, nie widzę prawie żadnej korzyści z przekazywania poświadczeń do warstwy bazy danych - gdybym w jakiś sposób ominął logikę biznesową do kontrolowania, kto może edytować posty SO, kontrolki bazy danych "odczyt/zapis" nie zapobiegłyby temu, a audyt nie naprawdę ci pomóc.

Widzę WIELE niedogodności - nie tylko fakt, że podzielisz logikę autoryzacji na dwie (logikę biznesową i bazę danych) i wprowadzisz wszelkiego rodzaju zabawne tryby awarii z synchronizacją kont w warstwie logiki biznesowej i w warstwie bazy danych (użytkownicy zmieniający swoje hasło lub opuszczenie strony internetowej). Nie potrafię sobie wyobrazić, jak byś rozsądnie testował i debugował to wszystko — co się stanie, jeśli użytkownik końcowy otrzyma błąd związany z jego uprawnieniami do bazy danych?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL oblicza częstotliwość elementów przy użyciu wielu / zależnych kolumn?

  2. ORA-04061:istniejący stan treści pakietu PACKAGE.NAME został unieważniony utrzymuje się

  3. Konwertuj tablicę Varchar2 na Char w Oracle

  4. ORA-00979:nie dotyczy wyrażenia GROUP BY

  5. Jak zainstalować program SQL Developer na komputerze Mac?