第十六章系统安全管理数据的安全性管理是数据库管理系统应实现的重要功能之一。SOLServer数据库采用了如下的安全管理机制:对用户登录进行身份认证。当用户登录到数据库系统时,系统对该用户的账号和口令进行认证,包括确认用户账号是否有效以及能否访问数据库系统。■对用户进行的操作进行权限控制。当用户登录到数据库后,只能对数据库中的数据在充许的权限内进行操作。一个用户要对某一数据库进行操作,必须满足以下3个条件:■登录SQLServer服务器时必须通过身份验证■必须是该数据库的用户,或者是某一数据库角色的成员■必须有执行该操作的权限16.1SQLServer2000的身份认证模式1.WindowsNT认证模式用户登录WindowsNT时进行身份认证,登录SOLServer时不再进行身份验证。对于WindoWsNT认证模式登录的几点重要说明:(I)必须将NT网络账号加入到SQLServer中,才能采用NT网络账号登录SQLServer。(2)如果使用NT网络账号登录到另一个网络的SQLServer,必须在NT网络中设置彼此的托管权限。16.SQLServer认证模式在SQLServer认证模式下,SQLServer服务器要对登录的用户进行身份验证对于Windows9x系列的操作系统只能使用SQLServer认证模式,而当SQLServer在WindowsNT或Windows2000上运行时,系统管理员设定登录认证模式的类型可为WindowsNT认证模式和混合模式。建立和管理用户帐户16.216.2.1WindowsNT认证模式登录账号的建立与删除1.WindowsNT认证模式登录账号的建立1)通过企业管理器建立WindowsNT认证模式的登录账号Windows2000本地计算机管理界面Windows2000本地计算机创建新用户的界面e5so5.e..ooo.mCED
第十六章 系统安全管理 数据的安全性管理是数据库管理系统应实现的重要功能之一。SQL Server 数据库采用了 如下的安全管理机制: 对用户登录进行身份认证。当用户登录到数据库系统时,系统对该用户的帐号和口 令进行认证,包括确认用户账号是否有效以及能否访问数据库系统。 对用户进行的操作进行权限控制。当用户登录到数据库后,只能对数据库中的数据 在允许的权限内进行操作。 一个用户要对某一数据库进行操作,必须满足以下 3 个条件: 登录 SQL Server 服务器时必须通过身份验证 必须是该数据库的用户,或者是某一数据库角色的成员 必须有执行该操作的权限 16.1 SQL Server 2000 的身份认证模式 1. Windows NT 认证模式 用户登录 Windows NT 时进行身份认证,登录 SQL Server 时不再进行身份验证。 对于 Windows NT 认证模式登录的几点重要说明: (1) 必须将 NT 网络账号加入到 SQL Server 中,才能采用 NT 网络账号登录 SQL Server。 (2) 如果使用 NT 网络账号登录到另一个网络的 SQL Server,必须在 NT 网络中设置 彼此的托管权限。 16. SQL Server 认证模式 在 SQL Server 认证模式下,SQL Server 服务器要对登录的用户进行身份验证 对于 Windows 9x 系列的操作系统只能使用 SQL Server 认证模式,而当 SQL Server 在 Windows NT 或 Windows2000 上运行时,系统管理员设定登录认证模式的类型可为 Windows NT 认证模式和混合模式。 16.2 建立和管理用户帐户 16.2.1 Windows NT 认证模式登录账号的建立与删除 1. Windows NT 认证模式登录账号的建立 1) 通过企业管理器建立 Windows NT 认证模式的登录账号 Windows 2000 本地计算机管理界面 Windows 2000 本地计算机创建新用户的界面
在企业管理器中选择“登录”图标右击SQLServer信任连接设置窗口uiS02-892SaE32ESEBSas5422)通过调用系统存储过程建立WindowsNT认证模式的登录账号创建WindowsNT、Windows2000的用户或组后,使用系统存储过程sp_grantlogin也可将一个WindowsNT或Windows2000的用户或组的登录账号添加到SQLServer中,以便通过Windows身份验证连接到SQLServer。语法格式:sp_grantlogin [@loginame=]'login'数含义:@loginame=:原样输入的常量字符串注意:(1)不能在用户定义的事务内执行 sp_grantlogin;(2)仅sysadmin或securityadmin固定服务器角色的成员可以执行sp_grantlogin。2.WindowsNT认证模式登录账号的删除1)通过企业管理器删除WindowsNT认证模式的登录账号步骤如下:(1)以系统管理员身份进入企业管理器,并展开目录树:(2)在目录树的“登录”节点下,选中待删除的“账号"节点,2)通过调用系统存储过程删除WindowsNT认证模式的登录账号通过执行系统存储过程sp_revokelogin可删除WindowsNT用户或组登录SQLServer的账号
在企业管理器中选择“登录”图标右击 SQL Server 信任连接设置窗口 2) 通过调用系统存储过程建立 Windows NT 认证模式的登录账号 创建 Windows NT、Windows 2000 的用户或组后,使用系统存储过程 sp_grantlogin 也可将一个 Windows NT 或 Windows2000 的用户或组的登录账号添加到 SQL Server 中,以便通过 Windows 身份验证连接到 SQL Server。 语法格式: sp_grantlogin [@loginame =] 'login' 数含义: @loginame =:原样输入的常量字符串 注意: (1) 不能在用户定义的事务内执行 sp_grantlogin; (2) 仅 sysadmin 或 securityadmin 固定服务器角色的成员可以执行 sp_grantlogin。 2. Windows NT 认证模式登录账号的删除 1) 通过企业管理器删除 Windows NT 认证模式的登录账号 步骤如下: (1) 以系统管理员身份进入企业管理器,并展开目录树; (2) 在目录树的“登录” 节点下,选中待删除的“账号”节点, 2) 通过调用系统存储过程删除 Windows NT 认证模式的登录账号 通过执行系统存储过程 sp_revokelogin 可删除 Windows NT 用户或组登录 SQL Server 的账号
16.2.2混合认证模式下SQLServer登录账号的建立与删除-(1)在企业管理器中,选择要登录的SOLServer服务器图标右击,出现一快捷菜单,选择菜单项“属性”,出现如图的SQLServer服务器属性配置窗口。(2)选择安全性"选项卡,如图所示,选择身份验证方式为"SQLServer与Windows",选择“确定"按钮。SQLServer服务器属性配置窗口SQLServer身份认证方式配置窗口A印工A.SPeo二am一aedSE23FRE6281.通过企业管理器创建SQLServer登录账号(1)在企业管理器中选择“登录"图标右击,出现快捷菜单,选择“新建登录菜单项,进入如下图的界:(2)输入账号名、密码,选择"SQLServer身份验证”方式,点击"确定"按钮。SQLServer登录账号新建窗口an2I2
16.2.2 混合认证模式下 SQL Server 登录账号的建立与删除 (1) 在企业管理器中,选择要登录的 SQL Server 服务器图标右击,出现一快捷菜单, 选择菜单项“属性”,出现如图的 SQL Server 服务器属性配置窗口。 (2) 选择“安全性”选项卡,如图所示,选择身份验证方式为“SQL Server 与 Windows”,选择“确定”按钮。 SQL Server 服务器属性配置窗口 SQL Server 身份认证方式配置窗口 1. 通过企业管理器创建 SQL Server 登录账号 (1) 在企业管理器中选择“登录”图标右击,出现快捷菜单,选择“新建登录”菜单项,进入如 下 图的界; (2) 输入账号名、密码,选择“SQL Server 身份验证”方式,点击“确定”按钮。 SQL Server 登录账号新建窗口
2.利用系统存储过程创建SQLServer登录账号语法格式:sp_addlogin [@loginame =] login'[,[@passwd-]'password'][,[@defdb=}'database'][,[@deflanguage-|'language'][,[@sid =| sid][[@encryptopt=」'encryption_option']3.SQLServer登录账号的删除利用sp_droplogin系统存储过程可删除SQLServer登录账号。语法格式:sp_droplogin[@loginame=] 'login'参数含义:"login':将被删除的登录账号名。返回值:0(成功)或1(失败)。说明:(1)若要删除一个数据库现有用户的登录账号,必须首先使用sp_dropuser删除该用户。(2)不能删除系统管理员(sa)的登录账号。(3)不能在用户定义的事务内执行sp_droplogin。(4)只有sysadmin和securityadmin固定服务器角色的成员才能执行sp_droplogin。8.3服务器角色与数据库角色■在SQLServer中,通过角色可将用户分为不同的类,对相同类用户(相同角色的成员)进行统一管理,赋予相同的操作权限,SQLServer给用户提供了预定义的服务器角色(固定服务器角色)和数据库角色(固定数据库角色),固定服务器角色和固定数据库角色都是SQLServer内置的,不能进行添加、修改和删除。用户可根据需要,创建自已的数据库角色。固定服务器角色16.3.1服务器角色独立于各个数据库,如果在SQLServer中创建一个登录账号后,要赋予-该登录者具有管理服务器的权限,此时可设置该登录账号为服务器角色的成员。SQLServer提共了如下固定服务器角色:■Sysadmin:系统管理员,可对SQLServer服务器进行所有的管理工作,为最高管理角色。■Securityadmin:安全管理员,可以管理登录和CREATEDATABASE权限,还可以读取错误码日志和更改密码。■Serveradmin:服务器管理员,具有设置及关闭服务器的权限。■Setupadmin:设置管理员,添加和删除链接服务器,并执行某些系统存储过程。■Processadmin:进程管理员,可以管理运行在SOLServer中的进程。■Diskadmin:可以管理磁盘文件。■Dbcreator:数据库创建者,可以创建、更改和删除数据库。■Bulkadmin:可执行bulkinsert语句。1.通过企业管理器添加服务器角色成员(1)以系统管理员身份登录到SQLServer服务器,在登录图标对应的列表项中,选择登录账号“DLGC-YPOOLOLRW4\LIU"的项目双击;
2. 利用系统存储过程创建 SQL Server 登录账号 语法格式: sp_addlogin [ @loginame = ] 'login' [ , [ @passwd = ] 'password' ] [ , [ @defdb = ] 'database' ] [ , [ @deflanguage = ] 'language' ] [ , [ @sid = ] sid ] [ , [ @encryptopt = ] 'encryption_option' ] 3. SQL Server 登录账号的删除 利用 sp_droplogin 系统存储过程可删除 SQL Server 登录账号。 语法格式: sp_droplogin [ @loginame = ] 'login' 参数含义: 'login':将被删除的登录账号名。 返回值:0(成功)或 1(失败)。 说明 : (1) 若要删除一个数据库现有用户的登录账号,必须首先 使用 sp_dropuser 删除该用户。 (2) 不能删除系统管理员 (sa) 的登录账号。 (3) 不能在用户定义的事务内执行 sp_droplogin。 (4) 只有 sysadmin 和 securityadmin 固定服务器角色的成员才能执行 sp_droplogin。 8.3 服务器角色与数据库角色 在 SQL Server 中,通过角色可将用户分为不同的类,对相同类用户(相同角色的成 员)进行统一管理,赋予相同的操作权限,SQL Server 给用户提供了预定义的服务 器角色(固定服务器角色)和数据库角色(固定数据库角色),固定服务器角色和固 定数据库角色都是 SQL Server 内置的,不能进行添加、修改和删除。用户可根据需 要,创建自已的数据库角色。 16.3.1 固定服务器角色 服务器角色独立于各个数据库,如果在 SQL Server 中创建一个登录账号后,要赋予 该登录者具有管理服务器的权限,此时可设置该登录账号为服务器角色的成员。 SQL Server 提共了如下固定服务器角色: Sysadmin:系统管理员,可对 SQL Server 服务器进行所有的管理工作,为最高管理角 色。 Securityadmin:安全管理员,可以管理登录和 CREATE DATABASE 权限,还可以读 取错误码日志和更改密码。 Serveradmin:服务器管理员,具有设置及关闭服务器的权限。 Setupadmin:设置管理员,添加和删除链接服务器,并执行某些系统存储过程。 Processadmin:进程管理员,可以管理运行在 SQL Server 中的进程。 Diskadmin:可以管理磁盘文件。 Dbcreator:数据库创建者,可以创建、更改和删除数据库。 Bulkadmin:可执行 bulk insert 语句。 1. 通过企业管理器添加服务器角色成员 (1) 以系统管理员身份登录到 SQL Server 服务器,在登录图标对应的列表项中,选择登录账 号“DLGC-YPOOLOLRW4\LIU”的项目双击;
(2)选择“服务器角色”选项卡,选项卡中列出了SQLServer所有的固定服务器角色,将“Systemadministrators"服务器角色前的复选框选中。SQLServer服务器角色设置窗口AT三蛋爱蛋烫光蛋蛋蛋2.利用系统存储过程添加固定服务器角色成员利用系统存储过程sp_addsrvrolemember可将一登录账号添加到某一固定服务器角色中,使其成为固定服务器角色的成员。说明:(1)将登录账号添加到固定服务器角色时,该登录就会得到与此固定服务器角色相关的权限。(2)不能更改sa角色成员资格。(3)不能在用户定义的事务内执行sp_addsrvrolemember存储过程。(4)sysadmin固定服务器的成员可以将登录账号添加到任何固定服务器角色,其他固定服务器角色的成员可以执行sp_addsrvrolemember将登录账号添加到同一个固定服务器角色。3.利用系统存储过程删除固定服务器角色成员利用sp_dropsrvrolemember系统存储过程可从固定服务器角色中删除SQLServer登录账号或WindowsNT用户或组。说明:(1)不能删除sa登录账号。(2)不能在用户定义的事务内执行sp_dropsrvrolemember。(3)sysadmin固定服务器角色的成员执行sp_dropsrvrolemember,可删除任意固定服务器角色中的登录账号,其他固定服务器角色的成员只可以删除相同固定服务器角色中的其他成员。16.3.2固定数据库角色1.固定数据库角色(1)db_owner:数据库所有者,可执行数据库的所有管理操作。2)db_accessadmin:数据库访问权限管理者,具有添加、删除数据库使用者、数据库角色和组的权限。(3)db_securityadmin:数据库安全管理员,可管理数据库中的权限,如设置数据库表的插入、删除、修改和查询等存取权限。(4)db_ddladmin:数据库DDL管理员,可增加、修改或删除数据库中的对象。(5)db_backupoperator:数据库备份操作员,具有执行数据库备份的权限
(2) 选择“服务器角色” 选项卡,选项卡中列出了 SQL Server 所有的固定服务器角 色,将“System administrators”服务器角色前的复选框选中。 SQL Server 服务器角色设置窗口 2. 利用系统存储过程添加固定服务器角色成员 利用系统存储过程 sp_addsrvrolemember 可将一登录账号添加到某一固定服务器 角色中,使其成为固定服务器角色的成员。 说明: (1) 将登录账号添加到固定服务器角色时,该登录就会得到与此固定服务器角色相 关的权限。 (2) 不能更改 sa 角色成员资格。 (3) 不能在用户定义的事务内执行 sp_addsrvrolemember 存储过程。 (4) sysadmin 固定服务器的成员可以将登录账号添加到任何固定服务器角色,其他 固定服务器角色的成员可以执行sp_addsrvrolemember 将登录账号添加到同一个固定服务器 角色。 3. 利用系统存储过程删除固定服务器角色成员 利用 sp_dropsrvrolemember 系统存储过程可从固定服务器角色中删除 SQL Server 登录账号或 Windows NT 用户或组。 说明: (1) 不能删除 sa 登录账号。 (2) 不能在用户定义的事务内执行 sp_dropsrvrolemember。 (3) sysadmin 固定服务器角色的成员执行 sp_dropsrvrolemember,可删除任意固定服务 器角色中的登录账号,其他固定服务器角色的成员只可以删除相同固定服务器角色中的其他 成员。 16.3.2 固定数据库角色 1. 固定数据库角色 (1) db_owner:数据库所有者,可执行数据库的所有管理操作。 2) db_accessadmin:数据库访问权限管理者,具有添加、删除数据库使用者、数据库角色和 组的权限。 (3) db_securityadmin:数据库安全管理员,可管理数据库中的权限,如设置数据库表的插入、 删除、修改和查询等存取权限。 (4) db_ddladmin:数据库 DDL 管理员,可增加、修改或删除数据库中的对象。 (5) db_backupoperator:数据库备份操作员,具有执行数据库备份的权限