第0章SQLServer安全管理课件

上传人:公**** 文档编号:568752126 上传时间:2024-07-26 格式:PPT 页数:90 大小:456KB
返回 下载 相关 举报
第0章SQLServer安全管理课件_第1页
第1页 / 共90页
第0章SQLServer安全管理课件_第2页
第2页 / 共90页
第0章SQLServer安全管理课件_第3页
第3页 / 共90页
第0章SQLServer安全管理课件_第4页
第4页 / 共90页
第0章SQLServer安全管理课件_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《第0章SQLServer安全管理课件》由会员分享,可在线阅读,更多相关《第0章SQLServer安全管理课件(90页珍藏版)》请在金锄头文库上搜索。

1、第第10章章 SQL Server安全管理安全管理 安全管理概述安全管理概述10.1登录登录10.2数据库用户数据库用户10.3角色角色10.4权限管理权限管理10.51 对于网络环境下的多用户数据库而言,安全问题对于网络环境下的多用户数据库而言,安全问题是至关重要的。必须对不同的用户赋予不同的访问是至关重要的。必须对不同的用户赋予不同的访问权限,才能保证数据库中的数据不被泄露或破坏。权限,才能保证数据库中的数据不被泄露或破坏。本章将介绍本章将介绍SQL Server 2000实现安全管理的方法。实现安全管理的方法。2本章要点本章要点n安全管理概述安全管理概述 n登录登录 n数据库用户数据库用

2、户 n角色角色 n权限管理权限管理 310.1 安全管理概述安全管理概述 SQL Server 2000的安全管理模型中包括的安全管理模型中包括SQL Server登录、数据库用户、权限和角色登录、数据库用户、权限和角色4个主要方个主要方面,具体如下。面,具体如下。nSQL Server登录:要想连接到登录:要想连接到SQL Server服务器服务器实例,必须拥有相应的登录账户和密码。实例,必须拥有相应的登录账户和密码。SQL Server的身份认证系统验证用户是否拥有有效的的身份认证系统验证用户是否拥有有效的登录账户和密码,从而决定是否允许该用户连接登录账户和密码,从而决定是否允许该用户连接

3、到指定的到指定的SQL Server服务器实例。服务器实例。410.1 安全管理概述安全管理概述n数据库用户:通过身份认证后,用户可以连接到数据库用户:通过身份认证后,用户可以连接到SQL Server服务器实例。但是,这并不意味着该服务器实例。但是,这并不意味着该用户可以访问到指定服务器上的所有数据库。在用户可以访问到指定服务器上的所有数据库。在每个每个SQL Server数据库中,都存在一组数据库中,都存在一组SQL Server用户账户。登录账户要访问指定数据库,用户账户。登录账户要访问指定数据库,就要将自身映射到数据库的一个用户账户上,从就要将自身映射到数据库的一个用户账户上,从而获得

4、访问数据库的权限。一个登录账户可以对而获得访问数据库的权限。一个登录账户可以对应多个用户账户。应多个用户账户。510.1 安全管理概述安全管理概述n权限:权限规定了用户在指定数据库中所能进行权限:权限规定了用户在指定数据库中所能进行的操作。的操作。n角色:类似于角色:类似于Windows的用户组,角色可以对用的用户组,角色可以对用户进行分组管理。可以对角色赋予数据库访问权户进行分组管理。可以对角色赋予数据库访问权限,此权限将应用于角色中的每一个用户。限,此权限将应用于角色中的每一个用户。610.2 登录登录n登录指用户连接到指定登录指用户连接到指定SQL Server数据库实例的数据库实例的过

5、程。在此期间,系统要对该用户进行身份验证。过程。在此期间,系统要对该用户进行身份验证。n只有拥有正确的登录账户和密码,才能连接到指只有拥有正确的登录账户和密码,才能连接到指定的数据库实例。定的数据库实例。710.2.1 身份验证模式身份验证模式 登录到登录到SQL Server实例必须经过两个过程。首实例必须经过两个过程。首先要从系统中获得此权限,即得到授权;然后就是先要从系统中获得此权限,即得到授权;然后就是要通过系统的身份验证。要通过系统的身份验证。SQL Server提供以下两种提供以下两种身份验证模式。身份验证模式。nWindows 身份验证模式身份验证模式 n混合模式(混合模式(Wi

6、ndows身份验证和身份验证和SQL Server身身份验证)份验证) 8 1Windows身份验证模式身份验证模式nSQL Server数据库系统通常运行在数据库系统通常运行在Windows NT服务器平服务器平台上,而台上,而NT作为网络操作系统,本身就具备管理登录、作为网络操作系统,本身就具备管理登录、验证用户合法性的能力,验证用户合法性的能力,Windows身份验证模式正是利身份验证模式正是利用了这一用户安全性和账户管理的机制,允许用了这一用户安全性和账户管理的机制,允许SQL Server也可以使用也可以使用Windows的用户名和密码。在这种模式的用户名和密码。在这种模式下,用户只

7、需要通过下,用户只需要通过Windows的身份验证,就可以连接的身份验证,就可以连接到到SQL Server,而而SQL Server本身也就不需要管理一套本身也就不需要管理一套登录数据。登录数据。n当用户通过当用户通过Windows NT 4.0、Windows 2000或或Windows 2003用户账户进行连接时,用户账户进行连接时,SQL Server通过回叫通过回叫Windows系统以获得信息,重新验证账户名和密码。系统以获得信息,重新验证账户名和密码。92混合模式混合模式nSQL Server可以设置其自己的可以设置其自己的SQL Server登录账登录账户。用户登录时,户。用户登

8、录时,SQL Server将对用户的账户进将对用户的账户进行验证。如果行验证。如果SQL Server未设置该登录账户,或未设置该登录账户,或该账户的用户名、密码不正确,则身份验证将失该账户的用户名、密码不正确,则身份验证将失败,而且用户将收到错误信息。败,而且用户将收到错误信息。n混合模式允许用户使用混合模式允许用户使用Windows NT安全性或安全性或SQL Server安全性连接到安全性连接到SQL Server,这就意味这就意味着用户可以使用他的着用户可以使用他的Windows账户,或使用他的账户,或使用他的SQL Server账户登录到账户登录到SQL Server系统。系统。10

