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