数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。
对于数据库管理来说,保护数据不受内部和外部侵害是一项重要的工作。Microsoft SQL Server 正日益广泛的使用于各部门内外,作为SQL Server(SQL Server是指Microsoft SQL Server,下文同)的数据库系统管理员,需要深入的理解SQL Server的安全性控制策略,以实现管理安全性的目标。
图1给出了SQL Server安全控制策略示意图。由图可见,SQL Server的安全控制策略是一个层次结构系统的集合。只有满足上一层系统的安全性要求之后,才可以进入下一层。
各层SQL Server安全控制策略是通过各层安全控制系统的身份验证实现的。身份验证是指当用户访问系统时,系统对该用户的账号和口令的确认过程。身份验证的内容包括确认用户的账号是否有效、能否访问系统、能访问系统的哪些数据等。
身份验证方式是指系统确认用户的方式。SQL Server系统是基于Windows NT/2000操作系统的,现在的SQL Server系统可以安装在Windows 95(需要安装Winsock升级软件)、Windows 98和Windows ME之上(此时,将没有第一层和第二层的安全性控制),但旧的SQL Servers系统只能运行在Windows NT/2000操作系统上。Windows NT/2000对用户有自己的身份验证方式,用户必须提供自己的用户名和相应的口令才能访问Windows NT/2000系统。
这样SQL Server的安全系统可在任何服务器上通过两种方式实现:SQL Server和Windows结合使用(SQL Server and Windows)以及只使用Windows(Windows Only)。访问Windows NT/2000系统用户能否访问SQL Server系统就取决于SQL Server系统身份验证方式的设置。
1. 用户标识与验证
用户标示和验证是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标示自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。
对于获得上机权的用户若要使用数据库时数据库管理系统还要进行用户标识和鉴定。
用户标识和鉴定的方法有很多种,而且在一个系统中往往是多种方法并举,以获得更强的安全性。常用的方法有:
用一个用户名或者用户标识号来标明用户身份。系统内部纪录着所有合法用户的标识,系统验证此户是否合法用户,若是,则可以进入下一步的核实;若不是,则不能使用系统。
为了进一步核实用户,系统常常要求用户输入口令(Password)。为保密起见,用户在终端上输入的口令不显示在屏幕上。系统核对口令以验证用户身份。
用户标识与验证在SQL Server中对应的是Windows NT/2000登录账号和口令以及SQL Server用户登录账号和口令。
2. SQL Server身份验证方式
用户必须使用一个登录账号,才能连接到SQL Server中。SQL Server可以识别两类的身份验证方式,即:SQL Server身份验证(SQL Server Authentication)方式和Windows身份验证(Windows Authentication)方式。这两种方式的结构如图2所示。这两种方式都有自己的登录账号类型。
注意的是,如果在Microsoft Windows95/98/ME上使用SQL Server的Personal版,作为SQL Server宿主的Microsoft Windows95/98/ME系统只能使用SQL Server登录。因此,Windows NT/2000身份验证、域用户的账号和域组账号都是不可用的。
当使用SQL Server身份验证方式时, 由SQL Server系统管理员定义SQL Server账号和口令。当用户连接SQL Serve时,必须提供登录账号和口令。当使用Windows身份验证方式时,由Windows NT/2000账号或者组控制用户对SQL Server系统的访问。这时,用户不必提供SQL Server的Login账号和口令就能连接到系统上。但是,在该用户连接之前,SQL Serve系统管理员必须将Windows NT/2000账号或者Windows NT/2000组定义为SQL Server的有效登录账号。