9、身份验证模式的选择身份验证模式的选择n对于对于Windows NT的用户,既可以使用的用户,既可以使用Windows身份验证模式,也可以使用身份验证模式,也可以使用SQL Server的身份验的身份验证模式。而对于证模式。而对于Windows 9.x的用户只能使用的用户只能使用SQL Server的身份验证模式。的身份验证模式。n应用程序开发人员和数据库用户也许更喜欢应用程序开发人员和数据库用户也许更喜欢“SQL Server身份验证身份验证”模式,因为他们可以通模式,因为他们可以通过对登录账户和密码的管理实现权限控制。过对登录账户和密码的管理实现权限控制。11SQL Server 2000的

10、身份验证过程的身份验证过程Windows身份验证模式身份验证模式 混合模式混合模式 用户连接请求用户连接请求 身份验证模式?身份验证模式? 使用使用SQL Server账户连接吗?账户连接吗? 是有效账户吗?是有效账户吗? SQL ServerSQL Server拒绝连接拒绝连接 有效的有效的NTNT帐户吗帐户吗 SQL Server接受用户连接接受用户连接 是是 是是 是是 否否 否否 否否 12设置设置SQL Server的身份认证模式的身份认证模式1310.2.2 新建登录账户新建登录账户nSQL Server有以下两个默认的登录账户:有以下两个默认的登录账户:sa:即系统管理员(即系统

11、管理员(system administrator)账户,该账户在账户,该账户在SQL Server系统和所有数据系统和所有数据库中拥有所有的权限。库中拥有所有的权限。BUILTINAdministrators:该账户为该账户为Windows NT系统管理员账户,具有与系统管理员账户,具有与sa有相有相同的权限。同的权限。可以使用以下两种方式新建登录帐户:可以使用以下两种方式新建登录帐户:在企业管理器中创建登录账户在企业管理器中创建登录账户 使用命令创建登录账户使用命令创建登录账户 141在企业管理器中创建登录账户在企业管理器中创建登录账户n展开指定服务器实例下的展开指定服务器实例下的“安全性安

12、全性”文件夹,文件夹,用鼠标右击用鼠标右击“登录登录”项,在弹出菜单中选择项,在弹出菜单中选择“新建登录新建登录”命令,打开饼设置命令,打开饼设置“新建登录新建登录”对对话框:话框:152使用命令创建登录账户使用命令创建登录账户使用系统存储过程创建使用系统存储过程创建Windows身份验证模式身份验证模式登录账户;登录账户;使用系统存储过程创建使用系统存储过程创建SQL Server身份验证模身份验证模式的登录账户式的登录账户16使用系统存储过程创建使用系统存储过程创建使用系统存储过程创建使用系统存储过程创建WindowsWindows身份验证模式登录账户身份验证模式登录账户身份验证模式登录账

13、户身份验证模式登录账户n使用使用sp_grantlogin存储过程可以创建新的存储过程可以创建新的Windows身份验证模式登录账户,语法如下:身份验证模式登录账户,语法如下: sp_grantlogin 登录名称登录名称登录名称指要添加的登录名称指要添加的Windows用户或组的名用户或组的名称。称。Windows组和用户必须用组和用户必须用Windows域名域名限定,格式为限定,格式为“域名域名用户名用户名”,例如,例如“LondonJoeb”。只有只有sysadmin或或securityadmin固定服务器角固定服务器角色的成员可以执行色的成员可以执行sp_grantlogin。17例例

14、10-1n使用使用sp_grantlogin存储过程将用户存储过程将用户LEEpublic映射到映射到SQL Server登录账户。登录账户。 sp_grantlogin LEEpublicn执行结果为:执行结果为: 已向已向 LEEpublic 授予登录访问权。授予登录访问权。18n使用使用sp_addlogin存储过程可以创建新的登录账存储过程可以创建新的登录账户,语法如下:户,语法如下: sp_addlogin 登录名称登录名称, 登录密码登录密码 , 默认数据库默认数据库, 默认语言默认语言nSQL Server 登录名称和密码不能含有反斜线登录名称和密码不能含有反斜线();不能是保留

15、的登录名称,例如);不能是保留的登录名称,例如sa或或public,或者已经存在的登录名称;不能为或者已经存在的登录名称;不能为NULL;不能为空字符串不能为空字符串()。使用系统存储过程创建使用系统存储过程创建使用系统存储过程创建使用系统存储过程创建SQL ServerSQL Server身份验证模式的登录账户身份验证模式的登录账户身份验证模式的登录账户身份验证模式的登录账户19n使用使用sp_addlogin存储过程创建存储过程创建SQL Server登录登录账户账户lee,密码为密码为111111,默认数据库为,默认数据库为“学生管学生管理理”。 sp_addlogin lee, 111

16、111, 学生管理学生管理n执行结果为:执行结果为: 已创建新登录。已创建新登录。例例10-220n使用企业管理器修改账户使用企业管理器修改账户 n使用企业管理器删除账户使用企业管理器删除账户 n使用存储过程修改和删除账户使用存储过程修改和删除账户10.2.3 修改和删除登录账户修改和删除登录账户21n展开指定服务器实例下的展开指定服务器实例下的“安全性安全性”文件夹,文件夹,用鼠标单击用鼠标单击“登录登录”项,可以在右侧窗格中查项,可以在右侧窗格中查看到已经存在的看到已经存在的SQL Server登录账户。用鼠标登录账户。用鼠标右键单击登录账户名,在弹出的快捷菜单中选右键单击登录账户名,在弹

