第11章 安全管理 教学提示:数据库安全是关系数据库中的非常重要的方面,包括了系统安全、数据安全、资源管理、用户管理、权限管理、角色管理、口令管理以及授权、认证、审计等相当多方面的内容。本章讲述有关数据库安全方面的知识。 数据库系统的安全性是每个数据库管理员都必须认真考虑的问题。SQL Server 2005为维护数据库系统的安全性提供了完善的管理机制和简单而丰富的操作手段。在实际应用中,用户可以根据系统对安全性的不同需求采用合适的方式来完成数据库系统安全体系的设计。
教学目标:本章主要包含以下内容: SQL Sever的安全机制 登录和用户 权限管理 角色管理 通过本章的学习,要求读者深入理解SQL Server的安全机制,以及掌握常用管理操作,并培养良好的数据库安全意识,以及制定合理的数据库安全策略,也为进一步的学习和掌握其他数据库安全知识奠定基础。
第11章 安全管理 11.1 SQL Server的安全性机制 11.2 登录和用户 11.3 权限管理 11.4 角色管理 第11章 安全管理 11.1 SQL Server的安全性机制 11.2 登录和用户 11.3 权限管理 11.4 角色管理 11.5 上机指导
11.1 SQL Server的安全性机制 11.1.1 权限层次机制 11.1.1 权限层次机制 SQL Server 2005的权限管理是分层进行管理,在每一层都有相应的安全性机制,SQL Server通过管理这种分层的安全性机制,保证数据库的安全使用。 SQL Server 2005的安全性管理可分为3个等级,图11.1给出了详细的权限层次和安全机制:①操作系统级;②SQL Server级;③数据库级。
11.1.2 操作系统级的安全性 在用户使用客户计算机通过网络实现对SQL Server服务器的访问时,用户首先要获得计算机操作系统的使用权。 一般说来,在能够实现网络互连的前提下,用户没有必要向运行SQL Server服务器的主机进行登录,除非SQL Server服务器就运行在本地计算机上。SQL Server可以直接访问网络端口,所以可以实现对Windows NT安全体系以外的服务器及其数据库的访问。 操作系统安全性是操作系统管理员或者网络管理员的任务。由于SQL Server采用了集成Windows NT网络安全性的机制,所以使得操作系统安全性的地位得到提高,但同时也加大了管理数据库系统安全性的灵活性和难度。
11.1.3 SQL Server级的安全性 SQL Server的服务器级安全性建立在控制服务器登录账号和口令的基础上。SQL Server采用了标准SQL Server登录和集成Windows NT登录两种方式。无论是使用那种登录方式,用户在登录时提供的登录账号和口令,决定了用户能否获得SQL Server的访问权,以及在获得访问权以后,用户在访问SQL Server进程时可以拥有的权利。管理和设计合理的登录方式是SQL Server 管理员DBA的重要任务,是SQL Server安全体系中,DBA可以发挥主动性的第一道防线。
11.1.4 数据库级的安全性 在用户通过SQL Server服务器的安全性检验以后,将直接面对不同的数据库入口。这是用户将接受的第三次安全性检验。 在建立用户的登录账号信息时,SQL Server会提示用户选择默认的数据库。以后用户每次连接上服务器后,都会自动转到默认的数据库上。对任何用户来说,master数据库的门总是打开的,如果在设置登录账号时没有指定默认的数据库,则用户的权限将局限在master数据库以内。 在默认的情况下,只有数据库的拥有者才可以访问该数据库的对象,数据库的拥有者可以分配访问权给别的用户,以便让别的用户也拥有针对该数据库的访问权利,在SQL Server中并不是所有的权利都可以自由转让和分配的。
11.2 登录和用户 11.2.1 登录的身份验证模式及其设置 用于连接到SQL Server的账户都称为SQL Server的登录;用户是为特定数据库定义的,要创建用户,你必须已经定义了该用户的登录,用户ID同登录类似,但是它的名称不需要与登录相同。 对于访问SQL Server的登录,有两种验证模式:Windows身份验证和混合模式身份验证。
11.2.2 创建登录 登录属于服务器级的安全策略,要连接到数据库,首先要存在一个合法的登录。在Microsoft SQL Server Management Studio中创建登录的步骤如下。 1. 打开Microsoft SQL Server Management Studio并连接到目标服务器,在【对象资源管理器】窗口中,单击【安全性】节点前的“+”号,展开安全节点。在【登录名】上单击鼠标右键,弹出快捷菜单,从中选择【新建登录名(N)…】命令,如图11.4所示。 略
11.2.3 创建用户 用户是数据库级的安全策略,在为数据库创建新的用户前,必须存在要创建用户的一个登录或者使用已经存在的登录创建用户。 11.2.3 创建用户 用户是数据库级的安全策略,在为数据库创建新的用户前,必须存在要创建用户的一个登录或者使用已经存在的登录创建用户。 1. 使用 Management Studio创建用户 2. 使用Transact-SQL创建登录和用户
11.3 权 限 管 理 11.3.1 服务器权限 服务器权限允许数据库管理员执行管理任务。这些权限定义在固定服务器角色(fixed server roles)中。这些固定服务器角色可以分配给登录,但这些角色是不能修改的。一般只把服务器权限授给DBA(数据库管理员),他不需要修改或者授权给别的用户登录。我们将在后面讲解角色管理时,详细地介绍服务器的相关权限和配置。
11.3.2 数据库对象权限 数据库对象权限是授予用户以允许他们访问数据库中对象的一类权限,对象权限对于使用SQL语句访问表或者视图是必须的。 在Microsoft SQL Server Management 2005中给用户添加对象权限的具体步骤如下。略
11.3.3 数据库权限 对象权限使用户能够访问存在于数据库中的对象,除了数据库对象权限外,还可以给用户分配数据库权限。SQL Server 2005对数据库权限进行了扩充,增加了许多新的权限,这些数据库权限除了授权用户可以创建数据库对象和进行数据库备份外,还增加了一些更改数据库对象的权限,在此我们不一一介绍。 在Microsoft SQL Server 2005中给用户添加数据库权限的具体的步骤如下。略
11.4 角 色 管 理 11.4.1 固定服务器角色 在SQL Server安装时就创建了在服务器级别上应用的大量预定义的角色,每个角色对应着相应的管理权限。这些固定服务器角色用于授权给DBA(数据库管理员),拥有某种或某些角色的DBA就会获得与相应角色对应的服务器管理权限。这些角色和相应的权限如表11.1所示。
11.4.2 数据库角色 在SQL Server安装时,数据库级别上也有一些预定义的角色,在创建每个数据库时都会添加这些角色到新创建的数据库中,每个角色对应着相应的权限。这些数据库角色用于授权给数据库用户,拥有某种或某些角色的用户会获得相应角色对应的权限。这些角色和相应的权限如表11.2所示。
11.5 上 机 指 导 11.5.1 创建登录 11.5.2 创建新用户