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