本文属于SQL Server安全专题系列

前言:

随着数据安全性的越来越重要,很有必要介绍一下数据库的安全方面的内容。本文兼容SQL Server 2016,但是由于安全这个范围太大,不可能完全说清楚,所以以重点介绍常用功能,同时兼顾新特性。系列中以SQL Server 演示库AdventureWorks2016CTP3为演示,下载地址:AdventureWorks sample databases

首先,安全性是系统层面甚至企业层面,并不是某一个角色如DBA、IT管理员的责任,但是作为SQL Server DBA,本人还是以DBA的角度去看待这个问题。

其次,安全并非独立的“功能”或者“工作”,需要搭配性能、稳定等方面,特别是稳定性,一个不稳定的系统,再安全也没用,极端来说,你想想我给你最高权限,登录服务器就报错、蓝屏,你能获取什么信息吗?

作为DBA,首先需要了解的是SQL Server的安全模型或者安全机制,否则你根本无从下手。

安全模型分为3篇:

  1. 安全性主体层级(本文)
  2. 实例级别安全性
  3. 数据库级别安全性

如有兴趣研究真正的权限方面的细节,可以下载研读:SQL Server 2017及SQLDB权限结构图

正文:

 安全,粗略分为两类:主动安全(active security)和被动安全,其实没有明确的分界线,反正就是以预防为主。主动安全主要通过权限来限制用户访问数据和结构来实现的。
对于SQL Server 安全模型,有三个实体:principals(主体)、securable(安全对象)、permissions(权限),其定义如下:
SQL Server安全模型定义
实体 定义
Principal 一个安全性主体就是一个实体,比如一个用户
Securable 安全对象是数据、项目、元数据
Permission 权限是作用在安全主体上,授予或拒绝安全实体对安全对象是否有访问权限。

安全性主体层级:

 层级用于组织安全性主体,使得管理员可以对用户组授权。特别适合大型组织并且有AD域的环境,简化管理、授权方面的工作量。比如专门针对DBA组创建WindowsAD组,并以组的身份在SQL Server中进行授权和管理。这样如果有DBA离职,只需要在AD中去掉这个成员,而不需要在可能几百台SQL Server中逐个删除。
 这个安全层级从数据流的角度来看,从域层面开始,然后到本地服务器层面,再到SQL Server实例层面,最后到数据库层面:
 上图显示了一个在SQL Server实例中创建的登录名,可以映射到一个本地Windows用户或组,也可以映射到一个域用户或域组。通常在企业环境中,优先使用域用户或域组。理由前面已经说过了。
 同时,上图也演示了本地服务器账号或者域账号和组是如何映射到数据库层面的用户(without login),这部分是针对包含数据库(从SQL 2012开始出现)。
 在实例中创建的SQL Server登录名,可以映射到本地服务器、域用户和组中,在实例里面也可以创建混合模式验证的SQL Server登录,简单来说,前者是我们常用的Windows身份验证(SQL On Linux还出现了AD集成身份验证),后者就是SQL Server身份验证,跟Windows用户无关。
 所有的这些登录名都可以添加到实例级别的固定服务器角色(fixed server roles)和用户自定义服务器角色(User-defined server roles)中。通过这种方式,就可以向主体授予实例级别(instance-level)对象(比如链接服务器和端点)的一组通用权限。同时,也可以把登录名映射到数据库用户,此时就可以授权到数据库级别(database-level)。
 数据库用户位于安全性主体曾经的数据库层中(上图最下层)。可以直接授权到数据库的架构和对象中。也可以把数据库用户添加到数据库角色。数据库角色类似服务器角色,它们的区别在于数据库角色仅在数据库层面而服务器角色是实例层面。数据库层的安全对象包含:架构、表、视图和存储过程等。

小结:

 本文以一个图做演示,演示了SQL Server 安全模型中的安全性主体层级,以全局的观点简介了各级关系,为后续文章做铺垫。接下来,下一文介绍实例级别的安全性。

