当前课程知识点:SQL SERVER数据库技术 > 第11章 SQL SERVER安全管理 > 11.1 SQL SERVER安全机制 > 安全设计理念
安全设计理念
2002年初比尔盖茨发出了他那臭名昭著的Trustworthy Computing备忘录,这是微软如何思考和实现其产品的安全性的转折点。据微软网站称,由此产生的可信计算倡议,“基于健全的业务实践,专注创造和提供安全、私人和可靠的计算经验。我们的目标是一个更安全、更可信的互联网。”
换句话说,十多年前微软对于安全变得非常严肃。这种变化后发布的第一个版本是SQL Server 2005——微软彻底检查整个产品的安全。此后,每个版本的SQL Server保留安全基本特性,逐步提高并增加新的功能,以提高安全性和解决新出现的威胁。
Trustworthy Computing通过定义产品安全设计四大支柱影响SQL Server的发展:
Secure by design:微软对它的设计、编码和交互进行广泛的威胁分析和安全审核,来确定/识别攻击者可以进入到服务器和数据的入口点。结果是,微软设计SQL Server保护数据的机密性、完整性、以及可用性。
Secure by default:SQL Server默认只安装和激活关键核心数据库组件。这意味着,不关键的核心数据库组件/功能是没有安装或安装但没有激活。没有安装的功能不易受攻击。你必须有意识的和慎重的安装或激活非核心功能。这可以防止许多攻击,你可能不知道被安装,因为你从来没有使用过他们。
Secure in deployment:微软提供工具支持安装SQL Server并保持它的安全。SQL Server配置工具可以帮助你配置服务器的安全。最重要的是,更新SQL Server现在已经是在线微软更新服务的一部分,所以很容易获得安全更新和补丁。
Secure through communication:微软已经建立了一个详细的基础设施来收集有关其产品中的漏洞的信息。但是,如果在微软内部,所有的信息都是毫无价值的。因此,公司致力于沟通新的漏洞并积极修补它们,并定期更新在线图书帮助系统反映新的安全信息。
"it's just secure"这一理念贯穿整个产品。虽然SQL Server是相当安全的,但在你创建数据库和安装服务时,你必须作出明智的选择保证SQL Server实例的安全。It takes work and vigilance to make and keep a production database server secure.
记住,有时候保护数据的最好方法就是不把它放在数据库中。
安全的两个阶段
类似于Windows系统,SQL Server的安全模式是一个两阶段的过程,允许用户登录访问服务器内受保护的资源。
验证:用户登录、验证、并获得访问服务器。验证回答了这个问题,“你是谁?”并要求用户证明它,通常通过用户名、密码,但其他形式的证明变得更受欢迎。
授权:用户只能操作SQL Server对象,如数据库表和存储过程--限于那些她有权限的。授权回答这个问题,“你可以做什么?”
用户可以登录到SQL Server,但除非他们被允许做某事,如访问数据库,否则他们不能做任何操作。所以你不仅需要为你的用户提供验证凭证,你还需要授权他们访问数据,通过在需要的数据库下定义用户。
当你考虑一下,在每个数据库中都需要一个用户帐户是有意义的。否则,什么会阻止用户登录到SQL Server然后使用任何他们想要的数据库?不同的场景会有不同的概念,但这是安全的基本状态。
SQL Server安全术语
当你在SQL Server和其他产品的安全工作,你会遇到各种各样的专业术语。下面是一些比较常见的术语和它们在数据库安全方面的含义。
验证(Authentication):如上所述,验证是一个识别用户的进程,通过要求她来证明她是与登录匹配的用户。它回答了这个问题,你是谁?
授权(Authorization):一旦系统对用户进行验证,授权决定了用户在服务器或数据库的权限。它回答了这个问题,你在这里能做什么?
组(Group):在Windows中,组是一个主体(有登录名与其关联)。任何授予组的权限会授予给相关的登录。
模拟(Impersonation):所有的Windows进程,包括各种SQL Server进程,运行在一个特定的安全上下文(通常是引起进程启动的主体)。模拟发生在当一个进程暂时需要在不同的安全上下文。这是一个非常强大和必要的功能,但有可能滥用。
登录(Login):登录是一个主体,在一个服务器实例中具有某种访问对象的权限。在常见的用法,登录通常与用户交替使用。但一个SQL Server登录是从外部访问服务的帐户。登录有时包括访问服务器对象的权限,如配置信息,但通常不授予数据库中的任何权限。
权限(Permission):权限是访问受保护的资源的权利,例如从表中读取数据,或者在服务器级别创建新的数据库。一个权限通常意味着其他权限,这取决于主体权限的范围。
主体(Principal):主体是任何用户或可以接收访问SQL Server受保护资源的权限组件。
特权(Privilege):特权是主体拥有的一组广泛的权利/权限。这个词有时被允许和权限(往往意味着一个特定的,狭隘的权利)互换使用,特权意味着一组更广泛的权限。
角色(Role):SQL Server角色类似于Windows组,但仅限于SQL Server实例的范围。你可以指定登录名和用户的角色,角色拥有的权限会继承给登录名和用户。
用户(User):用户是特定数据库中一个具有访问对象权利的主体。用户通常映射到登录名。简单来说,登录名访问SQL Server实例,用户访问数据。
-1.1 数据库基础知识
--数据库的概念
--数据库概念
--数据模型(1)
--数据模型(2)
--数据模型
--实体间的联系
--E-R图
--数据技术的发展
--数据库技术发展
-1.1 数据库基础知识--作业
-1.2 SQL SERVER简介
--数据库应用场景
--企业应用
--安装与配置
-1.2 SQL SERVER简介--作业
-1.3 课堂练习-安装和配置SQL SERVER2008
-职场小故事之一——数据库工程师采访录(1)
-2.1 数据库对象及构成
--sql server 2008数据库中的文件和文件组的详解
--管理数据库和文件
--创建文件组
--文件和文件组
-2.1 数据库对象及构成--作业
-2.2 创建数据库
--使用SQL SERVER Management Studio创建数据库
-2.2 创建数据库--作业
-2.3 修改数据库
--使用T-SQL扩充数据库或事务日志的容量-01(操作演示)
--使用T-SQL扩充数据库或事务日志的容量-02(操作演示)
-2.3 修改数据库--作业
-2.4 重命名或删除数据库
-2.4 重命名或删除数据库--作业
-2.5 课堂练习-创建数据库和数据库文件
-职场小故事之二 数据库工程师采访录(2)
-3.1 数据表设计
--数据表设计
-3.1 数据表设计--作业
-3.2 创建数据表
--创建数据表
-3.2 创建数据表--作业
-3.3 修改数据表结构
-3.3 修改数据表结构--作业
-3.4 删除数据表
-3.4 删除数据表--作业
-3.5 课堂练习-创建数据类型和数据表
--数据类型详解
-- 创建数据类型和表
--程序源代码
-3.5 课堂练习-创建数据类型和数据表--作业
-扩展知识
--数据类型详解
-职场小故事之三——数据库工程师是干什么的?
-4.1 合并多个查询结果中的数据
-4.1 合并多个查询结果中的数据--作业
-4.2 抽取数据到另一个表中
-4.2 抽取数据到另一个表中--作业
-4.3 添加数据
--向表中添加数据
-4.3 添加数据--作业
-4.4 更新数据
--将“电子出版概论”课程的上课时间修改为“周二晚”——程序源代码
--将“01数据库”班级所有学生的选课密码初始化为#*3456
--更新表中的数据
-4.4 更新数据--作业
-4.5 删除数据
--学生为“00000005”的学生因故取消课程编号为“017”的选修课
--学号为“0000005”的学生因故取消“中餐菜肴制作”选修课——程序源代码
--删除表中数据
-4.5 删除数据--作业
-4.6 课堂练习
-职场小故事之四——冯玉才:“背”着数据库闯天下
-5.1 查询单个数据表数据
-5.1 查询单个数据表数据--作业
-5.2 使用聚合函数查询
--使用聚合函数查询
-5.2 使用聚合函数查询--作业
-5.3 使用分组查询结果
--查看报名人数大于15的各类课程的最少报名人数和最多报名人数
--查看报名人数大于15并且每组平均报名人数大于30的课程类别和各组的平均报名人数
--查看课程类别为“信息技术”、“管理”的平均报名人数,并给出其他课程类别
--使用分组查询
-5.3 使用分组查询结果--作业
-5.4 排序查询结果
--重新排序查询结果
-5.4 排序查询结果--作业
-5.5 多表连接查询数据
--比较连接查询
--多表连接查询数据
-第5章 查询与统计数据-作业
-5.6 课堂练习-查询与统计数据
--程序源代码
-职场小故事之五——IT独行侠数据库独立咨询顾问牛新庄的故事
-6.1 索引的概述
--索引的技巧
--索引简介
--索引的分类
--索引的分类
-6.1 索引的概述--作业
-6.2 创建索引
--创建索引
-6.2 创建索引--作业
-6.3 重命名索引
--将sutdent表的IX_STUNAME索引重命名为IX_STUNAMENEW
--重命名索引
-6.3 重命名索引--作业
-6.4 删除索引
--删除索引
--删除索引
-6.4 删除索引--作业
-6.5 索引分析
--查询学号为“00000001”的学生信息,分析哪些索引被系统采用
--查询名为"林斌"的学生,分析执行该数据花费的磁盘活动量信息
--分析索引
-6.5 索引分析--作业
-6.6 索引维护
--使用UPDATE STATISTICS更新索引的统计信息
--维护索引
-6.6 索引维护--作业
-6.7 课堂练习-创建和优化索引
--创建和优化索引
--程序源代码
-职场小故事之六——数据库安全门事件
-实现索引
-7.1 数据完整性概述
--数据完整性的概述
--数据完整性概述
-7.1 数据完整性概述--作业
-7.2 创建约束
--创建主键约束
--创建主键约束
--添加唯一约束
--创建唯一约束
--约束的STUNO列值只允许为8位数字,并且不可以为8个0
--删除检查约束
--创建检查约束
--为STUCOU表添加默认约束,STATE列的默认值“报名”
--创建默认约束
--创建外键约束
-7.2 创建约束--作业
-7.3 创建默认值
--创建并绑定默认值
--创建默认值
--解除默认值UnsureDefault与Teacher列的绑定
--删除默认值
-7.3 创建默认值--作业
-7.4 创建规则
--创建规则
--解除规则CreditRule与Course表Credit列的绑定
--删除规则
-7.4 创建规则--作业
-7.5 课堂练习-实现数据完整性
-- 实现数据完整性
--程序源代码
-职场小故事之七——数据库工程师的发展前景
-8.1 视图的概述
--视图的基本概念
--视图简介
-8.1 视图的概述--作业
-8.2 创建视图
--创建视图
--创建视图
-8.2 创建视图--作业
-8.3 修改视图
--修改视图并加密
--修改视图
-8.3 修改视图--作业
-8.4 重命名视图
--重命名视图
--重命名视图
-8.4 重命名视图--作业
-8.5 删除视图
--删除视图
--删除视图
-8.5 删除视图--作业
-8.6 课堂练习-实现视图
-- 实现视图
--程序源代码
-职场小故事之八——数据库面对的工作岗位及职责
-9.1 存储过程概述
--存储过程的优点
--存储过程的优点
-9.1 存储过程概述--作业
-9.2 创建与执行不带参数的存储过程
--创建存储过程,返回学生表中班级编号为“20000001”的所有数据行
--执行存储过程
-9.2 创建与执行不带参数的存储过程--作业
-9.3 创建与执行带参数的存储过程
--执行存储过程
-9.3 创建与执行带参数的存储过程--作业
-9.4 修改存储过程
--修改的存储过程
-9.4 修改存储过程--作业
-9.5 删除存储过程
--删除存储过程
--删除存储过程
-9.5 删除存储过程--作业
-9.6 课堂练习-实现存储过程和函数
-- 实现存储过程和函数
--程序源代码
-职场小故事之九——数据库错误致虎航安全事故
-10.1 触发器概述
--触发器的概述
-10.1 触发器概述--作业
-10.2 创建触发器
--创建触发器
--测试触发器
--创建触发器
-10.2 创建触发器--作业
-10.3 修改触发器
--测试结果
--修改触发器
-10.3 修改触发器--作业
-10.4 删除触发器
--删除触发器
--删除触发器
-10.4 删除触发器--作业
-10.5 禁用或启用触发器
--禁用触发器
--启用触发器
--禁用或启用触发器
-10.5 禁用或启用触发器--作业
-10.6 课堂练习-管理触发器
--程序源代码
-职场小故事之十——韩国农协银行事件透视数据库安全问题
-11.1 SQL SERVER安全机制
--安全设计理念
-11.1 SQL SERVER安全机制--作业
-11.2 管理登录名和用户
--创建登录名
-11.2 管理登录名和用户--作业
-11.3 管理角色
--角色
-11.3 管理角色--作业
-11.4 管理权限
--创建登录名
--创建用户
-11.4 管理权限--作业
-11.5 课堂练习-管理安全性
--管理安全性
--程序源代码
-11.5 课堂练习-管理安全性--作业
-职场小故事之十一——银行账号“泄密”虚惊
-12.1 脱机后复制数据库文件
--数据库脱机操作
-12.1 脱机后复制数据库文件--作业
-12.2 备份与还原数据库
-12.2 备份与还原数据库--作业
-12.3 数据的导入和导出
--数据导入与导出
-12.4 复制数据库
--复制数据库
--数据库复制
-12.5 课堂练习-灾难恢复
-- 灾难恢复
--程序源代码
-职场小故事之十二——2011年数据库泄密事件
-13.1 windows应用程序开发
-13.1 windows应用程序开发--作业
-13.2 ASP.NET网站开发
-13.2 ASP.NET网站开发--作业
-国家软件开发文档标准
--操作手册编写规范
-- 详细设计说明书编写规范
-- 项目开发总结报告编写规范
--用户手册编写规范