第8章SQLServer安全管理.ppt

上传人:本田雅阁 文档编号:2911449 上传时间:2019-06-04 格式:PPT 页数:76 大小:814.02KB
返回 下载 相关 举报
第8章SQLServer安全管理.ppt_第1页
第1页 / 共76页
第8章SQLServer安全管理.ppt_第2页
第2页 / 共76页
第8章SQLServer安全管理.ppt_第3页
第3页 / 共76页
第8章SQLServer安全管理.ppt_第4页
第4页 / 共76页
第8章SQLServer安全管理.ppt_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《第8章SQLServer安全管理.ppt》由会员分享,可在线阅读,更多相关《第8章SQLServer安全管理.ppt(76页珍藏版)》请在三一文库上搜索。

1、第8章 SQL Server安全管理,8.1 SQL Server 2000的安全. 8.2 管理服务器的安全性 8.3 管理数据库用户 8.4 管理角色 8.5 管理权限 8.6 本章总结,学习目标: 通过本章学习,你可以学会: SQL Server的安全性机制 管理和设计SQL Server登录信息,实现服务器级的安全控制 设计和实现数据库级的安全保护机制 设计和实现数据库对象级安全保护机制,8.1 SQL Server 2000的安全机制,合理有效的数据库技术安全机制可以既保证被授权用户能够方便地访问数据库中的数据又能够防止非法用户的入侵。SQL Server 2000提供了一套设计完善

2、、操作简单的安全管理机制。SQL Server 2000安全机制可以划分为4个等级。 客户机操作系统登录的安全性 SQL Server登录的安全性 数据库访问的安全性 数据库对象使用的安全性,每个安全等级就好像一道门,如果门没有上锁,或者用户拥有开门的钥匙,则用户可以通过这道门达到下一个安全等级,如果通过了所有的门,则用户就可以实现对数据库的访问了。这种关系可以用图8.1来表示。,8.2管理服务器的安全性,对于一个合法的数据库用户,首先必须在SQL Server 2000中为其设置相应的登录账户,否则他不能登录数据库服务器。有两类登录账户,一是SQL Server身份验证的登录账户(以下简称S

3、QL账户),二是Windows身份验证的登录账户(以下简称Windows账户)。SQL账户的登录名称与登录密码由SQL Server 2000系统负责验证,Windows账户的登录名称与登录密码则由Windows 操作系统负责验证。,8.2.1 使用企业管理器管理登录账户,实例8.1利用企业管理器创建一个SQL账户名为test,密码为xxxbjwk,默认数据库为学生库的账户。 步骤:,图8.2 创建登录账户,图8.3 创建登录账户,图8.4 分配数据库访问权限,这样使用企业管理器就可以创建一个登录账户。在建立SQL账户实现服务器连接时,用户必须拥有合法的账号和正确的密码。在SQL Server

4、系统中,登录密码并不是必须的。但是用户最好设置密码,没有密码的保护,SQL Server的服务器级安全保护就像没有上锁的大门,知道门的位置(账号)的用户都可以畅通无阻。,上面采用的是SQL账户的创建,如若采用Windows账户登录,则不同之处就是在图8.2中选择Windows身份验证,这时登录名称不能随便键入,它必须是Windows的用户。可以在“域”组合框的下拉菜单中选择域名,然后点击按钮,在弹出的对话框中(如图8.5所示)中选择Windows用户或组,单击“添加”按钮后再单击“确定”按钮,系统自动将该Windows用户或组添加到图8.2的“名称”文本框中如图8.6所示。其他操作与建立SQL

5、账户相同。,图8.5 选择Windows登录账户名称,图8.6 建立Windows登录账户,实例8.2对上例创建的test账户进行属性修改。,8.2.2 使用T-SQL语句管理登录账户,管理登录账户也可以使用T-SQL语句,主要是通过存储过程来加以管理,需要注意的是管理Windows账户与SQL账户所使用的系统存储过程不同。 1、管理SQL身份验证的登录账户 使用系统存储过程管理SQL身份验证的登录账户包括使用系统存储过程创建SQL账户,修改SQL账户的密码,修改SQL账户的默认数据库,修改SQL账户的默认语言,以及删除SQL账户。下面将分别给以介绍。,实例8.3创建一个SQL账户yn_sql