17、出的快捷菜单中选择择“属性属性”命令,打开命令,打开“登录属性登录属性”对话框,对话框,在该对话框中可以对账户信息进行修改。在该对话框中可以对账户信息进行修改。1使用企业管理器修改账户使用企业管理器修改账户22n修改修改Windows身份验证模式账户身份验证模式账户1使用企业管理器修改账户使用企业管理器修改账户23n修改修改SQL Server身份验证模式账户身份验证模式账户1使用企业管理器修改账户使用企业管理器修改账户24n在企业管理器中,用鼠标右键单击在企业管理器中,用鼠标右键单击SQL Server账户,在弹出的快捷菜单中选择账户,在弹出的快捷菜单中选择“删除删除”命令,命令,在弹出的确

18、认对话框中单击在弹出的确认对话框中单击“是是”按钮,可以按钮,可以删除该账户。删除该账户。2使用企业管理器删除账户使用企业管理器删除账户25nsp_denylogin存储过程存储过程 nsp_revokelogin存储过程存储过程 nsp_password存储过程存储过程 nsp_droplogin存储过程存储过程 3使用系统存储过程修改和删除账户使用系统存储过程修改和删除账户26n用于阻止用于阻止Windows用户或用户组连接到用户或用户组连接到SQL Server实例,基本语法:实例,基本语法: sp_denylogin 用户或用户组名用户或用户组名nsp_denylogin只能和只能和W

19、indows账户一起使用,账户一起使用,“用户或用户组名用户或用户组名”格式为格式为“域名域名用户名用户名”。sp_denylogin无法用于通过无法用于通过sp_addlogin添加的添加的SQL Server登录。登录。nsp_denylogin和和sp_grantlogin是对应的两个存储是对应的两个存储过程,它们可以互相反转对方的效果,允许和过程,它们可以互相反转对方的效果,允许和拒绝用户访问拒绝用户访问SQL Server。sp_denylogin存储过程存储过程27n使用使用sp_denylogin存储过程拒绝用户存储过程拒绝用户LEEpublic访问访问SQL Server实例。

20、实例。 sp_denylogin LEEpublicn执行结果为:执行结果为: 已拒绝对已拒绝对 LEEpublic 的登录访问权。的登录访问权。例例10-328n用于删除用于删除SQL Server中使用中使用sp_denylogin或或sp_grantlogin创建的创建的Windows身份认证模式登身份认证模式登录账户,基本语法如下:录账户,基本语法如下: sp_revokelogin 用户或用户组名用户或用户组名【例【例10-4】使用】使用sp_revokelogin存储过程删除用户存储过程删除用户LEEpublic对应的对应的SQL Server登录账户。登录账户。 sp_revok

21、elogin LEEpublic执行结果为:执行结果为: 已废除已废除 LEEpublic 的登录访问权。的登录访问权。 从登录列表中可以看到,从登录列表中可以看到,LEEpublic已经被删除。已经被删除。sp_revokelogin存储过程存储过程29n用于修改用于修改SQL Server登录的密码,基本语法如登录的密码,基本语法如下:下: sp_password 旧密码旧密码, 新密码新密码, 登录账户名登录账户名【例【例10-5】使用】使用sp_password存储过程将登录账户存储过程将登录账户lee的密码修改为的密码修改为222222。 sp_password 111111, 22

22、2222, lee执行结果为:执行结果为: 密码已更改。密码已更改。sp_password存储过程存储过程30n用于删除用于删除SQL Server登录账户,以阻止使用该登录账户,以阻止使用该登录账户访问登录账户访问SQL Server,基本语法如下:基本语法如下: sp_droplogin 登录名称登录名称【例【例10-6】使用】使用sp_droplogin存储过程删除登录账存储过程删除登录账户户lee。 sp_droplogin lee 执行结果为:执行结果为: 登录已除去。登录已除去。sp_droplogin存储过程存储过程31本节介绍:本节介绍:n数据库用户概述数据库用户概述 n新建数

23、据库用户新建数据库用户 n修改和删除数据库用户修改和删除数据库用户 10.3 数据库用户数据库用户 拥有登录账户的用户才能通过拥有登录账户的用户才能通过SQL Server身份身份验证,从而获得对验证,从而获得对SQL Server实例的访问权限。实例的访问权限。但通过但通过SQL Server的身份验证并不代表用户就能的身份验证并不代表用户就能够访问够访问SQL Server中的数据,要访问某个具体的中的数据,要访问某个具体的数据库,还必须使登录账户成为某数据库的用户。数据库,还必须使登录账户成为某数据库的用户。32两个特殊的数据库用户:两个特殊的数据库用户:nDbo:数据库所有者,是具有在

24、数据库中执行所数据库所有者,是具有在数据库中执行所有活动的权限的用户,它与登录账户有活动的权限的用户,它与登录账户sa相对应。相对应。nGuest:允许没有用户账户的登录访问数据库。允许没有用户账户的登录访问数据库。当满足下列所有条件时,登录采用当满足下列所有条件时,登录采用guest用户的用户的标识。标识。登录有访问登录有访问SQL Server实例的权限,但没有实例的权限,但没有通过自己的用户账户访问数据库的权限。通过自己的用户账户访问数据库的权限。数据库中含有数据库中含有guest用户账户。用户账户。10.3.1 数据库用户概述数据库用户概述33n 可以将权限应用到可以将权限应用到gue

25、st用户,就如同它是任何其他用户用户,就如同它是任何其他用户账户一样。可以在除账户一样。可以在除master和和tempdb外(在这两个数据外(在这两个数据库中库中guest用户必须始终存在)的所有数据库中添加或删用户必须始终存在)的所有数据库中添加或删除除guest用户。默认情况下,新建的数据库中没有用户。默认情况下,新建的数据库中没有guest用用户账户。户账户。n创建数据库对象的用户称为数据库对象所有者。创建数创建数据库对象的用户称为数据库对象所有者。创建数据库对象的权限必须由数据库所有者或系统管理员授予。据库对象的权限必须由数据库所有者或系统管理员授予。但是,在授予数据库对象这些权限后

