【TechTarget中国原创】有特权的实体
SQL Server 2008引进了许多全新的、精细的控制机制,以确保合理地创建、分配、执行这些权限,而且比前几个版本的误差更小。
公共职能。虽然大部分以核心职能为基础的访问性能都与SQL 2005保持相似,但是同时也包含附加的功能来帮助以网络为基础的应用程序软件盒,并且防止匿名的因特网攻击。创建一个新的公共职能,微软已经有了很大的提高。通过SQL 2008服务器的默认值,每一个数据库用户被自动添加到该组(职能与组的类似,但是还拥有以数据库和应用程序逻辑与功能为基础的相关特权和访问权限)。创建这个公共职能,可以约束因特网用户,并限制所有类型的访问(见下面的屏幕截图)。
公共职能

在SQL Server 2008中,默认指派所有的用户为公共职能,这是一个限制因特网用户访问权限的好方法。
元数据保护。数据库或者表格的元数据和其本来的数据同样重要。比如,如果我可以接到这样的证明:某个数据库中存在一个表格或者特定的矩阵,那么我就可以得出结论:这是SQL攻击的一个很好目标。SQL Server 2008允许你通过以用户分配的职能为基础的错误响应来保护这个元数据。因此,举例来说,如果所有的因特网用户都处在公共角色之中,并且其中一个用户在没有正当权限的情况下,试图访问或者甚至删除一个名为“SecretSauce”的表格,那么就会返回下面的响应:
不能删除表格“SecretSauce”,因为不存在这个表格,或者是由于你没有这个权限。
更精细的schema。SQL Server 2008中的突出之处是实施了以schema为基础的数据库安全及其文本。2008版之前,SQL Server通过采用某个用户进行逻辑配对,进而处理了一个schema。当你在SQL 2000/ 2005中创建一个新的用户时,其间也创建了一个schema。然后,这个用户得到了许可,这些许可就好像他自己的一样。现在,你必须创建一个用户,然后再创建或者分配给他一个特定的schema。这个用户获得了一个或者几个schema的拥有权,而且,然后这个schema分配不同的权限到数据库得基本元素中。这个额外的数据库层允许你为用户和数据库元素设置更精细的许可和控制。
对象的分离允许某个单一用户创建并实施几个与2005版相对的schema,在2005版中,需要用到多个用户帐号。因此,可以潜在地减轻安全管理的负担。
可获得的对象。2005中引进了可获得的对象,SQL Server 2008就是建立在这个理念的基础上的。被认为是主要功能的登录和服务可以划分为多个组分,将更精细的许可授予数据库中、表格中的几乎每个对象。这个以职能为基础的或者许可的精细度是数据安全性方面一个大的提高,这个很好地对公共职能进行了补充。在服务器的终端,提供了控制,进而限制通过网络信道、命名的传输管道以及其它通信信道的通信。
通过许可设置,可获得的对象就可以连接到主要功能之中。虽然许可继续使用GRANT、DENY和 REVOKE,来定义某个功能的许可,但是现在,你可以再向前走一步,允许主要功能对其它功能授权,使这些功能可以访问受到控制的信息。
代理服务器。SQL Server的代理服务器连接到用户证书和工作许可。这就提供了一种精细的方法来为任务中每个单独的步骤授予许可。这是与先前的版本形成鲜明的对比:先前的版本使用一个单一的,通常是全面的功能强大的代理器账户。每个子系统可以拥有任意数量的相关代理器。
这里有一个特例:只有经过模块主人的许可,Transact-SQL子系统才可以运行。比如,如果拥有者是“Foster”,那么只有在Foster设置的特权下,才能执行所有的Transact-SQL语句。
重要的是要注意到,当从SQL Serve2005升级到SQL Server 2008时,单一的代理器帐户将会继续保留到新的版本中。应当做出仔细的考虑,决定如何分割帐户,以及如何合理地限制权限。