6、,密码为123,默认数据库为学生库。 输入如下SQL语句: SP_ADDLOGIN yn_sql,123,学生库 执行得到如下结果:,通过上例,我们可归纳出使用系统存储过程创建SQL账户的命令格式: sp_addlogin loginame= 新建登录账户的名称 ,passwd=密码 ,defdb=默认数据库 ,defianguage= 默认语言 命令说明: 密码可以默认设置为NULL。 全部按上述次序取值时,局部变量名称loginame、passwd、defdb、deflanguage可以省略。,实例8.4 将SQL账户yn_sql 中的密码由123更改为123456。 输入如下SQL语句:

7、 SP_PASSWORD 123,123456 ,yn_sql,通过上例,我们可归纳出使用系统存储过程修改SQL账户密码的命令格式: sp_password old= 旧的登录密码, new= 新的登录密码 ,loginame=需要更改密码的登录名 命令说明: 旧的登录密码,其默认值为NULL; 新的登录密码,无默认值;:需要更改密码的登录名必须已经存在。,实例8.5 将SQL账户yn_sql 中的默认语言更改为英语,默认的数据库更改为master。 输入如下SQL语句:,通过上例,我们可归纳出使用系统存储过程修改SQL账户默认语言和默认数据库的命令格式: (1)使用系统存储过程修改SQL账户

8、的默认语言 命令格式: sp_defaultlanguageloginnme= 登录名 ,deflanguage=language 命令说明:language是新的数据库默认语言。 (2)使用系统存储过程修改SQL账户的默认数据库 命令格式: sp_defaultdb loginnme= 登录名 ,defdb=database 命令说明:database是新的默认数据库的名称。 另外还可以使用系统存储过程删除SQL账户 命令格式:sp_droplogin loginnme= 登录名 如删除SQL账户yn_sql。可使用如下语句: sp_droplogin yn_sql,2、管理Windows身

9、份验证的登录账户 实例8.6为Windows XP系统06CC3021493C418域中的账户myuser授权登录数据库实例的权利。 输入如下SQL语句: sp_grantlogin 06CC3021493C418myuser,这个例子的实质就是使Windows XP上的06CC3021493C418域中的用户myuser成为SQL Server的登录账户,从而能够访问SQL Server数据库。注意,这里的用户名必须是已经存在的,在给出用户名时,必须指定用户或工作组所在的域,并使用定界符将域和用户名括起来。当然,也可以拒绝Windows用户登录,或删除Windows用户。下面给出具体的语法。

10、,(1) 向Windows账户授权的语法如下。 命令格式: sp_grantlogin loginame= 用户或用户组名 (2)拒绝一个Windows账户登录的语法如下。 命令格式: sp_denylogin loginame: 用户或用户组名, 例如:拒绝06CC3021493C418域中的用户myuser登录数据库实例,可使用如下语句实现:sp_denylogin 06CC3021493C418myuser (3)删除一个Windows账户的语法如下。 命令格式: sp_revokelogin loginame: 用户或用户组名 例如:删除06CC3021493C418域中的用户myus

11、er登录数据库实例的权限。可使用如下语句实现:sp_revokelogin 06CC3021493C418myuser,8.2.3 特殊的登录账户sa,SQL Server 2000在安装后自动建立了一个特殊的SQL账户sa,即System Administrator。 该账户默认为是所有数据库的dbo用户(数据库所有者),也就是说是任何用户数据库的主任,所以,sa具有最高权限,可以执行服务器范围内的任何操作,且不能被删除。刚安装完毕时,sa没有密码,为了安全起见,一定要为其加入密码。,8.3 管理数据库用户,在实现数据库的安全登录以后,检验用户权限的下一个安全等级就是数据库的访问权,数据库的

