• You make a lot of good points which is not surprising. I do not agree with many of them but as you correctly stated that's a reserved right of mine, and naturally that's a two way street. I maintain that synonyms and views can be useful tools in abstracting a schema from data consumers. They're just tools though, with properties that may or may not fit specific needs so choose them if they prove to be useful or leave them on the sidelines if they are not. There aren't security concerns with either (that I know of, still leaving that item open if you care to comment) so for me it's strictly a decision about whether their functionality is a good fit for a given requirement.

    Personally I prefer to drive all data consumers towards using stored procedures for all data access however I am not always successful. Sometimes for political reasons and sometimes for technical reasons. I have dealt with some customers where it simply was not possible, e.g. dealing with an ancient IVR system that was only capable of issuing ad hoc SQL via ODBC. Meanwhile a set of procs does not necessarily constitute a proper DAL for me. There are some things the data tier should not be asked to do that better belong in application code, e.g. certain applications of sorting, string concatenation, pagination, formatting, etc.

    Regarding the non-technical aspect of this thread, you lost me in your initial post which included (in my opinion) several disparaging implications making use of the word 'ignorant' multiple times.

    There are no special teachers of virtue, because virtue is taught by the whole community.
    --Plato