我习惯于在非常安全的环境中工作,因此我将权限设计为非常精细的粒度.我通常做的一件事是明确拒绝用户更新永远不应更新的列的能力.
例如:
create table dbo.something ( created_by varchar(50) not null,created_on datetimeoffset not null );
一旦设置了值,就不应该更改这两列.因此,我会明确拒绝对它们的UPDATE权限.
最近,在团队会议期间,开发人员提出了这样的观点:确保字段永远不会更新的逻辑应该包含在应用程序层中,而不是“他们需要因某种原因需要更新值”时的数据库层.对我来说,这听起来像典型的开发心态(我知道,我曾经是一个!)
我是我公司的高级架构师,我一直致力于使应用程序运行所需的最少权限的原则.所有权限都会定期审核.
这种情况下的最佳做法是什么?