26、,数据库对象所有但是,在授予数据库对象这些权限后,数据库对象所有者就可以创建对象并授予其他用户使用该对象的权限。者就可以创建对象并授予其他用户使用该对象的权限。数据库对象所有者没有特殊的登录数据库对象所有者没有特殊的登录 ID 或密码。对象创或密码。对象创建者被隐性授予数据库的所有权限,但其他用户必须被建者被隐性授予数据库的所有权限,但其他用户必须被显式授予权限后才能访问该对象。显式授予权限后才能访问该对象。 用户授权用户授权 34n使用企业管理器创建数据库用户使用企业管理器创建数据库用户 nsp_grantdbaccess存储过程创建数据库用户存储过程创建数据库用户 10.3.2 新建数据库

27、用户新建数据库用户35n展开指定的数据库,选择展开指定的数据库,选择“用户用户”项,可以查项,可以查看该数据库中用户的信息,如下图。默认情况看该数据库中用户的信息,如下图。默认情况下,用户创建的数据库中只有一个用户,即下,用户创建的数据库中只有一个用户,即dbo。(1)使用企业管理器创建数据库用户)使用企业管理器创建数据库用户36n用鼠标右击用鼠标右击“用户用户”项,从快捷菜单中选择项,从快捷菜单中选择“新建数据库用户新建数据库用户”命令,打开命令,打开“新建用户新建用户”对对话框,如下图。话框,如下图。(1)使用企业管理器创建数据库用户)使用企业管理器创建数据库用户37n使用使用sp_gra

28、ntdbaccess存储过程可以将存储过程可以将SQL Server登录和登录和Windows用户(用户组)指定为当用户(用户组)指定为当前数据库用户,并使其能够被授予在数据库中前数据库用户,并使其能够被授予在数据库中执行活动的权限。基本语法如下:执行活动的权限。基本语法如下: sp_grantdbaccess 登录名登录名, 数据库用户名数据库用户名 数据库用户名:可以包含数据库用户名:可以包含1128个字符,包括字个字符,包括字母、符号和数字,但不能包含反斜线符号(母、符号和数字,但不能包含反斜线符号()、)、不能为不能为NULL或空字符串。如果没有指定数据库或空字符串。如果没有指定数据库

29、用户名,则默认为与用户名,则默认为与“登录名登录名”相同相同(2 2)使用)使用)使用)使用sp_sp_grantdbaccessgrantdbaccess存储过程创建数据库用户存储过程创建数据库用户存储过程创建数据库用户存储过程创建数据库用户38n使用使用sp_grantdbaccess存储过程为登录账户存储过程为登录账户lee创创建数据库用户。建数据库用户。 sp_grantdbaccess lee 执行结果为:执行结果为: 已向已向 lee 授予数据库访问权。授予数据库访问权。例例10-739n使用企业管理器修改数据库用户:右击数据库使用企业管理器修改数据库用户:右击数据库用户名,从弹出

30、菜单中选择用户名,从弹出菜单中选择“属性属性”命令,打命令,打开开“用户属性用户属性”对话框。(与对话框。(与“新建用户新建用户”对对话框类似,但其话框类似,但其“权限权限”按钮变为有效)可以按钮变为有效)可以在此对话框中修改用户信息。在此对话框中修改用户信息。n使用企业管理器删除数据库用户:右击数据库使用企业管理器删除数据库用户:右击数据库用户名,从弹出菜单中选择用户名,从弹出菜单中选择“删除删除”命令。命令。n使用使用sp_revokedbaccess存储过程删除数据库用存储过程删除数据库用户,基本语法如下:户,基本语法如下: sp_revokedbaccess 数据库用户名数据库用户名1

31、0.3.3 修改和删除数据库用户修改和删除数据库用户 40n使用使用sp_revokedbaccess存储过程删除数据库用存储过程删除数据库用户户lee。 sp_revokedbaccess lee 执行结果为:执行结果为: 用户已从当前数据库中除去。用户已从当前数据库中除去。例例10-841 角色是一个强大的工具。利用角色,角色是一个强大的工具。利用角色,SQL Server管理者可以将某些用户设置为某一角色,管理者可以将某些用户设置为某一角色,对一个角色授予、拒绝或废除的权限也适用于该对一个角色授予、拒绝或废除的权限也适用于该角色的任何成员,这样只需对角色进行权限设置角色的任何成员,这样只

32、需对角色进行权限设置便可以实现对所有用户权限的设置,大大减少了便可以实现对所有用户权限的设置,大大减少了管理员的工作量。管理员的工作量。10.4 角色角色4210.4.1 角色管理角色管理角色角色固定服务器角色固定服务器角色数据库角色数据库角色固定的数据库角色固定的数据库角色用户自定义的数据库角色用户自定义的数据库角色431固定服务器角色固定服务器角色 根据根据SQL Server的管理任务,以及这些任务的的管理任务,以及这些任务的相对重要性等级,把具有相对重要性等级,把具有SQL Server管理职能的管理职能的用户划分为不同的用户组,每一组定义为一种固用户划分为不同的用户组,每一组定义为一

33、种固定服务器角色。每一组所具有的管理定服务器角色。每一组所具有的管理SQL Server的权限都是的权限都是SQL Server内置的,即不能对其权限内置的,即不能对其权限进行添加、修改和删除,可以在这些角色中添加进行添加、修改和删除,可以在这些角色中添加用户以获得相关的管理权限。用户以获得相关的管理权限。44SQL Server中的固定服务器角色中的固定服务器角色nSysadmin:可以可以在在SQL Server中执行任何活动中执行任何活动nServeradmin:可以设置服务器范围的配置选项,关闭可以设置服务器范围的配置选项,关闭服务器服务器nSetupadmin:可以管理链接服务器和启

34、动过程可以管理链接服务器和启动过程nSecurityadmin:可以管理登录和可以管理登录和CREATE DATABASE权限,还可以读取错误日志和更改密码权限,还可以读取错误日志和更改密码nProcessadmin:可以管理在可以管理在SQL Server中运行的进程中运行的进程nDbcreator:可以创建、更改和除去数据库可以创建、更改和除去数据库nDiskadmin:可以管理磁盘文件可以管理磁盘文件nBulkadmin:可以执行可以执行BULK INSERT(大容量数据插大容量数据插入)语句入)语句452固定数据库角色固定数据库角色 每个数据库还有一系列的固定数据库角色。在每个数据库还

