第8章 SQL Server 安全管理
- 格式:doc
- 大小:174.50 KB
- 文档页数:15
实验七SQL Server安全管理SQL Server2000的安全模式分为3层结构,分别为服务器安全管理、数据库安全管理、数据库对象的访问权限管理。
通过本实验来学习登录机制、数据库用户和对象操作权限的管理方法。
[知识要点]1.SQL Server的安全模型SQL Server2000的安全模型分为3层结构,分别为:∙服务器安全管理∙数据库安全管理∙数据库对象的访问权限管理用户访问数据库时需要经历的3个阶段及相应的安全认证过程:第一阶段:用户首先要登录到SQLServer实例。
在登录时,系统要对其进行身份验证,被认为合法才能登录到SQLServer实例。
第二阶段:用户在每个要访问的数据库里必须获得一个用户账号。
SQL Server实例将SQL Server登录映射到数据库用户账号上,在这个数据库的用户账号上定义数据库的管理和数据对象的访问的安全策略。
第三阶段:用户访问数据库。
用户访问数据库对象时,系统要检查用户是否具有访问数据库对象、执行动作的权限,经过语句许可权限的验证,才能实现对数据的操作。
2.SQL Server身份验证模式身份验证用来识别用户的登录账号和用户与SQL Server相连接的合法性,如果验证成功,用户就能连接到SQL Server上。
SQL Server使用下面两种身份验证模式:∙Windows Only身份验证模式;∙SQL Server和Windows混合验证模式3.数据库用户一般情况下,用户获得登录SQLServer实例的登陆账号后,系统管理员还必须为该登录用户访问的数据库创建一个数据库用户账号,该用户登录后才可访问此数据库。
SQL Server 2000系统中有如下默认的数据库用户:∙Guest用户。
任何登录账号都可以用此账号使用数据库;∙Dbo用户。
dbo数据库用户存在于每个数据库下,对应SQL Server的固定服务器角色SysAdmin的成员账号。
4.许可权限管理许可权限指明用户获得哪些数据库对象的使用权,以及用户能够对这些对象执行何种操作。
sql server实验指导第四版SQL Server实验指导第四版第一章:SQL Server的介绍SQL Server是由Microsoft开发的一种关系型数据库管理系统(RDBMS)。
它具有强大的数据管理和分析功能,被广泛应用于企业级应用程序和数据仓库中。
本章将介绍SQL Server的概述、特点以及应用领域,帮助读者了解SQL Server的基本知识。
第二章:SQL Server的安装和配置在使用SQL Server之前,需要先进行安装和配置。
本章将详细介绍SQL Server的安装步骤和配置选项,包括选择适当的版本、设置数据库引擎和其他组件,以及配置网络和安全设置等。
读者将学会如何正确地安装和配置SQL Server。
第三章:SQL Server的基本操作本章将介绍SQL Server的基本操作,包括创建数据库、创建表、插入数据、更新数据和删除数据等。
通过实际操作,读者将学会如何使用SQL Server进行数据库的基本管理和数据操作。
第四章:SQL Server的高级操作本章将深入介绍SQL Server的高级操作,包括查询数据、排序数据、过滤数据、连接表和子查询等。
读者将学会如何使用SQL语句来实现复杂的数据查询和分析。
第五章:SQL Server的性能优化本章将介绍SQL Server的性能优化技术,包括索引优化、查询优化、存储过程优化和服务器配置优化等。
通过掌握这些技术,读者将能够提高SQL Server的性能和响应速度。
第六章:SQL Server的备份和恢复在数据库管理中,备份和恢复是非常重要的任务。
本章将详细介绍SQL Server的备份和恢复技术,包括完整备份、差异备份、事务日志备份和数据库恢复等。
读者将学会如何使用SQL Server来保护数据库的安全和可靠性。
第七章:SQL Server的高可用性在企业级应用中,数据库的高可用性是至关重要的。
本章将介绍SQL Server的高可用性技术,包括故障转移集群、数据库镜像、数据库复制和Always On可用性组等。
SQL-Server数据库安全管理目录SQL-Server数据库安全管理 (1)一、SQL Server 的安全机制 (3)1.客户机的安全机制 (3)2.网络传输的安全机制 (3)3.服务器安全机制 (3)4.数据库的安全机制 (3)5.数据库对象的安全机制 (4)二、设置数据库服务器的访问权限 (4)1.SQL Server的验证模式 (4)(1).Windows身份验证模式 (4)(2).SQL Server和Windows混合身份验证模式 (4)2.设置登录账户 (5)3.服务器角色的概念 (6)三、数据库角色 (7)1.固定数据库角色有以下几种 (7)2.用户自定义数据库角色 (8)四、数据库访问审核 (9)五、屏蔽SQL Server常见漏洞 (9)1.修改SA密码 (9)2.删除或禁用不必要的用户 (10)3.删除危险的存储过程 (10)4.关闭不必要的网络连接功能 (10)5.配合防火墙过滤指定端口访问 (11)6.禁用不必要的协议 (11)7.加密数据 (11)8.定期安装补丁 (11)一、SQL Server 的安全机制SQL Server 的安全机制主要包括以下五个方面:1.客户机的安全机制客户机的安全机制是指:用户必须能够登录到客户机,然后才能使用SQL Server 2005应用系统或客户机管理工具来访问数据库。
对于使用Windows系统的客户来说,它主要涉及的是操作系统的安全,主要是Windows账号的安全(这个意思就是保证你的电脑系统的安全,也就保证了SQL Server 2005的第一道防线)。
2.网络传输的安全机制网络传输的安全一般采用数据的加密和解密技术来实现,但加密的SQL Server会使网络速度变慢,所以对安全性要求不高的网络一般都不采用加密技术。
3.服务器安全机制服务器安全机制是指:当用户登录服务器时,必须使用一个账号(也称为登录账号)和密码,这个账号和密码是服务器上的账号和密码,服务器会按照不同的身份验证方式来判断这个账号和密码的正确性。
第8章习题解答1.思考题(1)SQL Server 2008提供了哪些安全管理机制?安全性管理是建立在什么机制上的?答:SQL Server 2008提供了非常完善的安全管理机制,包括用户登录、管理和对用户使用数据库对象的管理。
SQL Server2008的安全性管理是建立在身份验证和访问许可机制上的。
(2)SQL Server 2008有几种身份验证方式?它们的区别是什么?哪种身份验证方式更安全?答:SQL Server 2008有两种身份验证方式,即Windows身份验证模式和混合模式。
Windows 身份验证模式会启用 Windows 身份验证并禁用 SQL Server 身份验证。
混合模式会同时启用 Windows 身份验证和 SQL Server 身份验证。
Windows 身份验证始终可用,并且无法禁用。
SQL Server 2008 的默认身份验证模式是Windows身份验证模式,混合模式更为安全。
(3)数据库的权限是指什么权限?权限管理的主要任务是什么?角色中的所有成员能否继承该角色所拥有的权限?答:SQL Server2008中的权限包括3种类型:对象权限、语句权限和隐含权限。
权限管理的主要任务是对象权限和语句权限的管理。
角色中的所有成员继承该角色所拥有的权限。
(4)SQL Server 2008中有几种角色类型?它们的主要区别是什么?答:SQL Server 2008中有3种角色类型:固定角色、用户定义的数据库角色和应用程序角色。
固定角色:是指其权限已被SQL Server 2008定义,且SQL Server 2008管理者不能对其权限进行修改的角色。
这些固定角色涉及服务器配置管理以及服务器和数据库的权限管理。
按照管理目标对象的不同,固定角色又分为固定服务器角色和固定数据库角色。
用户定义数据库角色:就是当一组用户需要设置的权限不同于固定数据库角色所具有的权限时,为了满足要求而定义的新的数据库角色。
第8 章安全管理(4课时)主要内容:1 安全管理概述(身份验证模式、主体和安全对象)2 登录名管理(创建、维护等)3 数据库用户管理(创建、维护等)4 架构管理(创建、修改和删除等)5 角色管理(固定角色、用户定义的数据库角色、应用程序角色)6 权限管理(权限类型、常用对象的权限、管理权限)8.1 安全管理概述本章主线安全管理是数据库管理系统一个非常重要的组成部分,是数据库中数据被合理访问和修改的基本保证。
SQL Server提供了非常完善的安全管理机制(身份验证机制[authentication]和访问许可机制[permission]),包括用户登录管理和用户使用数据库对象的管理。
只有使用特定的身份验证方式的用户,才能登录到系统中。
只有具有一定权限的用户,才能对数据库对象执行相应的操作。
当用户登录数据库系统时,应确保只有合法的用户才能登录到系统中,这是一个基本的安全问题。
SQL Server 2008系统中,通过身份验证模式和主体解决这个问题。
8.1.1 身份验证模式身份验证是确定客户端能否连接到SQL Server的验证方式,通过登录账号和密码来实现。
从客户端看,登录到SQL Server 2008系统可以通过两种身份验证:●Windows身份验证●SQL Server身份验证Windows身份验证。
该方式使用Windows操作系统的安全机制验证身份,只要用户能够通过Windows用户账号验证,即可连接到SQL Server而不用再进行身份验证。
Windows 身份验证方式是默认的身份验证方式,比SQL Server方式更安全。
这种身份验证方式下的连接是信任连接。
Windows身份验证方式下的用户账户是Windows操作系统下的用户或组,是由Windows 维护的。
当然Windows下的用户或组要成为SQL Server的登录账户必须经过映射。
SQL Server身份验证方式。
该方式使用SQL Server系统的安全机制验证身份。
当客户端连接到服务器时必须提供登录名和密码,此种连接称为非信认连接,用户登录账户是由SQL Server维护的。
身份验证模式是SQL Server 2008系统验证客户端的方式,从服务器端看,SQL Server 服务器身份验证模式有两种:●Windows 身份验证模式●SQL Server和Windows 身份验证模式通过SQL Server Management Studio工具可以查看和设置连接的服务器身份验证模式(演示),当然设置完成后,要重新启动SQL Server才能生效。
8.1.2 主体和安全对象在权限管理中首先要理解主体与安全对象的概念。
【主体、安全对象和权限,对应哪些人、哪些资源和哪些操作,三个对象可用一个造句连接:给予<主体>对于<安全对象>的<权限>】主体是可以请求系统资源的个体、组和过程,是可以请求SQL Server 资源的实体。
例如,数据库用户是一种主体,可以按照自己的权限在数据库中执行相应的操作。
SQL Server 2008系统有多种不同的主体,不同主体之间的关系是典型的层次结构关系,位于不同层次上的主体其在系统中影响的范围也不同。
主体的影响范围取决于主体定义的范围(Windows、服务器或数据库)以及主体是单个的还是一个集合。
每个主体都具有一个安全标识符(SID)。
SQL Server 2008系统中,可以把主体的层次分为3个级别:●Windows级别●SQL Server级别●数据库级别Windows级别的主体包括:●Windows 域登录名●Windows 本地登录名SQL Server级别的主体包括:●SQL Server登录名数据库级别的主体包括:●数据库用户●数据库角色●应用程序角色安全对象是SQL Server 数据库引擎授权系统控制对其进行访问的资源。
SQL Server系统通过验证主体是否已经获得适当的权限来控制主体对安全对象的各种操作。
安全对象范围有服务器、数据库和架构。
服务器安全对象范围包括:●端点●SQL Server 登录账户●数据库数据库安全对象范围包括:●用户●角色●应用程序角色●程序集●消息类型●路由●服务●远程服务绑定●全文目录●证书●非对称密钥●对称密钥●约定●架构架构安全对象范围包括:● 类型● XML 架构集合● 对象(聚合、约束、函数、过程、队列、统计信息、同义词、表、视图等)主体和安全对象之间是通过权限关联起来的。
主体通过发出请求来访问系统资源(安全对象)。
主体能否对安全对象执行访问操作,需要判断主体是否拥有访问安全对象的权限。
那么,数据库中的对象由谁所有?如果是由用户所有,当用户被删除时,其所拥有的对象怎么办?难道数据库对象可以成为没有所有者的“孤儿”吗?在SQL Server 2008系统中,这个问题是通过用户和架构分离来解决的,用户并不拥有数据库对象,架构拥有数据库对象,用户通过架构来使用数据库对象。
数据库对象、架构和用户之间的关系示意图如下:8.2 登录名管理登录账户是基于服务器级使用的名称。
登录名管理包括创建登录名、设置密码策略、查看登录名信息及修改登录名等。
sa 是一个默认的SQL Server 登录名,拥有操作SQL Server 系统的所有权限,该登录名不能被删除。
以”##”开头和结尾的用户是SQL Server 内部使用的账户,由证书创建,不应该被删除。
BUILDIN\Administrator 账户是与本地管理员组关联的登录名,默认属于sysadmin 角色。
这个账户使得任何属于本地管理员的账户都可以获得对SQL Server 的完全控制权。
【无论是哪一种环境下安装SQL Server 2008,都会碰到为每个SQL Server 2008服务配置账户的问题。
安装SQL Server 2008时会用的账户如下:[1] 本地用户帐户[2] 域用户帐户[3] 内置系统帐户● Network Service 帐户(网络服务)● Local Service 帐户(本地服务)● Local System 帐户(本地系统)本地用户帐户。
工作组环境,如果计算机不在域中,则建议使用不具有 Windows 管理员权限的本地用户帐户。
域用户帐户。
如果服务必须与网络服务进行交互,则访问类似于文件共享的域资源;如果服务使用到运行 SQL Server 的其他计算机的链接服务器连接,则可以使用具有最低特权的域帐户。
许多服务器到服务器的活动只能使用域用户帐户来执行。
此帐户应由域管理员在域环境内预先创建。
Local Service 帐户。
是一个内置帐户,与 Users 组的成员具有相同级别的资源和对象访问权限。
请注意,SQL Server 或 SQL Server 代理服务不支持 Local Service 帐户。
该帐户的实际名称为“NT AUTHORITY\LOCAL SERVICE ”。
Network Service 帐户。
是一个内置帐户,比 Users 组的成员拥有更多的对资源和对象的访问权限。
以 Network Service 帐户身份运行的服务将使用计算机帐户的凭据访问网络资源。
该帐户的实际名称为“NT AUTHORITY\NETWORK SERVICE ”。
Local System 帐户。
Local System 是一个具有高特权的内置帐户。
它对本地系统有许多权限并作为网络上的计算机。
该帐户的实际名称为“NT AUTHORITY\SYSTEM”。
】8.2.1 创建登录名创建登录名包括定义登录名名称,与之映射的Windows登录账户(Windows身份验证),登录口令,默认数据库等信息。
⏹映射Windows登录账户为SQL Server 登录账户(1)映射Windows登录账户为SQL Server 登录账户CREATE LOGIN login_name FROM WINDOWS,其中,登录名必须用方括号括起来,名称格式为:域名\计算机名\用户名或组名。
例:已经创建Windows用户bobbie,请创建登录名if suser_ID('admi\bobbie')is not nulldrop login[admi\bobbie]gocreate login[admi\bobbie]from windowsgo(2)创建SQL Server登录账户CREATE LOGIN login_name WITH PASSWORD=’password’例:创建名称为user01的SQL Server登录账户if suser_ID('user01')is not nulldrop login user01gocreate login user01with password='user123'go例:创建指定默认数据库的登录名if suser_ID('user02')is not nulldrop login user02gocreate login user02withpassword='user02123',default_database=northwindgo在Microsoft SQL Server 2008系统中,可以使用Master数据库用的系统视图sys.server_principals目录视图可以查看有关服务器级的主体信息,sys.sql_logins目录视图提供了SQL Server登录名信息。
其中,S类型表示SQL Server登录名,U表示Windows登录名,G表示Windows组。
8.2.2 维护登录名登录名创建之后,可以根据需要修改登录名的名称、密码、密码策略、默认的数据库等信息,可以禁用或启用该登录名,也可以删除不需要的登录名。
使用ALTER LOGIN语句用来修改登录名的属性信息。
【修改登录名与删除再重建该登录名是不同的,修改登录名时修改前后登录名的SID是不变的】,也可以禁用或启用指定的登录名。
例:修改登录名的名称ALTER LOGIN user01WITH name=suser01例:修改登录名的密码ALTER LOGIN suser01WITH PASSWORD='suser01123'例:禁用登录名suser01登录ALTER LOGIN suser01DISABLE例:启用登录名suser01登录ALTER LOGIN suser01ENABLE如果某个登录名不再需要了,可以使用DROP LOGIN语句删除该登录名8.3 数据库用户管理数据库用户是数据库级的主体,是登录名在数据库中的映射,是在数据库中执行操作和活动的行动者。