从数据行入手保护SQL Server数据安全
2009-04-01 10:25:34 来源:WEB开发网而图2显示了该函数的执行示例,以及相关表的数据内容,如表1、表2和表3.
图2 表值型函数执行示例
表1 UserAccess示例表内容
表2 Orders示例表内容
表3 Department表内容
显示受保护表内容
通过表值型函数保护了某个表之后,你然后可以通过类似示例2的视图将其展示给用户。该视图调用了上面定义的表值型函数,并使用参数“user”,在SQL Server中这是一个内置函数,返回当前活跃用户的ID。
示例2:创建一个视图让安全用户访问受保护表的SQL
CREATE VIEW[dbo].[OrderSummary]
AS
SELECTOrderCount,
Receipts
FROMdbo.GetOrderSummary(USER)
这个视图是用户被授予访问权限的唯一对象,即使用户不具有权限使用前面的表值型函数或访问受保护表,他也可以获得被许可查看的数据。
实际应用思考
在应用程序开发实际情况中,这种方式往往需要一个以上的属性来定义用户行级别权限,而且往往需要对多个表应用安全机制。
另外,不同的数据可能具有不同的安全考虑。举例来说,一个用户可能有权限访问某个区域的销售结果,但不能访问汇总薪酬数据。在复杂的实际环境中成功运用这个战略的关键是,收集并确认来自业务的需求,然后根据这些需求来选择合适的属性来实施行级别安全。
使用活动目录的企业,可以按照活动目录组来使用这种方式获得安全性,而并一定仅限于使用用户ID,实现方法非常简单,只需要在UserAccess表中使用活动目录组替代用户ID即可。
相关阅读
萨班斯-奥克斯利法案(Sarbanes-Oxley Act)是美国立法机构根据安然有限公司、世界通讯公司等财务欺诈事件破产暴露出来的公司和证券监管问题所立的监管法规,简称《SOX法案》或《索克思法案》。
法案全称《2002年公众公司会计改革和投资者保护法案》由参议院银行委员会主席萨班斯(Paul Sarbanes)和众议院金融服务委员会(Committee on Financial Services)主席奥克斯利(Mike Oxley)联合提出,又被称作《2002年萨班斯-奥克斯利法案》。该法案对美国《1933年证券法》、《1934年证券交易法》做出大幅修订,在公司治理、会计职业监管、证券市场监管等方面作出了许多新的规定。
更多精彩
赞助商链接