35、有一系列的固定数据库角色。在添加用户时,可以指定该用户属于哪一个数据库添加用户时,可以指定该用户属于哪一个数据库角色。虽然不同的数据库中可以存在名称相同的角色。虽然不同的数据库中可以存在名称相同的角色,但各个角色的作用域只是在特定的数据库角色,但各个角色的作用域只是在特定的数据库内。内。 例如,如果例如,如果Database1和和Database2中都有叫中都有叫UserX的用户,将的用户,将Database1中的中的UserX添加到添加到Database1的的db_owner固定数据库角色中,对固定数据库角色中,对Database2中的中的UserX是否是是否是Database2的的db_o

36、wner角色成员没有任何影响角色成员没有任何影响46SQL Server中的固定数据库角色中的固定数据库角色nPublic:每个数据库用户都属于每个数据库用户都属于public角色角色ndb_owner:在数据库中有全部权限在数据库中有全部权限ndb_accessadmin:可以增加或者删除数据库用户、可以增加或者删除数据库用户、用户组和角色用户组和角色ndb_securityadmin:管理数据库角色的角色和成管理数据库角色的角色和成员,并管理数据库中的语句和对象权限员,并管理数据库中的语句和对象权限ndb_ddladmin:可以添加、修改或除去数据库中可以添加、修改或除去数据库中的对象(运

37、行所有的对象(运行所有DDL)ndb_backupoperator:可以备份和恢复数据库可以备份和恢复数据库ndb_datareader:可以选择数据库内任何用户表可以选择数据库内任何用户表中的所有数据中的所有数据47SQL Server中的固定数据库角色中的固定数据库角色ndb_datawriter:可以更改数据库内任何用户表可以更改数据库内任何用户表中的所有数据中的所有数据ndb_denydatareader:不能选择数据库内任何用不能选择数据库内任何用户表中的任何数据户表中的任何数据ndb_denydatawriter:不能更改数据库内任何用不能更改数据库内任何用户表中的任何数据户表中的

38、任何数据483用户自定义的数据库角色用户自定义的数据库角色n用户还可以自定义数据库角色。可以:用户还可以自定义数据库角色。可以:使用企业管理器管理自定义数据库角色使用企业管理器管理自定义数据库角色使用存储过程管理自定义数据库角色。使用存储过程管理自定义数据库角色。49(1)在企业管理器中新建角色)在企业管理器中新建角色n展开指定的数据库,选择数据库中的展开指定的数据库,选择数据库中的“角色角色”项,可以查看到指定数据库的所有角色。项,可以查看到指定数据库的所有角色。n右击右击“角色角色”项,在弹出菜单中选择项,在弹出菜单中选择“新建数新建数据库角色据库角色”,打开新建数据库角色对话框,打开新建

39、数据库角色对话框50(2)在企业管理器中修改角色)在企业管理器中修改角色n在角色列表中,用鼠标右击角色名,在弹出菜在角色列表中,用鼠标右击角色名,在弹出菜单中选择单中选择“属性属性”命令,打开数据库角色属性命令,打开数据库角色属性对话框。用户可以在角色属性对话框中修改角对话框。用户可以在角色属性对话框中修改角色的属性。如修改角色权限,添加用户或删除色的属性。如修改角色权限,添加用户或删除角色中的用户等。角色中的用户等。51(3)在企业管理器中删除角色)在企业管理器中删除角色n用鼠标右击角色名称,在弹出的快捷菜单中选用鼠标右击角色名称,在弹出的快捷菜单中选择择“删除删除”命令,可以删除数据库角色

40、。但是命令,可以删除数据库角色。但是无法删除固定的数据库角色。无法删除固定的数据库角色。52(4 4)使用)使用)使用)使用sp_sp_addroleaddrole存储过程创建自定义角色存储过程创建自定义角色存储过程创建自定义角色存储过程创建自定义角色nsp_addrole存储过程的功能是创建存储过程的功能是创建SQL Server角角色,基本语法如下:色,基本语法如下: sp_addrole 数据库角色名数据库角色名【例【例10-9】使用】使用sp_addrole存储过程创建数据库角存储过程创建数据库角色色newrole。 sp_addrole newrole 执行结果为:执行结果为: 新角

41、色已添加。新角色已添加。53(5 5)使用)使用)使用)使用sp_sp_droproledroprole存储过程删除自定义角色存储过程删除自定义角色存储过程删除自定义角色存储过程删除自定义角色nsp_droprole存储过程的功能是删除存储过程的功能是删除SQL Server角色,基本语法如下:角色,基本语法如下: sp_droprole 数据库角色名数据库角色名【例【例10-10】使用】使用sp_droprole存储过程删除数据库存储过程删除数据库角色角色newrole。 sp_droprole newrole 执行结果为:执行结果为: 角色已除去。角色已除去。5410.4.2 管理角色中的

42、用户管理角色中的用户 角色只有包含了用户后才有存在的意义。向角角色只有包含了用户后才有存在的意义。向角色中添加用户后,用户就拥有了角色的所有权限;色中添加用户后,用户就拥有了角色的所有权限;将用户从角色中删除后,用户从角色得到的权限将用户从角色中删除后,用户从角色得到的权限将被取消。将被取消。n在企业管理器中添加和删除角色成员在企业管理器中添加和删除角色成员n使用使用sp_addrolemember存储过程添加角色成员存储过程添加角色成员n使用使用sp_droprolemember存储过程删除角色成员存储过程删除角色成员本本小节介绍:小节介绍:551在企业管理器中添加和删除角色成员在企业管理器

