使用者与安全性
管理建立与
管理使用者登入账户
管理数据库存取权限
管理数据库角色
安全性账户授权
本章总结
本章将学习在 Microsoft
SQL Server 2000 环境下
管理使用者并确保安全性。安全性
管理和备份、回复计划、容量规模及空间
管理一样,都是 DBA 例行的工作。少了系统的安全性,数据就会遗失或被破坏。
本章涵盖了使用者和安全性
管理有关的主题。我们会学习建立与
管理使用者登入账户,以及不同的验证模式;另外还将学习
SQL Server 使用者 ID。 使用者登入账户 (user login)是用来验证使用者是否允许存取该
SQL Server,可透过 Microsoft
Windows NT、Microsoft
Windows 2000 或
SQL Server 来验证。 使用者ID (user ID)分配使用者权限,用来在个别
数据库中存取特定对象。使用者 ID 与使用者登入账户相关,不过两者可以设定一样的名称,也可以设定不一样的名称,这些稍后将在本章讨论。本章学习在 SQL Serve r中分配的不同类型权限,以及如何使用权限。另外也会学习利用角色简化使用者的
管理工作。最后会学到的是
SQL Server 2000 安全账户授权。在看完本章后,您应具备
管理使用者登入账户和安全性的常识。
建立与
管理使用者登入账户
现在先透过使用者登入账户,开始
管理使用者与安全性的第一步。本节会介绍登入账户的重要性,以及用于维持登入账户的验证模式。接着我们会介绍三种建立登入的方法:使用
SQL Server Enterprise Manager、使用 Transact-SQL(T-SQL),以及使用 建立登入精灵 。最后回学习利用 Enterprise Manager 和T-SQL建立新的使用者账户。
建立使用者登入账户的原因
使用者登入账户可达到保护数据的目的,避免
数据库被未验证过的使用者有意或无意的更改。利用使用者登入账户可识别
SQL Server 中的每一个授权使用者。每个使用者登入账户都拥有一组唯一的名称和密码。如果没有使用者登入账户,所有对
SQL Server 的连接将使用同一个识别符号,这样就无法根据不同层级的使用者设立不同层级的安全存取范围。
使用者登入账户可设定不同层级的安全存取,也就是用不同的登入账户就有不同存取对象和执行功能的权限。我们可对某些
数据库对象加密,例如将预存程序和检视对未验证使用者隐藏定义。使用者登入账户可以允许特定层级的使用者插入或更新新信息至
数据库数据表,而一般层级的使用者只能用只读方式存取数据表。
让我们回到 第 18 章 的范例,了解登入账户如何限制数据的存取。范例中利用检视表限制对特定数据的存取。假定一个 Employee 资料表中包含职员姓名、电话号码、办公室号码、等级、工资、奖金等信息,为避免使用者存取数据表中的机密数据,要先建立检视表,只包含如职员姓名、电话号码及办公室号码等较不机密的信息,透过使用者登入账户限制存取基底数据表的数据,仅允许检视表数据的存取。当然,如果没有利用使用者登入账户做控管,而允许任何使用者存取检视表或数据表,就失去了使用检视表的意义。
验证模式
验证模式有两种:Microsoft
Windows 验证和混合模式验证。在
Windows 验证模式中,操作系统会负责验证使用者,在
SQL Server 中利用操作系统的验证决定使用者的权限。在混合模式验证中,
Windows NT/2000 和
SQL Server 同时负责验证使用者。在存取
SQL Server 之前,必须先登入
Windows NT/2000 账户。因此选择验证模式前,必须决定是否要使用双重的验证。让我们更详细的了解这两种验证模式,然后学习执行这些模式。
Windows 验证
在
Windows 验证中,
SQL Server 透过 Microsoft
Windows NT/2000 来提供登入的安全性。当使用者登入
Windows NT/2000,同时确认了使用者账户身份。然后
SQL Server 将验证使用者是否为
Windows NT/2000 确认的使用者,然后依验证身分给与
数据库存取的权限。
SQL Server 的登入程序结合了
Windows 的安全登入程序,透过
Windows NT/2000 提供的复杂加密过程,建置了
网络安全性属性。由于
SQL Server 和
Windows 的登入安全性验证是结合在一起的,所以这种方式不再需要别的验证方法。用来登入的唯一密码就是
Windows NT/2000 的密码。
Windows 验证是比混合验证模式更好的安全性方法,因为它提供了附加的安全性特性,包括安全确认、加密密码、稽核、密码到期时间、最小密码长度,以及在特定次数的失败登入后自动锁定账户。
混合模式验证
在混合模式验证中,使用者可以用
Windows 验证或
SQL Server 验证来存取
SQL Server。当有一个来自非安全系统的连接时,
SQL Server 会验证这个登入,检验是否设定过这个
SQL Server 登入账户。这个账户验证在
SQL Server 中执行,根据储存在
数据库中的使用者名称和密码进行检验。在尝试连接
SQL Server 时,系统会提示使用者提供使用者名称和密码。如果没有提供这些信息,
SQL Server 系统会拒绝该使用者的存取。
在您执行
Windows 95/98 时无法使用
Windows 验证模式,因此在这些平台上您必须使用
SQL Server 验证(用混合模式验证)。此外,Web 应用程序需要
SQL Server 验证(透过 Internet Information Server,或称为 IIS),因为这些应用程序的使用者并不一定都在同一个网域中,因此就不能依靠
Windows 安全性,这时就需要使用
SQL Server 安全性。其它需要存取
数据库的应用程序也同样需要
SQL Server 验证:一些应用程序的开发人员会因为它们的应用程序结构简单而喜欢使用
SQL Server 安全装置。在使用
SQL Server 安全装置时(在信任
网络中),应用程序的开发人员不再需要提供应用程序自身的安全性验证,这样可以简化他们的工作。
设定验证模式
请依下列步骤,用 Enterprise Manager 设定验证模式:
1. 开启 Enterprise Manager 窗口,在左边窗格中的
服务器名称上按一下鼠标右钮,并从快捷菜单中选择 内容 ,进入
SQL Server 属性窗口。按一下 安全性 页签,如图34-1所示。
图34-1 「
SQL Server属性」窗口的「安全性」页签
2. 在这个页签中,选择安全性方法和启动服务账户。在 安全性 区域中,指定是否使用
Windows NT/2000 和
SQL Server(混合模式)验证,或只使用
Windows NT/2000 验证。这里可以指定登入稽核层级。登入稽核层级指定保留哪些登入时的记录。应该根据安全性需要选择稽核等级,有四个等级可使用:
o 无 预设选项;不执行登入稽核。
o 成功 记录所有成功的登