12、访问权是通过数据库的用户和登录账户之间的关系来实现。数据库的用户是数据库级的安全实体,就像登录账户是服务器级的安全实体一样。无论是Windows账户还是SQL账户,登录数据库服务器后的其他操作都是相同的。但首先必须获得对数据库的访问权。SQL Server 2000通过为登录账户指派数据库用户来使其获得对数据库的访问权限。,在一个数据库服务器上可能有多个用户创建的不同数据库,除系统管理员外任何普通登录者不可能有权访问所有的数据库,因此SQLServer2000使每个数据库都具有自行创建数据库用户的功能,以达到仅使指定登录账户能够访问本数据库之目的。大家可以观察到在企业管理器的树型结构中,对于用

13、户的管理是归类到每个数据库中的。,8.3.1 使用企业管理器管理数据库用户,对某一个特定数据库的用户管理工作是在该数据库中进行的。只有具有特殊权限的用户 (例如数据库所有者)进入到该数据库中才能进行数据库的用户管理。对用户的管理可以是创建,也可以删除。接下来通过实例进行讲解,实例8.7利用企业管理器在学生库中为yn_sql的登录账户创建一用户,名为yn_sql_user。,请大家注意,登录名必须在下拉列表中选择已经建立的账户,或者通过下拉列表中的新建命令创建一个登录账户,因为对某一个特定数据库的用户管理工作是在该数据库中进行的,而该数据库只能是具有登录账号的账户才能使用。,8.3.2 使用T-

14、SQL语句管理数据库用户,实例8.7 假设在数据库服务器中已经建立了两个登录账户06CC3021493C418myuser与sqluser。本例在学生库中为Windows账户myuser建立一个数据库用户myuser_01,为SQL账户sqluser建立一个数据库用户sqluser_02。,创建数据库用户的命令格式: sp_grantdbaccess loginnme= 登录名,name_in_db = 数据库用户名 命令说明: 当登录名为Windows账户时,须采用“域名登录名”格式;当其为SQL账户名时,采用“登录名”格式。 如若省略数据库用户名参数,则默认登录名与用户名相同。,实例8.8

15、 在学生库中删除用户myuser_01和sqluser_02。,删除数据库用户命令格式: sp_revokedbaccess 删除的用户名,8.3.3 特殊的数据库用户dbo和guest,SQLServer2000数据库中有2个特殊用户: dbo和guest。 1.dbo 在创建一个数据库时,SQLServer2000自动将创建该数据库的登录账户设置为该数据库的一个用户,并起名为dbo。dbo是数据库的拥有者,不能从数据库中删除,dbo对本数据库拥有所有操作权限,并可以将这些权限全部或部分授予其他数据库用户。另外,属于固定服务器角色sysadmin的成员也映射为所有数据库的dbo。,2.gue

16、st 当一个登录者登录数据库服务器时,如果该服务器上的所有数据库都没有为其建立用户账户,则该登录者只能访问那些具有guest用户的数据库。系统数据库Master与tempdb中的guest用户不能被删除,而其他数据库中的guest用户可以被添加或删除。,8.4 管理角色,SQL Server在服务器级提供了固定服务器角色,在数据库级提供了数据库级角色。用户可以修改固定数据库级角色的权限,也可以自己创建新的数据库角色,再分配权限给新建的角色。,8.4.1 固定服务器角色,SQL Server 2000的服务器角色是在SQL Server安装时就创建好的,用于分配服务器级管理权限的实体。对数据库服

17、务器操作的权限不能直接赋给其他登录账户,只能使某些登录账户成为固定服务器角色的成员,才能使他们具有这些权限。,SQLServer2000具有如下固定服务器角色: (1)sysadmin,有权在SQLServer中进行任何活动。 (2)serveradmin,有权设置服务器一级的配置选项,关闭服务器。 (3)setupadmin,有权管理链接服务器和启动过程。 (4)securityadmin,有权管理登录和CREATEDATABASE权限,还可以读取错误日志和更改密码。 (5)processadmin,有权管理在SQLServer中运行的进程。 (6)dbcreator,有权创建、更改和除去数