43、中添加和删除角色成员 右击角色名,在弹出菜单中选择右击角色名,在弹出菜单中选择“属性属性”命令,打开命令,打开“数据库角色属性数据库角色属性”对话框对话框(如左图如左图),单击单击“添加添加”按钮,按钮,打开打开“添加角色成员添加角色成员”对话框对话框(如右图如右图) 。列表框中显示了。列表框中显示了当前数据库中所有用户名,不包括当前数据库中所有用户名,不包括dbo。选择一个用户,选择一个用户,单击单击“确定确定”按钮,可以将用户添加到角色中。按钮,可以将用户添加到角色中。56 2 2使用使用使用使用sp_sp_addrolememberaddrolemember存储过程添加角色成员存储过程添

44、加角色成员存储过程添加角色成员存储过程添加角色成员nsp_addrolemember存储过程的功能是向角色中添加用户,存储过程的功能是向角色中添加用户,基本语法如下:基本语法如下: sp_addrolemember 数据库角色名数据库角色名, 数据库用户名数据库用户名【例【例10-11】使用】使用sp_addrolemember存储过程向数据库角存储过程向数据库角色色newrole中添加用户中添加用户lee。 sp_addrolemember newrole, lee 执行结果为:执行结果为: lee 已添加到角色已添加到角色 newrole 中。中。57 10.5 权限管理权限管理 权限决定

45、了用户在数据库中可以进行的操作。权限决定了用户在数据库中可以进行的操作。可以对数据库用户或角色设置权限。可以对数据库用户或角色设置权限。本本节介绍:节介绍:权限的种类权限的种类设置权限设置权限5810.5.1 权限的种类权限的种类3种类型:种类型:n对象权限对象权限n语句权限语句权限n暗示性权限。暗示性权限。591对象权限对象权限 对象权限表示一个用户对特定的数据库对象,对象权限表示一个用户对特定的数据库对象,如表、视图、字段等的操作权限,如用户能否进如表、视图、字段等的操作权限,如用户能否进行查询、删除、插入和修改一个表中的行,或能行查询、删除、插入和修改一个表中的行,或能否执行一个存储过程

46、。否执行一个存储过程。601对象权限对象权限nSELECT、INSERT、UPDATE和和DELETE语句权语句权限,它们可以应用到整个表或视图中。限,它们可以应用到整个表或视图中。nSELECT和和UPDATE语句权限,它们可以有选择语句权限,它们可以有选择性地应用到表或视图中的单个列上。性地应用到表或视图中的单个列上。nSELECT权限,它们可以应用到用户定义函数。权限,它们可以应用到用户定义函数。nINSERT和和DELETE语句权限,它们会影响整行,语句权限,它们会影响整行,因此只可以应用到表或视图中,不能应用到列上。因此只可以应用到表或视图中,不能应用到列上。nEXECUTE语句权限

47、,它们可以影响存储过程和函语句权限,它们可以影响存储过程和函数。数。对象权限如下:对象权限如下:612语句权限语句权限nBACKUP DATABASE。nBACKUP LOG。nCREATE DATABASE。nCREATE DEFAULT。nCREATE FUNCTION。nCREATE PROCEDURE。nCREATE RULE。nCREATE TABLE。nCREATE VIEW。 语句权限表示一个用户对数据库的操作权限,如语句权限表示一个用户对数据库的操作权限,如能否执行创建和删除对象的语句,能否执行备份和能否执行创建和删除对象的语句,能否执行备份和恢复数据库的语句等。语句权限如下:

48、恢复数据库的语句等。语句权限如下:62 3暗示性权限暗示性权限n暗示性权限指系统安装以后有些用户和角色不必暗示性权限指系统安装以后有些用户和角色不必授权就有的权限。例如,授权就有的权限。例如,sysadmin固定服务器角固定服务器角色成员自动继承在色成员自动继承在SQL Server安装中进行操作或安装中进行操作或查看的全部权限。查看的全部权限。n数据库对象所有者拥有暗示性权限,可以对所拥数据库对象所有者拥有暗示性权限,可以对所拥有的对象执行一切活动。例如,拥有表的用户可有的对象执行一切活动。例如,拥有表的用户可以查看、添加或删除数据,更改表定义,或控制以查看、添加或删除数据,更改表定义,或控

49、制允许其他用户对表进行操作的权限。允许其他用户对表进行操作的权限。6310.5.2 设置权限设置权限设置权限包括:设置权限包括:n授予权限:授予用户、组或角色的语句权限和对授予权限:授予用户、组或角色的语句权限和对象权限,使数据库用户在当前数据库中具有执行象权限,使数据库用户在当前数据库中具有执行活动或处理数据的权限。活动或处理数据的权限。n拒绝权限:包括删除以前授予用户、组或角色的拒绝权限:包括删除以前授予用户、组或角色的权限,停用从其他角色继承的权限,确保用户、权限,停用从其他角色继承的权限,确保用户、组或角色将来不继承更高级别的组或角色的权限。组或角色将来不继承更高级别的组或角色的权限。

50、n废除权限:废除以前授予或拒绝的权限。废除类废除权限:废除以前授予或拒绝的权限。废除类似于拒绝,因为二者都是在同一级别上删除已授似于拒绝,因为二者都是在同一级别上删除已授予的权限。但是,废除权限是删除已授予的权限,予的权限。但是,废除权限是删除已授予的权限,并不妨碍用户、组或角色从更高级别继承已授予并不妨碍用户、组或角色从更高级别继承已授予的权限。的权限。641使用企业管理器管理对象权限使用企业管理器管理对象权限 用鼠标右击一个表、视图或存储过程,在弹出菜用鼠标右击一个表、视图或存储过程,在弹出菜单中选择单中选择“所有任务所有任务管理权限管理权限”,如图:,如图:651使用企业管理器管理对象权

51、限使用企业管理器管理对象权限 打开打开“对象属性对象属性”对话框:对话框:662使用企业管理器管理语句权限使用企业管理器管理语句权限 用鼠标右击数据库,在弹出菜单中选择用鼠标右击数据库,在弹出菜单中选择“属性属性”,打开数据库属性对话框。单击,打开数据库属性对话框。单击“权限权限”选项卡,选项卡,可以设置用户的语句权限。如下图:可以设置用户的语句权限。如下图:673使用企业管理器管理用户的权限使用企业管理器管理用户的权限 用鼠标右击用户名用鼠标右击用户名,在弹出菜单中选择在弹出菜单中选择“所有任所有任务务管理权限管理权限”,打开,打开“数据库用户属性数据库用户属性”对话框,对话框,可以设置用户

