《数据库基础第10章SQLServer的安全管理.ppt》由会员分享,可在线阅读,更多相关《数据库基础第10章SQLServer的安全管理.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第10章 SQL Server 的安全管理本章学习目标l 理解身份验证模式、安全账户管理、角色管理、权限管理的基本概念l 熟练使用和管理用户账号、角色并授予相应权限10.1 身份验证模式 SQL Server 2000 SQL Server 2000的安全机制是基于用户、角色、对象和 的安全机制是基于用户、角色、对象和权限的基础上建立的。系统可以将用户加入角色,也可以为 权限的基础上建立的。系统可以将用户加入角色,也可以为它们指定对象权限。每个对象都有所有者,所有权也影响到 它们指定对象权限。每个对象都有所有者,所有权也影响到权限。数据库对象(表、索引、视图、触发器、函数或存储 权限。数据库对
2、象(表、索引、视图、触发器、函数或存储过程)的用户称为数据库对象的所有者。创建数据库对象的 过程)的用户称为数据库对象的所有者。创建数据库对象的权限必须由数据库所有者或系统管理员授予。但是,在授予 权限必须由数据库所有者或系统管理员授予。但是,在授予数据库对象这些权限后,数据库对象所有者就可以创建对象 数据库对象这些权限后,数据库对象所有者就可以创建对象并授予其他用户使用该对象的权限。并授予其他用户使用该对象的权限。SQL Server 2000 SQL Server 2000安全系统的构架建立在用户和用户组的 安全系统的构架建立在用户和用户组的基础上,也就是说 基础上,也就是说Windows
3、 Windows的用户和用户组可以映射到 的用户和用户组可以映射到SQL SQL Server 2000 Server 2000中的安全账户,而 中的安全账户,而SQL Server 2000 SQL Server 2000也可以独自 也可以独自建立安全账户。对于安全账户 建立安全账户。对于安全账户SQL Server 2000 SQL Server 2000可以对其分配 可以对其分配权限,也可以将其加入到角色中,从而获得相应的权限。如 权限,也可以将其加入到角色中,从而获得相应的权限。如图 图10-1 10-1所示。所示。在 在SQL Server 2000 SQL Server 2000工
4、作时,用户要经过两个安全性阶段:工作时,用户要经过两个安全性阶段:第一阶段:身份验证。如果身份验证成功,用户可连接到 第一阶段:身份验证。如果身份验证成功,用户可连接到SQL Server SQL Server实例。实例。第二阶段:授权(权限验证)。授权阶段又分为验证用户连 第二阶段:授权(权限验证)。授权阶段又分为验证用户连接到 接到SQL Server SQL Server实例的权限和访问服务器上数据库的权限。实例的权限和访问服务器上数据库的权限。为此,需授予每个数据库中映射到用户登录的账号访问权限。为此,需授予每个数据库中映射到用户登录的账号访问权限。权限验证阶段则控制用户在 权限验证阶
5、段则控制用户在SQL Server SQL Server数据库中所允许进行 数据库中所允许进行的活动。的活动。SQL Server 指定登录用户和角色数据库用户数据库角色Windows 2000组用户SQL Server登录账户SQLServer 验证信任联结SQL Server验证用户名和口令SQL ServerWindows 2000或图10-1 SQL Server 2000的安全架构10.1.1 SQL Server10.1.1 SQL Server的身份验证模式的身份验证模式 在 在SQL Server2000 SQL Server2000中,必须以合法的登录身份注册本地 中,必须以
6、合法的登录身份注册本地或远程服务器后,才能与服务器建立连接并获得对 或远程服务器后,才能与服务器建立连接并获得对SQL SQL Server Server的访问权。系统提供了 的访问权。系统提供了2 2种登录身份验证模式:种登录身份验证模式:1 1 Windows Windows身份验证模式(身份验证模式(Windows Windows身份验证)身份验证)Windows Windows身份验证模式使用户得以通过 身份验证模式使用户得以通过WindowsNT WindowsNT或 或Windows2000 Windows2000用户账号进行登录连接,并获得对 用户账号进行登录连接,并获得对SQL
7、 Server SQL Server的访问权限。的访问权限。2 2混合模式(混合模式(Windows Windows身份验证和 身份验证和SQL Server2000 SQL Server2000身份验 身份验证)证)混合模式使用户得以使用 混合模式使用户得以使用Windows Windows身份验证或 身份验证或SQL SQL Server 2000 Server 2000身份验证的用户账号进行登录连接。身份验证的用户账号进行登录连接。在 在Windows Windows身份验证模式或混合模式下,通过 身份验证模式或混合模式下,通过Windows Windows用户账号连接的用户可以使用信任
8、连接。用户账号连接的用户可以使用信任连接。10.1.2 10.1.2 身份验证模式的选择身份验证模式的选择选择身份验证模式,可按以下步骤操作:选择身份验证模式,可按以下步骤操作:在企业管理器中展开【在企业管理器中展开【SQL Server SQL Server组】,选择目前连接的 组】,选择目前连接的服务器。服务器。单击【菜单】中的【属性】命令,打开【单击【菜单】中的【属性】命令,打开【SQL Server SQL Server属性 属性】对话框,选择【安全性】标签,即可打开如图】对话框,选择【安全性】标签,即可打开如图10-2 10-2所示的 所示的对话框。对话框。可在【安全性】选项组中设置
9、身份验证模式。如图 可在【安全性】选项组中设置身份验证模式。如图10-2 10-2所 所示。示。图10-2 设置身份验证模式对话框10.2 10.2 安全账户管理安全账户管理10.2.1 10.2.1 创建安全账户 创建安全账户在 在SQL Server 2000 SQL Server 2000中,可以使用两种方法添加登录账号:中,可以使用两种方法添加登录账号:使用企业管理器添加登录账号;使用系统存储过程添加登录 使用企业管理器添加登录账号;使用系统存储过程添加登录账号。账号。1 1系统安装时建立的账号 系统安装时建立的账号(1 1)sa sa系统管理员(系统管理员(sa sa)是为向后兼容而
10、提供的特殊登录账号,拥)是为向后兼容而提供的特殊登录账号,拥有最高管理权限,可以执行服务器范围内的所有操作。默认 有最高管理权限,可以执行服务器范围内的所有操作。默认情况下,它指派给固定服务器角色 情况下,它指派给固定服务器角色sysadmin sysadmin,并不能进行更,并不能进行更改。虽然是内置了管理员登录账号,但不应例行公事地使用 改。虽然是内置了管理员登录账号,但不应例行公事地使用它。相反,应使其他的系统管理员账号都成为 它。相反,应使其他的系统管理员账号都成为sysadmin sysadmin固定 固定服务器角色的成员,并让他们使用自己的登录名登录。只有 服务器角色的成员,并让他
11、们使用自己的登录名登录。只有当没有其它方法登录到 当没有其它方法登录到SQL Server SQL Server实例(例如:当其它系统 实例(例如:当其它系统管理员不可用或忘记了密码)时才使用 管理员不可用或忘记了密码)时才使用sa sa。(2 2)Builtinadministrators Builtinadministrators本地管理员组,默认加入 本地管理员组,默认加入sysadmin sysadmin角色中,因此具有管理员 角色中,因此具有管理员权限。权限。2 2使用企业管理器添加登录账号 使用企业管理器添加登录账号具体操作步骤如下:具体操作步骤如下:在企业管理器中展开服务器组,然
12、后展开服务器。在企业管理器中展开服务器组,然后展开服务器。展开【安全性】,右击【登录】,然后单击【新建登录】命令,系统 展开【安全性】,右击【登录】,然后单击【新建登录】命令,系统打开如图 打开如图10-3 10-3所示【所示【SQL Server SQL Server登录属性 登录属性-新建登录】对话框。新建登录】对话框。图10-3【SQL Server登录属性-新建登录】对话框 在【身份验证】下,单击【在【身份验证】下,单击【Windows Windows身份验证】身份验证】,在【名称】框中,在【名称】框中,输入要被授权访问 输入要被授权访问Microsoft SQL ServerTM M
13、icrosoft SQL ServerTM的 的Microsoft Windows NT 4.0 Microsoft Windows NT 4.0或 或Windows2000 Windows2000账号(以 账号(以DOMAINUser DOMAINUser的形式);在【身份验证】下,的形式);在【身份验证】下,单击【单击【SQL Server SQL Server身份验证】,在【名称】框中,输入登录账号名称。身份验证】,在【名称】框中,输入登录账号名称。设置可选项。可在【数据库】中,单击用户在登录到 设置可选项。可在【数据库】中,单击用户在登录到SQL Server SQL Server实例
14、 实例后所连接的默认数据库。在【语言】中,单击显示给用户的信息所用的默 后所连接的默认数据库。在【语言】中,单击显示给用户的信息所用的默认语言。认语言。【例【例10-1 10-1】将】将dss_ibm390 x dss_ibm390 x中的本机用户 中的本机用户zhangsan zhangsan加入到 加入到SQL Server SQL Server实 实例中,并建立一个 例中,并建立一个SQL Server SQL Server登录账号 登录账号,账号名称为 账号名称为wang wang。在企业管理器中可以按以下步骤操作:在企业管理器中可以按以下步骤操作:在企业管理器中展开服务器组,然后展开
15、服务器 在企业管理器中展开服务器组,然后展开服务器 展开【安全性】,右击【登录】,然后单击【新建登录】命令,打开如 展开【安全性】,右击【登录】,然后单击【新建登录】命令,打开如图 图10-4 10-4所示 所示【SQL Server SQL Server登录属性 登录属性-新建登录】对话框。新建登录】对话框。在【名称】框中,输入 在【名称】框中,输入dss_ibm390 xzhangsan dss_ibm390 xzhangsan。在【身份验证】下,单击【在【身份验证】下,单击【Windows Windows身份验证】。身份验证】。填写完成之后,单击【确定】按钮。填写完成之后,单击【确定】按
16、钮。重复 重复、步。步。在【名称】框中,输入 在【名称】框中,输入wang wang。在【身份验证】下,单击【在【身份验证】下,单击【SQL Server SQL Server身份验证】身份验证】在【密码】框中,输入密码,也可以密码为空 在【密码】框中,输入密码,也可以密码为空图 图10-2-2 10-2-2登录帐户信息 登录帐户信息 填写完成之后,单击【确定】按钮,即可在企业管理器中看到如 填写完成之后,单击【确定】按钮,即可在企业管理器中看到如图 图10-5 10-5所示的登录账号信息。所示的登录账号信息。图10-4【SQL Server登录属性-新建登录】对话框 图10-5 登录账号信息
17、3 3使用系统存储过程添加登录账号 使用系统存储过程添加登录账号 在 在SQL Server 2000 SQL Server 2000中,也可用 中,也可用sp_grantlogin sp_grantlogin系统存储过程来创建一个 系统存储过程来创建一个Windows Windows登录 登录 账号。其语法为:账号。其语法为:Sp_grantlogin Windows Sp_grantlogin Windows账号或组 账号或组 其中:其中:Windows Windows 账号或组 账号或组 的格式为 的格式为 域名 域名 用户名 用户名。也可用 也可用sp_addlogin sp_addl
18、ogin命令来创建一个 命令来创建一个SQL Server SQL Server登录账号。其语法为:登录账号。其语法为:sp_addlogin loginame=login sp_addlogin loginame=login,passwd=password,passwd=password,defdb=database,defdb=database,deflanguage=language,deflanguage=language 其中:l loginame=login:登录的名称。login 的数据类型为 sysname,没有默认设置。l passwd=password:登录密码。passw
19、ord 的数据类型为 sysname,默认设置为 NULL。sp_addlogin 执行后,password 被加密并存储在系统表中。l defdb=database:登录的默认数据库(登录后登录所连接到的数据库)。database 的数据类型为 sysname,默认设置为 master。其中:l loginame=login:登录的名称。login 的数据类型为 sysname,没有默认设置。l passwd=password:登录密码。password 的数据类型为 sysname,默认设置为 NULL。sp_addlogin 执行后,password 被加密并存储在系统表中。l defdb=database:登录的默认数据库(登录后登录所连接到的数据库)。database 的数据类型为 sysname,默认设置为 master。l deflanguage=language:用户登录到 SQL Server 时系统指派的默认语言。language 的数据类型为 sysname,默认设置为 NULL。如果没有指定 language,那么 language 被设置为服务器当前的默认语言(由 sp_configure 配置变量 default language 定义)。更改服务器的默认语言不会更改现有登录的默认语言。language 保持与添加登录时所使用的默认语言相同。
限制150内