18、据库。 (7)diskadmin,有权管理磁盘文件。 (8)bulkadmin,有权执行BULKINSERT语句。,1、使用企业管理器管理服务器角色 实例8.9将sqluser账户赋予sysadmin服务器角色,使其能够有权在SQL Server中进行任何活动。,在SQL Server的固定服务器中sysadmin拥有最高的权限,在给sqluser账户赋予了sysadmin服务器角色后,该账户就可以执行服务器范围内的一切操作。,2、使用T-SQL语句管理服务器角色 实例8.10使用系统存储过程将固定服务器角色serveradmin分配给Windows账户myuser。,执行上述操作后,06CC

19、3021493C418myuser就拥有了角色serveradmin所拥有的所有权限。对账户进行固定服务器角色分配的命令格式: sp_addsrvrolemember 账户名,固定服务器名 命令说明:如对Windows账户进行分配,须把域名加上。 如若收回分配给某登录账户的指定固定服务器角色,可用如下语句: Sp_dropsrvrolemember 06CC3021493C418myuser, serveradmin 这样就回收了分配给登录账户06CC3021493C418myuser的固定服务器角色serveradmin。,SQL Server在数据库级设置了固定数据库角色来提供最基本的数据

20、库权限的综合管理。SQLServer2000中的数据库角色用于对单个数据库的操作。每个数据库都有一系列固定数据库角色,尽管在不同的数据库内他们是同名的,但各自的作用范围都仅限于本数据库。,8.4.2 固定的数据库角色,SQLServer2000具有如下固定数据库角色: (1)db_owner,在数据库中具有全部权限。 (2)db_accessadmin,有权添加或删除数据库用户。 (3)db_securityadmin,有权管理全部权限、对象所有权、角色和角色成员资格 (4)db_ddladmin,有权发出ALLDDL,但不能发出GRANT、REVOKE或DENY语句。 (5)db_backu

21、poperator,有权发出DBCC、CHECKPOINT和BACKUP语句。 (6)db_datareader,有权查询数据库内任何用户表中的所有数据。 (7)db_datawriter,有权更改数据库内任何用户表中的所有数据。 (8)db_denydatareader,不能查询数据库内任何用户表中的任何数据。 (9)db_denydatawriter,不能更改数据库内任何用户表中的任何数据。,1、使用企业管理器管理数据库角色 实例8.11将myuser_01用户赋予db_owner数据库角色,使其具有数据库的全部权限。,实例8.12使用系统存储过程将固定数据库角色db_owner分配给sq

22、luser_02用户。,执行上述操作后,sqluser_02用户就拥有了角色db_owner所拥有的所有权限。对用户进行固定数据库角色分配的命令格式: sp_addrolemember 固定数据库角色名,用户名 如若收回分配给该用户的指定固定数据库角色,可用如下语句: sp_droprolemember db_owner, sqluser_02 这样就回收了分配给用户sqluser_02的固定数据库角色db_owner。 sp_addrolemember和sp_droprolemember系统存储过程只能对本数据库的用户进行控制。所以上述两个例子执行成功的前提是已经在该数据库中建立了sqlus

23、er_02用户。,8.4.3特殊的数据库角色PUBLIC,除了前面提到的数据库角色外,在SQL Server 2000的每个数据库中(包括master、msdb、tempdb、model和所有用户数据库)都有一个特殊的数据库角色pubic,所有的数据库用户都属于public角色。public角色的特点是: 它能够捕获数据库中用户的所有默认权限。 不能将public角色分配给任何用户、工作组,因为所有的用户都默认为属于该角色。 public角色存在于每一个数据库中,包括系统数据库和用户建立的数据库。 public无法删除,每个数据库用户都自动属于该角色的成员。,8.4.4用户定义的数据库角色,S

24、QL Server允许创建新的数据库角色,创建新的数据库角色有两种方法,一是使用企业管理器,二是使用T-SQL语句。 1、使用企业管理器创建或删除的数据库角色。 实例8.13利用企业管理器创建新的数据库角色名为newrole,同时将sqluser_02用户添加到该角色中。,数据库角色类型有两种,一种是标准角色,就是将数据库用户(或其他数据库角色)添加为数据库角色成员,当将用户自己建立的数据库角色添加到列表框时,新建的数据库角色就继承了原有的数据库角色的所有权限;另一种是应用程序角色,默认情况下,应用程序角色是非活动的,需要用密码激活,只有在应用程序中激活并连入数据库,应用程序角色才能生效,连接

