目录
[1. SQL Server 数据库安全机制](#1. SQL Server 数据库安全机制)
[2.用户访问 SQL Server 的 3 个认证过程](#2.用户访问 SQL Server 的 3 个认证过程)
[3. 登录身份验证模式](#3. 登录身份验证模式)
[4. 使用 T-SQL 语句创建和管理身份登录账户](#4. 使用 T-SQL 语句创建和管理身份登录账户)
[5. 使用 T-SQL 语句管理数据库用户](#5. 使用 T-SQL 语句管理数据库用户)
[6. 权限管理](#6. 权限管理)
[7.使用 T-SQL 语句管理权限](#7.使用 T-SQL 语句管理权限)
[1. 数据库的分离与附加](#1. 数据库的分离与附加)
[2. 数据库的备份](#2. 数据库的备份)
[3. 备份设备](#3. 备份设备)
[4. 数据库的恢复](#4. 数据库的恢复)
[(1)使用 SSMS 对象资源管理器将 SCC 用户数据库分离。](#(1)使用 SSMS 对象资源管理器将 SCC 用户数据库分离。)
[(2)使用 SSMS 对象资源管理器将 SCC 用户数据库附加到 SQL Server 中。](#(2)使用 SSMS 对象资源管理器将 SCC 用户数据库附加到 SQL Server 中。)
[(3)对学生选课管理系统 SCC 完成数据库备份。](#(3)对学生选课管理系统 SCC 完成数据库备份。)
[(4)对学生选课管理系统 SCC 完成数据库恢复。](#(4)对学生选课管理系统 SCC 完成数据库恢复。)
一、数据库安全管理
1. SQL Server 数据库安全机制
SQL Server 数据库安全机制一般主要包括以下 4 个方面:(1)客户机操作系统的安全性(2)SQL Server 服务器的安全性(3)数据库的安全性(4)数据库对象的安全性
2.用户访问 SQL Server 的 3 个认证过程
用户要访问 SQL Server 数据库中的数据,必须提供有效的认证信息,经过 3 个认证过程:
- 登录身份验证:确认登录用户的登录账号和密码的正确性,验证用户是否具有连接到 SQL Server 数据库服务器的资格。
- 用户账号验证:当用户访问数据库时,必须验证用户是否是数据库的合法用户。
- 操作许可验证:若要操作数据库中的数据或对象时,验证用户是否具有操作权限。
3. 登录身份验证模式
SQL Server 的用户有两种类型,Windows 授权用户和 SQL Server 授权用户。Windows 授权用户来自 Windows 的用户账号或组,SQL Server 授权用户是 SQL Server 内部创建的 SQL Server 登录账户。SQL Server 2016 支持两种身份验证模式,用来识别不同类型的用户:(1)Windows 身份验证模式(2)SQL Server 混合身份验证模式
4. 使用 T-SQL 语句创建和管理身份登录账户
(1)创建登录账户
-- 创建 SQL Server 登录账户:
CREATE LOGIN 登录名 WITH PASSWORD='登录密码'
-- 创建 Windows 登录账户:
CREATE LOGIN [计算机名\Windows用户名] FROM Windows
创建登录名为 test01 的 SQL Server 身份登录账户,登录密码为 123123。
CREATE LOGIN test01 WITH PASSWORD='123123'
(2)修改登录账户
-- 修改 SQL Server 登录账户密码:
ALTER LOGIN 登录名 WITH PASSWORD='登录密码'
修改 test01 账户的登录密码为 123456。
ALTER LOGIN test01 WITH PASSWORD='123456'
(3)禁用登录账户
-- 禁用 SQL Server 登录账户和 Windows 登录账户:
ALTER LOGIN 登录名 DISABLE
禁用登录账户 test01。
ALTER LOGIN test01 DISABLE
(4)启用登录账户
-- 启用 SQL Server 登录账户和 Windows 登录账户:
ALTER LOGIN 登录名 ENABLE
启用登录账户 test01。
ALTER LOGIN test01 ENABLE
(5)删除登录账户
-- 删除 SQL Server 登录账户和 Windows 登录账户:
DROP LOGIN 登录名
删除登录账户 test01。
DROP LOGIN test01
5. 使用 T-SQL 语句管理数据库用户
(1)添加数据库用户
可以使用 CREATE USER 语句添加数据库用户,语句如下:
CREATE USER 数据库用户名 [FOR LOGIN 登录名]
为登录名
test01在SCC数据库中创建数据库用户test_user。
USE SCC -- 切换到目标数据库 GO CREATE USER test_user FOR LOGIN test01 -- 关联登录名test01
(2)删除数据库用户
可以使用 DROP USER 语句删除数据库用户,语句如下:
DROP USER 数据库用户名
删除
SCC数据库中的用户test_user。
USE SCC GO DROP USER test_user
6. 权限管理
进行 SQL Server 登录账户管理和用户管理还不够,用户必须要获得对服务器的管理任务和对数据库对象访问的相应许可权限。数据库权限用于控制对数据库对象的访问和语句的执行。在 SQL Server 中,数据库权限分为数据库对象权限和数据库语句权限。
(1)对象权限
对象权限是指对数据库中的表、视图、存储过程等对象的操作权限。它决定了能够对数据库对象执行哪些操作,如果用户想要对某一对象进行操作,其必须具有相应的操作权限。对象权限主要包括:
- SELECT:允许用户对表或视图数据查询;
- INSERT:允许用户对表或视图添加数据;
- UPDATE:允许用户对表或视图修改数据;
- DELETE:允许用户对表或视图删除数据;
- REFERENCES:通过外键引用其他表的权限;
- EXECUTE:允许用户执行存储过程或函数的权限。
(2)语句权限
语句权限相当于执行数据定义语言的语句权限。主要包括:
- CREATE DATABASE:创建数据库的权限;
- CREATE TABLE:在数据库中创建数据表的权限;
- CREATE VIEW:在数据库中创建视图的权限;
- CREATE PROCEDURE:在数据库中创建存储过程的权限;
- CREATE DEFAULT:在数据库中创建默认值的权限;
- BACKUP DATABASE:备份数据库的权限。
对权限的管理包含以下 3 部分内容:(1)授予权限(GRANT):允许用户或角色具有某种权利。(2)拒绝权限(DENY):删除以前数据库内的用户授予或拒绝的权限。(3)取消权限(REVOKE):拒绝给当前数据库内的安全账户授予权限并防止安全账户通过其组或角色成员继承权限,可以理解为取消操作。
7.使用 T-SQL 语句管理权限
(1)管理对象权限
-- 使用 GRANT 授予权限:
GRANT 权限名称[,,,,n] on 权限的安全对象 To 数据库用户名
--(权限的安全对象有:数据库中的表、视图、存储过程。)
-- 使用 DENY 拒绝权限:
DENY 权限名称[,,,,n] on 权限的安全对象 To 数据库用户名
-- 使用 REVOKE 取消权限:
REVOKE 权限名称[,,,,n] on 权限的安全对象 To 数据库用户名
授予 SCC 数据库用户 test 对表 Student 添加、查询数据的权限。
USE SCC GO GRANT INSERT,SELECT ON STUDENT TO TEST拒绝 SCC 数据库用户 test 对表 Student 添加记录的权限。
USE SCC GO DENY INSERT ON STUDENT TO TEST取消 SCC 数据库用户 test 对表 Student 查询数据的权限。
USE SCC GO REVOKE SELECT ON STUDENT TO TEST
(2)管理语句权限
-- 使用 GRANT 授予权限:
GRANT 权限名称[,,,,n] To 数据库用户名
-- 使用 DENY 拒绝权限:
DENY 权限名称[,,,,n] To 数据库用户名
-- 使用 REVOKE 取消权限:
REVOKE 权限名称[,,,,n] To 数据库用户名
授予
SCC数据库用户test_user创建表和视图的权限。
USE SCC GO GRANT CREATE TABLE, CREATE VIEW TO test_user拒绝
SCC数据库用户test_user创建存储过程的权限。
USE SCC GO DENY CREATE PROCEDURE TO test_user取消
SCC数据库用户test_user创建表的权限。
USE SCC GO REVOKE CREATE TABLE TO test_user
二、数据库日常维护
1. 数据库的分离与附加
当数据库的数据更新后,需要及时备份数据库,由于 SQL Server 数据库与其运行环境关联在一起,因此当用户想通过将数据库文件和事务日志文件以复制、粘贴的方式进行数据库备份时,必须先对其进行分离,分离后的数据库必须通过附加操作才能与 SQL Server 服务器关联在一起。分离数据库是指数据库从当前 SQL Server 服务器中分离出来。但是保持组成该数据库的数据文件和日志文件完好无损,以后可以重新将这些文件附加到任何 SQL Server 服务器上,使数据库的使用状态与分离时的状态完全相同。
2. 数据库的备份
分离、附加数据库一般只适用于数据库的转移。在实际应用中,数据库系统通常处于运行状态,为了预防数据库遭受破坏,数据库管理员必须经常在数据库正常运行的情况下将数据库中的数据保存到其他位置,实现数据库的备份。数据库的备份是对数据库结构、对象和数据进行复制,以便数据库遭到破坏时能够恢复数据库。备份操作可以在数据库正常运转时进行,SQL Server 提供了四种备份方式包括,完整备份、差异备份、事务日志备份、数据库文件和文件组备份。
3. 备份设备
备份设备是指对应于操作系统提供的资源(物理设备)的逻辑设备。常用的备份设备有磁盘和磁带媒体。磁盘备份设备就是存储硬盘或其他磁盘媒体上的文件,引用磁盘备份设备与引用任何其它操作系统文件一样,可以在服务器的本地磁盘上或共享网络资源的远程磁盘上定义磁盘备份设备。
SQL Server 使用逻辑备份设备和物理备份设备两种方式来标识备份设备。
- 物理备份设备名称主要用来供操作系统对备份设备进行引用和管理。
- 逻辑备份设备是物理备份设备的别名,逻辑备份设备名称被永久的保存在 SQL Server 的系统表中。使用逻辑备份设备名称的优势在于可以用一种相对简单的方式实现对物理备份设备的引用。例如,一个物理备份设备可能是 "E:\ 备份 \ 数据库管理系统 \ 学生选课管理.back",逻辑备份设备名称可缩写为 "学生选课管理"。
4. 数据库的恢复
数据库恢复可以保证在数据库发生故障时恢复相关的数据库。SQL Server 2016 包括 3 种恢复模式:完整恢复模式、大容量日志恢复模式和简单恢复模式。不同的恢复模式在备份、恢复方式和性能方面存在差异。而且不同的恢复模式对数据损失的程度也不同,用户可以根据实际需求选择适合的恢复模式。
5.实战训练
(1)使用 SSMS 对象资源管理器将 SCC 用户数据库分离。
任务实施:
- 启动 SSMS 对象资源管理器,展开 "数据库" 节点,右击 SCC 数据库,选择 "属性" 命令,打开 "数据库属性" 对话框,单击 "选择页""文件" 标签,可以查看数据库文件和日志文件在磁盘中的位置。如图 27-1 所示。
- 启动 SSMS 对象资源管理器,展开 "数据库" 节点,右击 SCC 数据库,在弹出的快捷菜单中选择 "任务"------"分离" 命令。
- 在打开的 "分离数据库" 窗口中,单击 "确定" 按钮即可完成数据库的分离,如图 27-2 所示。


(2)使用 SSMS 对象资源管理器将 SCC 用户数据库附加到 SQL Server 中。
任务实施:
- 在 "对象资源管理器" 窗口中,右键单击 "数据库" 节点,在弹出的快捷菜单中选择 "附加" 命令。
- 在弹出的 "附加数据库" 窗口中,单击 "添加" 按钮,弹出 "定位数据库文件" 窗口,选择要附加的数据库文件 "SCC.mdf",然后单击 "确定" 按钮即可完成数据库的附加操作。

(3)对学生选课管理系统 SCC 完成数据库备份。
任务实施:
- 启动对象资源管理器,展开 "数据库" 节点,在要备份的 SCC 数据库上,单击鼠标右键,在弹出的快捷菜单中选择 "任务"------"备份" 命令。
- 在 "备份数据库 - SCC" 窗口中的 "选择页" 区域中选择 "常规" 选项,对其进行设置。
- 在 "备份数据库 - SCC" 窗口中,单击右下角的 "删除" 按钮,删除当前默认备份目标,然后单击 "添加" 按钮,打开 "选择备份目标" 对话框,在该对话框中选定备份设备 BackDisk1,单击 "确定" 按钮,如图所示。
- 在 "选择页" 区域中选择 "介质选项",在 "覆盖介质" 选项区域中选择 "覆盖所有现有备份集" 单选按钮,如图所示。
- 单击 "确定" 按钮,执行备份操作,成功后显示备份成功信息。



(4)对学生选课管理系统 SCC 完成数据库恢复。
任务实施:
- 启动对象资源管理器,展开 "数据库" 节点,右击 SCC 数据库,在弹出的快捷菜单中选择 "任务"------"还原"------"数据库" 命令。
- 在打开的 "还原数据库 - SCC" 窗口中,单击 "选择页" 区域中的 "常规" 选项,在 "源" 选项区域的 "数据库" 下拉列表中选择要恢复的数据库 SCC,如图所示。
- 单击 "选择页" 区域中的 "选项",在右侧窗口中选择 "覆盖现有数据库" 选项,在 "恢复状态" 中使用默认选项,如图所示。
- 单击 "确定按钮",执行还原操作,成功后显示还原成功信息。