52、的权限。如下图:可以设置用户的权限。如下图:68 4使用企业管理器管理角色的权限使用企业管理器管理角色的权限 用鼠标右击角色名用鼠标右击角色名,在弹出的快捷菜单中选择在弹出的快捷菜单中选择“属性属性”,打开,打开“数据库角色属性数据库角色属性”对话框,单击对话框,单击 “权限权限”按钮,打开按钮,打开“数据库角色属性数据库角色属性”对话框,对话框,在在“权限权限”选项卡中可以设置角色对各种数据库对选项卡中可以设置角色对各种数据库对象的权限。如下图:象的权限。如下图:69 5使用使用GRANT语句语句n授予语句权限授予语句权限n授予对象权限授予对象权限70(1)授予语句权限)授予语句权限n基本语

53、法如下:基本语法如下: GRANT ALL | 语句语句 , .n TO 安全账户安全账户 , .n安全账户:当前数据库中的用户、角色或组,安全账户:当前数据库中的用户、角色或组,包括:包括:SQL Server 角色;角色;SQL Server用户;用户;Windows NT组;组;Windows NT用户。用户。若权限被授予若权限被授予SQL Server角色或角色或Windows NT组,权限可影响到当前数据库中该组或该角色组,权限可影响到当前数据库中该组或该角色成员的所有用户。成员的所有用户。【例【例10-13】使用】使用GRANT语句对用户语句对用户lee授予创建表授予创建表和创建视

54、图的权限。和创建视图的权限。 GRANT CREATE TABLE, CREATE VIEW TO lee71(2)授予对象权限)授予对象权限n基本语法如下:基本语法如下: GRANT ALL | 权限权限 ,.n ( 列名列名 ,.n ) ON 表表 | 视图视图 | ON 表表 | 视图视图 ( 列名列名 ,.n ) | ON 存储过程存储过程 | ON用户自定义函数用户自定义函数 TO 安全账户安全账户 ,.n WITH GRANT OPTION AS 组组 | 角色角色 72(2)授予对象权限)授予对象权限n参数说明:参数说明:ALL:表示授予所有可用的权限。表示授予所有可用的权限。权

55、限:当前授予的对象权限。如在表、视图上权限:当前授予的对象权限。如在表、视图上可授予可授予SELECT、INSERT、DELETE或或UPDATE权限。在列上可授予权限。在列上可授予SELECT和和UPDATE权限。权限。安全账户:权限将应用的安全账户。可以是:安全账户:权限将应用的安全账户。可以是:SQL Server用户用户 ;SQL Server角色;角色;Windows NT用户;用户;Windows NT组。组。WITH GRANT OPTION:使被授予权限的用使被授予权限的用户或角色拥有再将该权限授予其他用户的权限。户或角色拥有再将该权限授予其他用户的权限。AS 组组 | 角色角

56、色:作为角色或组的成员使用角:作为角色或组的成员使用角色或组的权限。色或组的权限。73(2)授予对象权限)授予对象权限【例【例10-14】使用】使用GRANT语句对角色语句对角色newrole授予授予对表对表“学生学生”的的INSERT、UPDATE和和DELETE的权限。的权限。 GRANT INSERT, UPDATE, DELETE ON 学生学生 TO newrole【例例10-15】使用】使用GRANT语句授予用户语句授予用户Mary、John和和Tom对对pubs数据库的数据库的authors表的插入、修表的插入、修改、删除权限。改、删除权限。 USE pubs GRANT INS

57、ERT, UPDATE, DELETE ON authors TO Mary, John, Tom74(2)授予对象权限)授予对象权限【例【例10-16】使用】使用GRANT语句授予用户语句授予用户Log1对对pubs数据库的数据库的Titles表的表的Title_id和和Title列具有修改权列具有修改权限。限。 USE Pubs GRANT UPDATE(Title_id , Title) ON Titles TO Log1 也可以写成:也可以写成: USE Pubs GRANT UPDATE ON Titles(Title_id , Title) TO Log175(2)授予对象权限)授

58、予对象权限【例例10-17】使用】使用GRANT语句将对语句将对Market数据库的数据库的Custumers表的表的SELECT、INSERT权限授予用户权限授予用户Zhang,并允许用户并允许用户Zhang再将该权限授予其他再将该权限授予其他用户或角色。用户或角色。 USE Market GRANT SELECT , INSERT ON Custumers TO Zhang WITH GRANT OPTION76(2)授予对象权限)授予对象权限【例【例10-18】用户】用户Tom将对表将对表Table1的的SELECT权限权限授予授予Role1角色,指定角色,指定WITH GRANT OP

59、TION子子句。句。 GRANT SELECT ON Table1 TO Role1 WITH GRANT OPTION 设用户设用户Jerry是是Role1的成员,他要将表的成员,他要将表Table1上上的的SELECT权限授予用户权限授予用户Jack(设设Jack不是不是Role1的成员)。相应的的成员)。相应的GRANT语句如下:语句如下: GRANT SELECT ON Table1 TO Jack AS role1 因为对表因为对表Table1的的WITH GRANT OPTION权限权限是授予是授予Role1角色,而不是显式地授予角色,而不是显式地授予Jerry,因此,因此,Jer

60、ry必须用必须用AS子句来获得子句来获得role1角色的这种权限。角色的这种权限。776使用使用DENY语句语句n拒绝语句权限拒绝语句权限n拒绝对象权限拒绝对象权限 78(1)拒绝语句权限)拒绝语句权限n基本语法如下:基本语法如下: DENY ALL | 语句语句 , .n TO 安全账户安全账户 , .n【例例10-19】使用】使用DENY语句对用户语句对用户lee拒绝创建表拒绝创建表和创建视图的权限。和创建视图的权限。 DENY CREATE TABLE, CREATE VIEW TO lee79(2)拒绝对象权限)拒绝对象权限n基本语法如下:基本语法如下: DENY ALL | 权限权限

