This smells like an open-ended, opinionated, wiki free-for-all, but I'm not trying to make this a battle of opinions.
It seems like there should be a good checklist out there for all to agree on that addresses the security aspect of database design & implementation.
I'm not asking about the details of storing salted/encrypted data such as passwords... I'm asking about the general guidelines one should follow before and while setting up a database so that it naturally inherits a reasonable degree of security & privacy from unwelcome company.
Can security/privacy be implemented on a schema level? Or is the safety of the database dependent on the code used to manipulate it?
I am looking for some answers that are somewhere between setting up db user and table rights, creating stored procs, using views, etc.... and encrypting stored data.
Can table relations, field dependencies, data types, lock modes, indexes, keys, etc... be set up to actively help protect a database against attacks and/or theft?