SQL Server 安全篇——SQL Server 安全模型(1)——安全性主体层级相关推荐

  1. SQL Server 安全篇——SQL Server加密(1)——加密概念

    本文属于SQL Server安全专题系列 加密是一种使用密钥和证书的算法来混淆数据的过程.如果没有密钥和证书,即使得到了数据,也无法得知数据的本来面貌,数据就没有价值了.但是由于加解密本身就是一种非常 ...

  2. sql server 入门篇

    sql server入门篇 一.创建数据库 二.修改数据库 三.删除数据库 四.数据表创建 五.数据表数据修改(增.删.改) 六.数据表查询 七.数据表操作 一.创建数据库 1.格式 CREATE D ...

  3. 《Microsoft SQL Server入门教程》第02篇 SQL Server 下载与安装

    文章目录 安装 SQL Server 安装 SQL Server Management Studio 连接 SQL Server 本篇我们介绍如何下载和安装 SQL Server 2019 开发者版本 ...

  4. 视频教程-sql server 系列课程数据库维护篇-SQL Server

    sql server 系列课程数据库维护篇 全栈工程师,2010年从事软件开发以及软件教育培训工作,至今将近十余年,在项目的开发,设计,到管理上积累了丰富的实战经验,教学风格上通俗易懂,问题解答环节一 ...

  5. Sql Server基础篇(一)

    Sql Server MySQL和SQL Server之间的区别: sql server和mysql都是广泛使用的关系数据库管理系统(RDBMS) 1.mysql支持enum,和set类型,sql s ...

  6. SQL Server 2000 To SQL Server 2005

    如果你想把数据库服务器从SQL Server 2000 升级至SQL Server 2005,或者将数据从SQL Server 2000 迁移至SQL Server 2005,建议先阅读MSDN上的这 ...

  7. 推荐优秀的SQL脚本调试工具Embarcadero DBArtisan 可以调试SQL Server 2000/2005 SQL调试工具汇总...

    调试SQL语句是经常会碰到的需求,常常为了查找报表的数据是否正确,SQL脚本为什么取不到预想中的数据,一般都可以通过调试SQL语句来解决问题,找到原因.问题不一定是系统的Bug,可能是设置不正确,可能 ...

  8. sql server新增列_SQL Server 2017中的新增功能

    sql server新增列 SQL Server 2017 is considered a major release in the history of the SQL Server life cy ...

  9. 如何在SQL Server中创建SQL依赖关系图

    Deleting or changing objects may affect other database objects like views or procedures that depends ...

最新文章

  1. [转] Windows系统Net命令使用技巧
  2. 3-无重复字符的最长子串(中等)
  3. apache ignite_通过示例获取Apache Ignite Baseline拓扑
  4. 设计模式12——中介者模式
  5. bat 中 for 的使用 帮助文档 中文版
  6. 某CRM旗舰版功能齐全客户管理系统源码
  7. 强化学习之AC、A2C和A3C
  8. 小程序/CSS的text-decoration属性
  9. css竖向箭头符号_如何使用CSS制作箭头符号
  10. java 求球体表面积_java设计:计算圆的面积和球体的体积,在一个类中用两种方法实现...
  11. 千寻位置48小时“复活”伽利略卫星定位系统
  12. 了解衡量网络性能的四大指标:带宽、时延、抖动、丢包
  13. 【Midjourney实操】逼真到颤抖!保姆级教程教生成效果炸裂的图片
  14. 第十讲:Python爬取网页图片并保存到本地,包含次层页面
  15. mybatis-plus设置某个字段可以为空
  16. 万能清除法 html,万能清除浮动样式
  17. 单片机c语言define什么意思,单片机C语言中typedef和define的区别是什么?
  18. heap 内存管理 dlmalloc
  19. 预览版win11系统下载方法详解
  20. 新手学计算机所有视频教程,新手学电脑全套视频教程

热门文章

  1. 你的气象图何必如此枯燥
  2. [新闻摘录]第一届山西省互联网大会(2015.07.03召开)概要
  3. VC++操作Excel 2007
  4. 运维常用Mysql基本命令
  5. Swift - 设置预编译宏
  6. 火狐浏览器 如何设置成 打开一个新的页面,原有的页面继续存在
  7. 【大学生课程设计】课题设计报告的形式
  8. RK3399平台开发系列讲解(电源管理篇)11.7、PM callback
  9. 神经网络拟合函数表达式,神经网络拟合效果不好
  10. 01-网络归划与实施设计应用主、备网络,静态路由和HSRPBGP