你的位置:首页 > 软件开发 > 数据库 > SQL Server安全(3/11):主体和安全对象(Principals and Securables)

SQL Server安全(3/11):主体和安全对象(Principals and Securables)

发布时间:2016-03-21 11:00:06
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切。但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念。这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间 ...

SQL Server安全(3/11):主体和安全对象(Principals and Securables)

在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切。但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念。这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间。


通常来说,你通过在对象上分配许可到主体来实现SQL Server里的用户和对象安全。但什么是SQL Server主体?它上面获得哪些许可?在这篇文章里,你会学到各种主体,可以通过许可授权进行SQL Server实例里进行操作和访问的安全对象。SQL Server里重要的主体是角色,你会学到相比使用用户这类主体,角色如何让安全管理更加容易。在这篇文章里你还会学到SQL Server里的安全对象,为学习许可打下基础。

授权(Authorization)

在第2篇里谈到的授权,是访问数据库服务器里所有好东西的一部分。验证就像有护照证明你是谁但是没有签证——你需要签证来进入和逗留国家。在这篇文章里你会学到授权,它如何扮演签证提供对数据库对象访问。

主体(Principal)是可以访问SQL Server或它的数据库里的一个或多个安全对象的用户或线程安全对象(Securables)是个保护的资源,是一些只能特定人或线程才可以访问或修改的,例如表里的数据。许可(permission)让主体获得特定安全主体的访问。

继续和护照类比,主体是护照持有者,里面有所有人的照片。安全对象是主体想要访问的国家,许可是穿越国家边界并享受访问的签证。

主体(Principals)

主体,在安全上下文里,是任何用户(人类),用户组(在SQL Server里称为角色),或进程里运行的代码,它们可以清酒对安全对象的访问且被授予或禁止访问。所有的Windows和SQL Server登录都是主体,和映射到数据库里的用户一样。下面列表展示了SQL Server里较重要主体的大多数层次,从SQL Server实例权限生成的服务器级别主体,到数据库级别的主体:

Windows级别主体:

  • Windows域登录
  • Windows组
  • Windows本地登录

SQL Server级别主体:

  • SQL Server登录
  • SQL Server映射到证书登录
  • SQL Server映射到Windows登录的登录
  • SQL Server映射到非对称匙的登录

数据库级别主体:

  • 应用程序角色
  • 数据库角色
  • 数据库用户
  • 数据库用户映射到证书
  • 数据库用户映射到Windows登录
  • 数据库用户映射到非对称匙
  • 公共角色

理解这个层次非常重要,因为主体的范围基本上决定了可以授予它的许可范围。例如,数据库用户只能在数据库上下文里授予许可。数据库级别的主体可以有服务器的许可,Windows级别的主体可以有在SQL Server范围外,Windows本地示例里和网络上的许可,

注意刚才的列表里,一个主体除了其它方面之外,既是角色也是登录(或用户)。SQL Server里的角色类似于Windows组。在角色里拥有成员资格的用户继承分配到角色的许可。角色让安全管理更加简单,因为你不需要为各个用户管理复杂的一系列许可。SQL Server支持下列角色:

  • 固定服务器角色(Fixed server roles):进行服务器级别任务的SQL Server内建角色。插图3.1:分配Tudou登录到dbcreator和diskadmin固定服务器角色
  • 点击【确定】来保存修改。
  • 或者,你可以使用对象浏览器里,服务器节点下的【服务器角色】节点来添加登录到角色。添加Tudou到securityadmin服务器角色。

    1. 在对象浏览器下的【安全性】节点,展开【服务器角色】节点。
    2. 在对象浏览器里右击【securityadmin】服务器角色,选择【属性】。这会打开服务器角色属性对话框。
    3. 在对话框的右边点击【添加】按钮,它打开选择登录对话框。你可以输入Tudou,点击【检查名称】,或者点击【浏览】按钮来获得登录列表。一旦你输入Tudou,对话框如插图3.2所示。插图3.2:选择Tudou来添加到服务器角色
    4. 点击【确定】来添加Tudou到服务器角色。服务器角色属性对话框如插图3.3所示。插图3.3:添加Tudou到securityadmin服务器角色
    5. 点击【确定】保存修改。

    另一个添加登录到服务器角色是T-SQL,使用sp_addsrvrolemember系统存储过程。下列代码添加现存的Tudou登录到sysadmin角色:

    1 EXEC sp_addsrvrolemember 'Tudou', 'sysadmin';

    原标题:SQL Server安全(3/11):主体和安全对象(Principals and Securables)

    关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。