亚冠

资深站长从数据行入手保护

2019-06-08 20:53:02来源:励志吧0次阅读

10:35 来源:IT168 :Googler【纠错】人评论

A-A+ 怎么开淘宝店 站优化方法 创业如何获得投资 小米note顶配版评测 最新LOL活动

在当今企业环境中,保证数据安全不是可有可无的工作。频繁曝光的入侵和欺骗事件、萨班斯奥克斯利法案、HIPAA法案规定和爱国者法案等都要求我们能够做到,将正确数据提供给正确的用户,防止其它无权限的人访问。一般来说,行级安全(row-level security)的要求是:对数据库中的数据以行为单位,设定只有特定用户才可以访问。可惜的是,SQL Server数据库并不提供内置的行级别安全机制。

在本篇文章中,通过一个示例代码(代码清单1),来告诉大家一个在SQL Server中实现行级别安全的方法,以行为单位限定用户的访问权限,同时无需修改业务表的内容,不影响应用程序或表现层开发者,而且与用户访问数据的方式无关。该示例应用的模拟需求为:如何增加安全性到现有订单数据库中,限制经理只能访问他们管理的部门或其子部门的数据,而不管用户如何获得该表,以及针对这个数据库开发什么样的报表和查询。

以下为引用的内容:

--create table scriptCREATE TABLE erAccess(UserID varchar(20) NOT NULLDepartment varchar(50) NOT NULL)CREATE TABLE [dbo].[Orders]([OrderID] [int] NOT NULL[CustomerName] [varchar](20) NOT NULL[OrderTotal] [money] NOT NULL[Department] [varchar](50) NOT NULL) CREATE TABLE partments(Department varchar(50) NOT NULLParentDepartment varchar(50))--end create table script--script to clear then populate example tables--clear tablesDelete from departmentsDelete from ordersDelete from useraccess--insert departments tableINSERTINTO [dbo].[Departments] ([Department][ParentDepartment]) VALUES ('NortustomerName][OrderTotal][Department]) VALUES (8'Hall''88.00''Northwest')INSERT INTO [dbo].[Orders] ([OrderID][CustomerName][OrderTotal][Department]) VALUES (9'Patrick''99.00''Southwest')--insert user access tableINSERT INTO [dbo].[UserAccess] ([UserID][Department]) VALUES ('BLambert''Southwest')INSERT INTO [dbo].[UserAccess] ([UserID][Department]) VALUES ('MDavis''East')INSERT INTO [dbo].[UserAccess] ([UserID][Department]) VALUES ('MDavis''Southeast')INSERT INTO [dbo].[UserAccess] ([UserID][Department]) VALUES ('MDavis''Northeast')INSERT INTO [dbo].[UserAccess] ([UserID][Department]) VALUES ('WSimmons''Northeast')--end script to clear then populate example tables

代码清单1:提供了创建和加载示例表的脚本

1 2 3 下一页 查看全文

预防预后
微信里的小程序怎么用
武汉白癜风医院
分享到: