技术开发 频道

DBA必读:SQL Server 2008安全概述

  4.1 细粒度权限

  SQL Server 2008和SQL Server 2005在许多方面比之前的版本更加安全,其中之一就是改进的细粒度权限。之前,一个管理员需要给一个在固定的服务器角色或固定的数据库角色中的用户成员授予权限,以执行特定的操作,但是通常情况是,这些角色具有比执行这些简单工作所需的权限多很多的权限。这个最小权限的原则要求一个用户只有要做这个工作的最少的权限,所以分配给用户广泛的角色以执行很少的工作违反了这个原则。

  固定服务器和数据库角色的集合从SQL Server 2000以来没有怎么改变,所以你仍然可以在用户或应用程序要求所有或大部分定义的权限时利用这些预定义的权限集。可能最大的改变就是添加了一个 public服务器角色。然而,最小权限的原则要求你不使用一个不是正好适用于这个原则做这个工作所需要的角色。尽管它要求更多的工作来发现和指派某原则所需的权限,但是它可以生成一个更加安全的数据库环境。

  4.2 主体和可得到的

  在SQL Server 2008中,一个主体是任何单独的、可以要求访问受保护的资源并可被授予权限来访问它的个体、组或过程。在SQL Server的之前版本中,你可以定义一个Windows中的主体或者你将它基于一个SQL Server登陆而不和Windows主体关联。下面的列表显示了SQL Server 2008主体的层次,不包括固定服务器和数据库角色,以及你可以怎样匹配登陆和数据库用户来保护对象。这个主体的影响范围取决于它的定义的范围,因此一个 Windows级别的主体比一个SQL Server级别的主体范围更广。每一个数据库用户会自动地属于固定的公共(public)角色。

  Windows级别主体

  · Windows域登陆

  · Windows本地登陆

  · Windows组

  SQL Server级别主体

  · SQL Server登陆

  · 与一个Windows 登陆相匹配的SQL Server登陆

  · 与一个证书相匹配的SQL Server登陆

  · 与一个非对称密钥相匹配的SQL Server登陆

  数据库级别的主体

  · 数据库用户

  · 与一个SQL Server登陆相匹配的数据库用户

  · 与一个Windows 登陆相匹配的数据库用户

  · 与一个证书相匹配的数据库用户

  · 与一个非对称密钥相匹配的数据库用户

  · 数据库角色

  · 应用程序角色

  · 公共角色

  授权的另一个部分是你可以通过授予或拒绝授予权限来保护的对象。图4列出了SQL Server 2008中可保护的对象的层次。在服务器级别,你可以保护网络终端来控制通信路线进出服务器,还有数据库、绑定和角色以及登陆。在数据库和schema级别,事实上你可以创建的每一个对象都是可得到的,包括那些存在于schema之中的。

  4.3 角色和权限

  要想知道在SQL Server中可用的权限的数目,你可以调用fn_builtin_permissions系统功能:
SELECT * FROM sys.fn_builtin_permissions(default)
0
相关文章