25、一旦断开,应用程序角色立即失去作用。,实例8.14为数据库学生库建立一个属于dbo的角色teacher_math,创建用户定义的数据库角色需要调用系统存储过程sp_addrole,语法如下。 命令格式: sp_addrole 创建的角色名称 默认值为数据库的所有者dbo 如若删除指定的数据库角色,可利用系统存储过程sp_droprole即可,命令格式如下: sp_droprole 创建的角色名称,例如,将上例创建的newrole角色删除: USE 学生库 GO sp_droprole techer_math GO 注意只能在数据库级建立角色,不能在服务器级建立角色。当完成角色的建立操作后,该角

26、色不拥有任何权限,如果要对权限进行修改可以使用下节介绍的权限。,8.5 管理权限,在数据库内部,SQL Server提供的权限作为访问权设置的最后一道关卡。一个登录者若要对某个数据库进行修改或访问,必须具有相应的权限,这种权限涉及服务器级与数据库级的操作。权限既可以直接获得,也可以通过成为角色成员而继承角色的权限。管理权限包括授予、拒绝和废除权限。,8.5.1 权限的种类,权限分为三种: 对象权限 语句权限 隐含权限,1.对象权限 对象权限指对已存在的数据库对象的操作权限,包括对数据库对象的SELECT、INSERT、UPDATE、DELETE和 EXECUTE权限。 其中: SELECT、I

27、NSERT、UPDATE、DELETE可以用于对表、视图的操作。 SELECT、UPDATE可用于对表或视图中的列进行操作。 INSERT和DELETE用于对表或视图的行进行操作。 EXECUTE用于执行存储过程和函数。 SELECT用于对用户定义的函数进行操作。,2.语句权限 语句权限用于创建数据库或数据库对象所涉及的活动。例如,当向用户授予CREATE TABLE语句的权限后,用户将能够在数据库中创建表。语句权限有: BACKUP DATABASE 用于备份数据库。 BACKUP LOG 用于备份数据库日志。 CREATE DATABASE 用于创建数据库。 CREATE DEFAULT

28、用于创建默认对象。 CREATE FUNCTION 用于创建函数。 CREATE PROCEDURE 用于创建存储过程。 CREATE RULE 用于创建规则。 CREATE TABLE 用于创建表。 CREATE VIEW 用于创建视图。,3.隐含权限 隐含权限控制那些只能由固定角色的成员或数据库对象所有者执行的活动。例如,sysadmin固定服务器角色成员自动继承在SQLServer中进行安装、操作和查看的全部权限。数据库对象所有者具有的隐含权限系指它可以对所拥有的对象执行一切操作。例如,拥有表的用户可以修改、添加或删除数据,更改表定义,或控制其他用户操作表的权限。,8.5.3 使用企业管

29、理器管理权限,在企业管理器中管理语句权限与对象权限的方法不同,语句权限是在数据库一级进行,对象权限是在数据库对象一级进行。 权限管理指对于用户或角色的某些操作赋予允许权限、拒绝权限、以及废除权限。 (1)允许权限(GRANT),表示用户或角色能够执行某项操作。 (2)拒绝权限(DENY),表示用户或角色不能执行某项操作,也称禁止权限。 (3)废除权限(REVOKE),表示废除以前用户或角色所具有的允许权限或拒绝权限。,1、使用企业管理器管理对象权限 实例8.15 在学生库中,对表学生成绩的访问权限进行设置,将该数据库对象的所有权限都赋予teacher_math角色,将查找的权限赋予sqluse

30、r_02用户。,权限只能授予本数据库的用户,或者获准访问本数据库的别的数据库的用户。如果将权限授予了public角色,则所有数据库里的所有用户都将默认获得了该项权限。 在进行权限设置时,“”表示允许该权限,“”表示禁止该权限,“口”表示废除该权限。,2、使用企业管理器管理语句权限 实例8.16 在学生库中, 为teacher_math角色赋予创建表和创建视图的权限,为sqluser_02用户赋予创建存储过程的权限。,8.5.2 使用T-SQL语句管理权限,1.使用T-SQL语句进行对象权限的管理 实例8.17 首先对数据库角色public授予在表学生成绩中进行查询操作的权限,这样学生库的所有数

