2. 10.1 SQL Server 权限管理策略 对于一个数据库管理员来说,安全性就意味着必须保证那些具有特殊数据访问权限的用户能够登录到 SQL Server ,并且能够访问数据以及对数据库对象实施各种权限范围内的操作;同时,他还要防止所有的非授权用户的非法操作。 SQL Server 提供了既有效又容易的安全管理模式,这种安全管理模式是建立在安全身份验证和访问许可两者机制上的。
3. 10.1.1 安全身份验证 安全身份验证用来确认登录 SQL Server 的用户的登录帐号和密码的正确性,由此来验证该用户是否具有连接 SQL Server 的权限。任何用户在使用 SQL Server 数据库之前,必须经过系统的安全身份验证。 SQL Server 2005 提供了两种确认用户对数据库引擎服务的验证模式: ( 1 ) Windows 身份验证 ( 2 ) SQL Server 身份验证。
4. 10.1.1 安全身份验证 ( 1 ) SQL Server 数据库系统通常运行在 Windows 服务器上,而 Windows 作为网络操作系统,本身就具备管理登录、验证用户合法性的能力,因此 Windows 验证模式正是利用了这一用户安全性和帐号管理的机制,允许 SQL Server 可以使用 Windows 的用户名和口令。在这种模式下,用户只需要通过 Windows 的验证,就可以连接到 SQL Server ,而 SQL Server 本身也就不需要管理一套登录数据。 ( 2 ) SQL Server 身份验证模式允许用户使用 SQL Server 安全性连接到 SQL Server 。在该认证模式下,用户在连接 SQL Server 时必须提供登录名和登录密码,这些登录信息存储在系统表 syslogins 中,与 Windows 的登录帐号无关。 SQL Server 自身执行认证处理,如果输入的登录信息与系统表 syslogins 中的某条记录相匹配,则表明登录成功。
5. 10.1.1 安全身份验证 利用 SQL Server 管理平台可以进行认证模式的设置,步骤如下: ( 1 )打开 Server 管理平台,右击要设置认证模式的服务器,从弹出的快捷菜单中选择“属性”选项,则出现 SQL Server 属性对话框。 ( 2 )在 SQL Server 属性对话框中选择“安全性”选项页,如图 10-1 所示。 ( 3 )在“服务器身份验证”选项栏中,可以选择要设置的认证模式,同时在“登录审核”中还可以选择跟踪记录用户登录时的哪种信息,例如登录成功或登录失败的信息等。 ( 4 )在“服务器代理帐户”选项栏中设置当启动并运行 SQL Server 时,默认的登录者中哪一位用户。 图 10-1 SQL Server 服务器属性页框
6. 10.1.2 访问许可确认 通过了认证并不代表用户就能访问 SQL Server 中的数据,同时他还必须通过许可确认。用户只有在具有访问数据库的权限之后,才能够对服务器上的数据库进行权限许可下的各种操作,这种用户访问数据库权限的设置是通过用户帐号来实现的 。
24. 10.2.3 角色管理 角色定义了常规的 SQL Server 用户类别。每种角色将该类别的用户与其使用 SQL Server 时执行的任务集以及成功完成这些任务所需的知识相关联。利用角色, SQL Server 管理者可以将某些用户设置为某一角色,这样只要对角色进行权限设置便可以实现对所有用户权限的设置,大大减少了管理员的工作量。 SQL Server 提供了用户通常管理工作的预定义服务器角色和数据库角色。用户还可以创建自己的数据库角色,以便表示某一类进行同样操作的用户。当用户需要执行不同的操作时,只需将该用户加入不同的角色中即可,而不必对该用户反复授权许可和收回许可。
25. 10.2.3 角色管理 1. 服务器角色 服务器角色是指根据 SQL Server 的管理任务,以及这些任务相对的重要性等级来把具有 SQL Server 管理职能的用户划分为不同的用户组,每一组所具有的管理 SQL Server 的权限都是 SQL Server 内置的。服务器角色存在于各个数据库之中,要想加入用户,该用户必须有登录帐号以便加入到角色中。 SQL Server2005 提供了八种常用的固定服务器角色,其具体含义如下所示: 系统管理员( sysadmin ):拥有 SQL Server 所有的权限许可; 服务器管理员( Serveradmin ):管理 SQL Server 服务器端的设置; 磁盘管理员( diskadmin ):管理磁盘文件; 进程管理员( processadmin ):管理 SQL Server 系统进程; 安全管理员( securityadmin ):管理和审核 SQL Server 系统登录; 安装管理员( setupadmin ):增加、删除连接服务器,建立数据库复制以及管理扩展存储过程; 数据库创建者( dbcreator ):创建数据库,并对数据库进行修改。 批量数据输入管理员( bulkadmin ):管理同时输入大量数据的操作。