61、 ,.n ( 列名列名 ,.n ) ON 表表 | 视图视图 | ON 表表 | 视图视图 (列名列名 ,.n ) | ON 存储过程存储过程| 用户自定义函数用户自定义函数 TO 安全账户安全账户 ,.n CASCADE 参数参数CASCADE:拒绝安全账户的权限时,也将拒绝安全账户的权限时,也将拒绝由安全账户授权的任何其他安全账户的权限。拒绝由安全账户授权的任何其他安全账户的权限。80(2)拒绝对象权限)拒绝对象权限【例【例10-20】 使用使用DENY语句拒绝角色语句拒绝角色newrole对对“学生学生”表的表的INSERT、UPDATE和和DELETE的权限。的权限。 DENY INS

62、ERT, UPDATE, DELETE ON 学生学生 TO newrole81(2)拒绝对象权限)拒绝对象权限【例【例10-21】CASCADE选项的作用。选项的作用。n设管理员使用以下设管理员使用以下GRANT语句对语句对Liu进行授权,使用户进行授权,使用户Liu具有对具有对Sales表的表的SELECT权限。权限。 GRANT SELECT ON Sales TO Liu WITH GRANT OPTIONn因此,用户因此,用户Liu具有了将具有了将sales对象的对象的SELECT权限授予其权限授予其他用户的权限,于是用户他用户的权限,于是用户Liu执行以下授权:执行以下授权: GR

63、ANT SELECT ON Sales TO Gaon这时,管理员执行下面语句将拒绝用户这时,管理员执行下面语句将拒绝用户Liu和和Gao对对sales表的表的SELECT权限,以及权限,以及Liu的的WITH GRANT OPTION权限。权限。 DENY SELECT ON sales TO Liu CASCADE827使用使用REVOKE语句语句n废除语句权限废除语句权限n废除对象权限废除对象权限83(1)废除语句权限)废除语句权限n基本语法如下:基本语法如下: REVOKE ALL | 语句语句 , .n FROM 安全账户安全账户 , .n 【例例10-22】使用】使用REVOKE语

64、句废除用户语句废除用户lee创建创建表和创建视图的权限。表和创建视图的权限。 REVOKE CREATE TABLE, CREATE VIEW FROM lee84(2)废除对象权限)废除对象权限n基本语法如下:基本语法如下: REVOKE GRANT OPTION FOR ALL | 权限权限 ,.n ( 列名列名 ,.n ) ON 表表 | 视图视图 | ON 表表 | 视图视图 ( 列名列名 ,.n ) | ON 存储过程存储过程 | 用户自定义函数用户自定义函数 TO | FROM 安全账户安全账户 ,.n CASCADE AS 组组 | 角色角色 85(2)废除对象权限)废除对象权限

65、参数说明:参数说明:nGRANT OPTION FOR:指定要收回指定要收回WITH GRANT OPTION权限。用户仍然具有指定的权限,权限。用户仍然具有指定的权限,但是不能将该权限授予其他用户。但是不能将该权限授予其他用户。nCASCADE:收回指定安全账户的权限时,也将收收回指定安全账户的权限时,也将收回由其授权的任何其他安全账户的权限。如果要收回由其授权的任何其他安全账户的权限。如果要收回的权限原先是通过回的权限原先是通过WITH GRANT OPTION设置设置授予的授予的,需指定需指定CASCADE和和GRANT OPTION FOR 子句子句,否则将返回一个错误。否则将返回一个

66、错误。nAS 组组 | 角色角色:说明要管理的用户从哪个角色或:说明要管理的用户从哪个角色或组继承权限。组继承权限。86(2)废除对象权限)废除对象权限【例【例10-23】使用】使用REVOKE语句废除角色语句废除角色newrole对对“学生学生”表的表的INSERT、UPDATE和和DELETE的权的权限。限。 REVOKE INSERT, UPDATE, DELETE ON 学生学生 TO newrole【例例10-24】废除用户】废除用户yuan对对publishers表的表的pub_id列的修改权限。列的修改权限。 REVOKE UPDATE(pub_id) ON publishers

67、 FROM yuan87(2)废除对象权限)废除对象权限【例【例10-25】CASCADE选项的作用。选项的作用。n设管理员使用以下设管理员使用以下GRANT语句对语句对Liu进行授权,进行授权,使用户使用户Liu具有对具有对Sales表的表的SELECT权限。权限。 GRANT SELECT ON Sales TO Liu WITH GRANT OPTIONn因此,用户因此,用户Liu具有了将具有了将sales对象的对象的SELECT权限权限授予其他用户的权限,于是用户授予其他用户的权限,于是用户Liu执行以下授权:执行以下授权: GRANT SELECT ON Sales TO Gao88

68、(2)废除对象权限)废除对象权限n这时,管理员执行以下语句可废除用户这时,管理员执行以下语句可废除用户Liu的的WITH GRANT OPTION权限,以及用户权限,以及用户Gao所获所获得的对得的对Sales表的表的SELECT权限,但权限,但Liu仍具有对仍具有对Sales表的表的SELECT权限。权限。 REVOKE GRANT OPTION FOR SELECT ON sales FROM Liu CASCADE89(2)废除对象权限)废除对象权限【例【例10-26】设用户】设用户Tom执行以下语句对角色执行以下语句对角色Role1进行了授权:进行了授权: GRANT SELECT ON Table1 TO Role1 WITH GRANT OPTIONn用户用户Jerry是角色是角色Role1中的成员,于是中的成员,于是Jerry作为作为角色角色Role1的成员执行以下授权:的成员执行以下授权: GRANT SELECT ON Table1 TO Jack AS role1n现在,用户现在,用户Jerry要废除用户要废除用户Jack所获得的对所获得的对Table1表的表的SELECT权限,可以使用以下语句:权限,可以使用以下语句: REVOKE SELECT ON Table1 FROM Jack AS Role190

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号