sql-server – 我应该显式DENY UPDATE到不应更新的列吗?
发布时间:2020-12-12 06:19:16 所属栏目:MsSql教程 来源:网络整理
导读:我习惯于在非常安全的环境中工作,因此我将权限设计为非常精细的粒度.我通常做的一件事是明确拒绝用户更新永远不应更新的列的能力. 例如: create table dbo.something ( created_by varchar(50) not null,created_on datetimeoffset not null); 一旦设置了值,
我习惯于在非常安全的环境中工作,因此我将权限设计为非常精细的粒度.我通常做的一件事是明确拒绝用户更新永远不应更新的列的能力.
例如: create table dbo.something ( created_by varchar(50) not null,created_on datetimeoffset not null ); 一旦设置了值,就不应该更改这两列.因此,我会明确拒绝对它们的UPDATE权限. 最近,在团队会议期间,开发人员提出了这样的观点:确保字段永远不会更新的逻辑应该包含在应用程序层中,而不是“他们需要因某种原因需要更新值”时的数据库层.对我来说,这听起来像典型的开发心态(我知道,我曾经是一个!) 我是我公司的高级架构师,我一直致力于使应用程序运行所需的最少权限的原则.所有权限都会定期审核. 这种情况下的最佳做法是什么? 解决方法这个论点没有意义.我总是希望控件和约束尽可能接近数据.将它放在应用程序层意味着它只影响使用应用程序层的人员,并且还假设代码没有错误,并且围绕这些代码路径的安全性将是防弹的.这些都是很大的假设.如果他们绝对需要更新,那么这可以由不受显式拒绝影响的人完成,或者该人可以暂时移动到不受影响的角色,或者可以暂时删除DENY.作为DBA,这些对于您来说很容易设置审计.在应用程序?没那么多. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读