31、据库用户都具有了查询表学生成绩的权限。然后,将对表学生成绩的增、删、改权限授予数据库用户test和sqluser_02。于是这两个用户就具有了对表学生成绩的所有权限(查询、增、删、改)。,命令格式: GRANT | DENY | REVOKE ALL|permissionn 列 | ON 表 |ON 存储过程名 |ON 扩展存储过程名 |ON 用户定义函数名 TO 帐户|角色|用户|组 命令说明: (1)GRANT、DENY、REVOKE分别表示允许、禁止或废除对象权限。 (2)ALL表示允许、禁止或废除所有适用的权限。只有sysadmin、db_owner成员及数据库拥有者有权使用ALL。,

32、(3)permission表示允许、禁止或废除的对象权限。例如SELECT、INSERT等。,如将上例中的test用户禁止获得查询,插入,删除,修改的操作。 可使用如下SQL语句来实现: USE 学生库 GO DENY SELECT, INSERT,UPDATE,DELETE ON 学生成绩 TO test GO 这样就禁止了test用户的的所有权限。 注意:如果使用DENY命令拒绝某用户获得某项权限,即使该用户后来又加入了具有该项权限的某工作组或角色,则该用户将依然无法使用该项权限。例如test用户被拒绝(禁止)了SELECT, INSERT,UPDATE,DELETE权限,那么即使将来te

33、st用户成为角色techer_math的成员,而该角色具有所有的对象权限,那么test用户也无法使用这些权限。,2.使用T-SQL语句进行语句权限的管理 实例8.18 给数据库用户sqluser_02和赋予在数据库学生库中创建表和创建视图的权限。,命令格式: GRANT|DENYIREVOKEALL|statement,.n TO 登录账户、数据库用户或角色 命令说明: (1)GRANT、DENY、REVOKE分别表示允许、拒绝和废除语句权限的操作。 (2)ALL表示针对所有语句权限的设置,只有sysadmin成员有权使用ALL。 (3)statement表示被允许、拒绝或废除语句权限的语句,

34、包括9个语句: CREATE DATABASE、CREATE DEFAULT、CREATE FUNCTION、CREATE PROCEDURE、CREATE RULE、CREATE TABLE、CREATEVIEW、BACKUP DATABASE、BACKUP、LOG。,行语句权限管理时应该注意如下几点: (1)当在一个数据库中向Windows登录账户进行语句权限的赋权时,如果数据库中尚未为该账户设置数据库用户,则系统自动在数据库中为其建立一个与登录账户同名的数据库用户。如果数据库中已经为该账户建立了数据库用户,则授权时必须使用数据库用户名。 (2)当在一个数据库中向SQL登录账户进行语句权限

35、的赋权时,必须使用该数据库中与登录账户对应的数据库用户名。 (3)进行CREATE DATABASE的授权必须在master数据库中进行。因此在master中必须有对应的用户、角色名称。,如对于上例,若废除sqluser_02用户的创建表和视图的权限,可用如下SQL语句实现: USE 学生库 GO RREVOKE CREATE TABLE,CREATE VIEW FROM sqluser_02 GO 这样就从用户sqluser_02中废除了创建表和视图的权限。 注意:执行了上面的语句后,用户sqluser_02就被废除了创建表和视图的权限。但是如果用户sqluser_02属于某个具有创建表和创

36、建视图的角色(如techer_math)的成员时,则该用户仍具有创建表和视图的权限,因为它继承了角色techer_math的权限,这是和拒绝(禁止)权限不同的地方。,8.6本章总结,本章详细介绍了SQL Server 2000的安全管理体系,一共有四道关卡,每一道关卡都有其自己的要求。 (1)一个数据库用户必须有权登录操作系统,即该用户在Windows操作系统中具有登录账户。在这个前提条件下,才有可能进入SQLServer2000系统。 (2)一旦登录了操作系统,登录者还必须得到数据库系统的通行证数据库服务器的登录账户,才具有数据库服务器的连接权或登录权。SQLServer2000只有在验证了

