best to have security implemented closest as possible to the data (...) in the database it is ideal.
Perché? Che cosa? Dove? Come?
No, l'idea che desideri proteggere i dati non ha nulla a che fare con il livello dati (ad es. database) in un'applicazione a livelli. Nella stragrande maggioranza dei casi sarebbe una cosa terribilmente brutta da fare.
L'idea di salvaguardare i dati è il ragionamento in cui collochi le protezioni in cui i dati vengono mantenuti ed elaborati in ogni livello dell'applicazione (incluso il livello del database se i dati forniti sono essere salvaguardato giace lì). Se qualsiasi livello dell'applicazione in grado di eseguire richieste di dati è compromesso, ignorerà le protezioni nei livelli inferiori.
Per un semplice esempio: se si dispone di un'applicazione in cui l'accesso al database è protetto da una password e il livello dell'applicazione archivia e riutilizza tale password sulle connessioni, è sufficiente compromettere il livello dell'applicazione.
Addendum
Uno scenario in cui l'idea che le protezioni devono essere vicine al database ha un senso è un livello di applicazione che può elaborare dati crittografati. Ad esempio, dove i dati vengono memorizzati crittografati nel database e le operazioni che utilizzano questi dati vengono eseguite esternamente (ad esempio in un HSM).