The design didn't account for everyone updating the same records. A common design challenge is addressing heavy insert and update activity focused on the pages containing the most current rows. A developer can deal with this problem by changing the data indexing scheme so new rows are added to different pages in the database. Otherwise, the system is destined to bog down as individual applications vie for the most frequently used pages. The design didn't account for developers accessing potentially sensitive data.
Security is a prime concern.
This is especially true when the User-ID and assignments grant permissions to access base database tables. By building stored procedures or server-side ActiveX Components to gate access to the data, a developer can prevent the sharks from slithering through the aquarium nibbling at the trophy specimens. This design also offers a way to implement business rules on the server and simplify application design and dissemination. Since security procedures can change without recompiling applications, significant security enhancements can be made without changing a single installed application. While it is possible to do so, there are not many cases where this yields the best performance.