37、指定的登录账户有效后,才完成连接。这种对登录账户的验证称为身份验证。对用户而言,登录SQL Server2000需要使用以下两类身份验证之一。,Windows身份验证:此种验证方式仅用于Windows2000ServerNT操作系统。在这种方式下,用户只要通过Windows 2000 ServerNT操作系统的登录验证,就可以连接到SQL Server2000数据库实例。 SQL Server身份验证:在此种验证方式下,即使用户已经登录操作系统,也必须输入有效的SQL Server专用登录名与密码方可连入SQLServer2000数据库实例。 (3)当一个登录者登录数据库服务器后,并不等于对其

38、中的数据库具有访问权限,还必须由数据库所有者或管理员授权,使该登录者成为某一个数据库的用户。 (4) 可以登录者进行权限和角色的分配,从而进行良好的管理。 (5)采用“登录”与“用户”分开的目的在于区分不同登录者对数据库服务器中各个数据库的访问权。因为一个SQL Server服务器上通常具有多个不同用户创建的数据库,所以即使一个登录者已经登录到数据库服务器,也不应有权访问所有的数据库。例如,若要使登录账户user1仅具有对数据库pubs的访问权而无权访问其他数据库,则需在数据库pubs中设置与之对应的用户账户,而不应当在pubs以外的其他数据库中设置用户账户。,8.7思考与实训练习,8.7思考

39、与实训练习 1.SQL Server的安全机制由哪几部分组成?它们之间的关系是什么? 2.登录SQL Server服务器有几种方式? 3.什么叫角色?数据库角色包含哪些内容? 4.权限管理中对用户和角色进行的操作可以赋予哪些权限? 5.拒绝权限和废除权限有哪些区别? 6.数据库角色Public有哪些特点?是否可以被删除? 7.特殊的登录帐户sa与普通的登录帐户有什么区别? 8.数据库用户dbo和guest是否可以被删除? 9.角色与权限之间有什么联系? 10.数据库角色是否可以成为其他角色的成员?,8.7.2实训,1、实训目的 (1)掌握SQL Server 2000中有关登录账户、用户角色和

40、权限的管理。 (2)掌握使用企业管理器和T-SQL语句两种方法进行SQL Server 2000安全管理的方法。 2、实训环境 SQL Server 2000的企业管理器和查询分析器。 3、实训内容 (1)使用企业管理器创建账户,用户并为其分配角色。 启动企业管理器, 创建Windows账户,名为自己的姓名缩写授权登录数据库实例。 赋予sysadmin固定服务器角色。 只允许访问学生库。 在学生库中为Windows账户建立一个数据库用户名为“账户名+user”。 为该用户分配db_owner数据库角色。,(3)在企业管理器中执行以下操作,观察所创建的数据库对象的拥有者究竟是谁。 创建登录账户m

41、yuser,并赋予sysadmin固定服务器角色。 将myuser加入pubs数据库的用户。 以myuser登录SQL Server。 在pubs和Northwind数据库中创建表testtable,观察表的拥有者。 去掉myuser的固定服务器角色,将myuser加入pubs数据库的db_owner固定数据库角色。 再观察testtable表的拥有者。,(4)在企业管理器中执行如下操作,观察赋予权限后的执行情况。 在服务器上创建登录账户Tom,不赋予该账户任何固定服务器权限。 将Tom用户加入到学生库的用户中。 利用sa账户登录授予Tom账户创建表和视图的权限。 利用Tom账户登录,在学生库和pubs数据库中分别执行表和视图创建,看能否创建成功。 将在pubs数据库中创建表和视图的权限授予guest账户,再重复第步。 4.实训要求 (1)将实训3的内容在SQL Server 2000环境中调试成功,并将编写的程序调试、运行正确成功后,存入磁盘中。 (2)每次实训后,总结一下实训的重点内容和应注意的问题,并写成实训报告的形式上交。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1