数据库技术与应用第13章SQLServer安全管理.ppt

上传人:wuy****n92 文档编号:88500777 上传时间:2023-04-26 格式:PPT 页数:82 大小:383.82KB
返回 下载 相关 举报
数据库技术与应用第13章SQLServer安全管理.ppt_第1页
第1页 / 共82页
数据库技术与应用第13章SQLServer安全管理.ppt_第2页
第2页 / 共82页
点击查看更多>>
资源描述

《数据库技术与应用第13章SQLServer安全管理.ppt》由会员分享,可在线阅读,更多相关《数据库技术与应用第13章SQLServer安全管理.ppt(82页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第13章 SQL Server安全管理13.1 SQL Server 2000的安全机制的安全机制13.2 管理服务器的安全性管理服务器的安全性13.3 管理数据库用户管理数据库用户13.4 管管 理理 角角 色色13.5 管管 理理 权权 限限合理有效的数据库安全机制可以既保合理有效的数据库安全机制可以既保证被授权用户能够方便地访问数据库中的证被授权用户能够方便地访问数据库中的数据,又能够防止非法用户的入侵。数据,又能够防止非法用户的入侵。SQLServer2000提供了一套设计完善、操作简提供了一套设计完善、操作简单的安全管理机制。单的安全管理机制。13.1SQLServer2000的安全

2、机制的安全机制SQLServer2000的的安安全全性性机机制制由由四四层层构构成,可以用图成,可以用图13-1表示。表示。从用户的角度讲,要访问数据库,需经过从用户的角度讲,要访问数据库,需经过如下步骤。如下步骤。图图13-1SQLServer2000的安全性机制的安全性机制(1)一个数据库用户必须有权登录操作)一个数据库用户必须有权登录操作系统,即该用户在系统,即该用户在Windows2000Server操操作系统中具有登录账户。在这个前提条件作系统中具有登录账户。在这个前提条件下,才有可能进入下,才有可能进入SQLServer2000系统。系统。(2)一旦登录了操作系统,登录者还必)一旦

3、登录了操作系统,登录者还必须得到数据库系统的通行证须得到数据库系统的通行证数据库服务数据库服务器的登录账户,才具有数据库服务器的连器的登录账户,才具有数据库服务器的连接权或登录权。接权或登录权。SQLServer2000只有在只有在验证了指定的登录账户有效后,才完成连验证了指定的登录账户有效后,才完成连接。这种对登录账户的验证称为身份验证。接。这种对登录账户的验证称为身份验证。对用户而言,登录对用户而言,登录SQLServer2000需要需要使用以下两类身份验证之一。使用以下两类身份验证之一。Windows身份验证:此种验证方式仅用于身份验证:此种验证方式仅用于Windows2000Serve

4、r/NT操作系统。在这操作系统。在这种方式下,用户只要通过种方式下,用户只要通过Windows2000Server/NT操作系统的登录验证,就可以操作系统的登录验证,就可以连接到连接到SQLServer2000数据库实例。数据库实例。SQLServer身份验证:在此种验证方式下,身份验证:在此种验证方式下,即使用户已经登录操作系统,也必须输入即使用户已经登录操作系统,也必须输入有效的有效的SQLServer专用登录名与密码方可专用登录名与密码方可连入连入SQLServer2000数据库实例。数据库实例。(3)当一个登录者登录数据库服务器后,)当一个登录者登录数据库服务器后,并不等于对其中的数据

5、库具有访问权限,并不等于对其中的数据库具有访问权限,还必须由数据库所有者或管理员授权,使还必须由数据库所有者或管理员授权,使该登录者成为某一个数据库的用户。该登录者成为某一个数据库的用户。(4)作为某个数据库的用户,对数据库)作为某个数据库的用户,对数据库对象(如数据库对象(如数据库pubs中的表中的表authors)的访)的访问权限也必须被授予,这些权限包括问权限也必须被授予,这些权限包括SELECT、UPDATE、INSERT、DELETE等。等。另一方面,从另一方面,从SQLServer2000数据库服务数据库服务器的角度讲,对于要登录数据库服务器的器的角度讲,对于要登录数据库服务器的用

6、户,用户,SQLServer2000采用以下两种安全采用以下两种安全认证模式。认证模式。(1)仅)仅Windows认证模式:这是认证模式:这是SQLServer2000的默认身份验证模式,适用于的默认身份验证模式,适用于所有登录者均为所有登录者均为Windows2000Server/NT操作系统用户的情况。但在操作系统用户的情况。但在Windows98操操作系统上运行的作系统上运行的SQLServer实例不支持实例不支持Windows身份验证。身份验证。(2)混合认证模式:该模式可用于两类)混合认证模式:该模式可用于两类登录者,对于登录时提供了登录者,对于登录时提供了SQLServer2000

7、登录账户者,系统将使用登录账户者,系统将使用SQLServer身份验证对其进行验证。对于没有提供身份验证对其进行验证。对于没有提供SQLServer2000登录账户或请求登录账户或请求Windows身份验证的登录者,则使用身份验证的登录者,则使用Windows身份验证对其进行验证。身份验证对其进行验证。13.2管理服务器的安全性管理服务器的安全性对于一个合法的数据库用户,首先必须在对于一个合法的数据库用户,首先必须在SQLServer2000中为其设置相应的登录账户,中为其设置相应的登录账户,否则他不能登录数据库服务器。有两类登录账户,否则他不能登录数据库服务器。有两类登录账户,SQLServ

8、er身份验证的登录账户(以下简称身份验证的登录账户(以下简称SQL账户)与账户)与Windows身份验证的登录账户(以下身份验证的登录账户(以下简称简称Windows账户)。账户)。SQL账户的登录名称与登账户的登录名称与登录密码由录密码由SQLServer2000系统负责验证,系统负责验证,Windows账户的登录名称与登录密码则由账户的登录名称与登录密码则由Windows2000Server/NT负责验证。负责验证。使用企业管理器管理登录账户使用企业管理器管理登录账户只有只有sysadmin或或securityadmin固定固定服务器角色的成员能够利用企业管理器或服务器角色的成员能够利用企

9、业管理器或T-SQL语句完成语句完成SQL账户和账户和Windows账户账户的管理任务。的管理任务。1建立登录账户建立登录账户2登录账户的有关内容登录账户的有关内容3修改登录账户修改登录账户 13.2.2 使用T-SQL语句管理登录账户管管理理登登录录账账户户也也可可以以使使用用T-SQL语语句句,需需要要注注意意的的是是管管理理Windows账账户户与与SQL账账户户所使用的系统存储过程不同。所使用的系统存储过程不同。1管理管理Windows身份验证的身份验证的登录账户登录账户(1)向)向Windows账户授权的语法如下。账户授权的语法如下。命令格式:命令格式:sp_grantloginlo

10、giname=login命令说明:命令说明:loginame=login 指定一个名称为指定一个名称为login的的Windows2000Server/NT用户或用户或用户组名称,其格式为用户组名称,其格式为域域用户名用户名 或或计算机名计算机名用户名用户名,loginame可以省略。可以省略。(2)拒拒绝绝一一个个Windows账账户户登登录录的的语语法法如下。如下。命令格式:命令格式:sp_denyloginloginame=login(3)删除一个)删除一个Windows账户的语法如下。账户的语法如下。命令格式:命令格式:sp_revokeloginloginame=login2管理管理

11、SQL身份验证的登录账户身份验证的登录账户(1)使用系统存储过程创建)使用系统存储过程创建SQL账户账户命令格式:命令格式:sp_addloginloginame=login,passwd=password,defdb=database,deflanguage=language命令说明:命令说明:login为新建登录账户的名称为新建登录账户的名称。password为为密密码码,默默认认设设置置为为NULL。database为登录时的默认数据库。为登录时的默认数据库。language为默认语言为默认语言。全部按上述次序取值时,局部变全部按上述次序取值时,局部变量名称量名称loginame、pas

12、swd、defdb、deflanguage可以省略。可以省略。(2)使使用用系系统统存存储储过过程程修修改改SQL账账户户的密码的密码命令格式:命令格式:sp_password old=old _ password,new=new _password,loginame=login 命令说明:命令说明:(1)old _ password为为旧旧的的登登录录密密码码,其其默认值为默认值为NULL;(2)new _password为新的登录密码,为新的登录密码,无默认值;无默认值;login为需要更改密码的登录名,为需要更改密码的登录名,login必须已经存在。必须已经存在。(3)使使用用系系统统存

13、存储储过过程程修修改改SQL账账户户的的默认数据库默认数据库命令格式:命令格式:sp_defaultdbloginame=login,defdb=database 命命令令说说明明:database是是新新的的默默认认数数据据库库的的名称。名称。(4)使使用用系系统统存存储储过过程程修修改改SQL账账户户的的默认语言默认语言命令格式:命令格式:sp_defaultlanguageloginame=login,deflanguage=language 命令说明:命令说明:language是新的数据库是新的数据库默认语言。默认语言。(5)使用系统存储过程删除)使用系统存储过程删除SQL账户账户命令

14、格式:命令格式:sp_droploginloginame=login 13.2.3 特殊的登录账户特殊的登录账户saSQLServer2000在安装后自动建立在安装后自动建立了一个特殊的了一个特殊的SQL账户账户sa,即,即SystemAdministrator。该账户默认为是所有数据。该账户默认为是所有数据库的库的dbo用户用户(数据库所有者),具有最(数据库所有者),具有最高权限,可以进行任何操作,且不能被删高权限,可以进行任何操作,且不能被删除。刚安装完毕时,除。刚安装完毕时,sa没有密码,为了安没有密码,为了安全起见,一定要为其加入密码。全起见,一定要为其加入密码。13.3管理数据库用

15、户管理数据库用户无论是无论是Windows账户还是账户还是SQL账户,账户,登录数据库服务器后的其他操作都是相同登录数据库服务器后的其他操作都是相同的。但首先他必须获得对数据库的访问权。的。但首先他必须获得对数据库的访问权。SQLServer2000通过为登录账户指派数通过为登录账户指派数据库用户来使其获得对数据库的访问权限。据库用户来使其获得对数据库的访问权限。13.3.1 使使用用企企业业管管理理器器管管理数据库用户理数据库用户1新建数据库用户新建数据库用户2删除数据库用户删除数据库用户13.3.2 使使用用T-SQL语语句句管管理理数数据库用户据库用户使使用用系系统统存存储储过过程程可可

16、以以在在当当前前数数据据库库中中管管理数据库用户。理数据库用户。1新建数据库用户新建数据库用户命令格式:命令格式:sp_grantdbaccess loginame=login,name_in_db=name_in_db命令说明:命令说明:(1)login:为为登登录录账账户户的的登登录录名名,当当其其为为Windows账账户户名名时时,须须采采用用“域域名名登登录录名名”格格式式;当当其其为为SQL账账户户名名时时,采采用用“登录名登录名”格式。格式。(2)name_in_db:表示在当前数据:表示在当前数据库中为该登录账户所指定的数据库用户的库中为该登录账户所指定的数据库用户的用户名,省略

17、该参数,则默认登录名与用用户名,省略该参数,则默认登录名与用户名相同。户名相同。2删除数据库用户删除数据库用户命令格式:命令格式:sp_revokedbaccessname_in_db=name 命令说明:命令说明:name为当前数据库中要为当前数据库中要删除的用户名。删除的用户名。13.3.3 特殊的数据库用户特殊的数据库用户dbo 和和guestSQLServer2000数数据据库库中中有有2个个特特殊殊用用户户:dbo和和guest。1dbo在在创创建建一一个个数数据据库库时时,SQLServer2000自自动动将将创创建建该该数数据据库库的的登登录录账账户户设设置置为为该该数数据据库库

18、的的一一个个用用户户,并并起起名名为为dbo。dbo是是数数据据库库的的拥拥有有者者,不不能能从从数数据据库库中中删删除除,dbo对对本本数数据据库库拥拥有有所所有有操操作作权权限限,并并可可以以将将这这些些权权限限全全部部或或部部分分授授予予其其他他数数据据库库用用户户。另另外外,属属于于固固定定服服务务器器角角色色sysadmin的成员也映射为所有数据库的的成员也映射为所有数据库的dbo。2guest当一个登录者登录数据库服务器时,当一个登录者登录数据库服务器时,如果该服务器上的所有数据库都没有为其如果该服务器上的所有数据库都没有为其建立用户账户,则该登录者只能访问那些建立用户账户,则该登

19、录者只能访问那些具有具有guest用户的数据库。系统数据库用户的数据库。系统数据库Master与与tempdb中的中的guest用户不能被删用户不能被删除除,而其他数据库中的,而其他数据库中的guest用户可以被用户可以被添加或删除。添加或删除。13.4管管理理角角色色角色是为了方便权限管理而设置的一角色是为了方便权限管理而设置的一种管理单位。若打算使一组登录账户或数种管理单位。若打算使一组登录账户或数据库用户在数据库服务器或数据库对象上据库用户在数据库服务器或数据库对象上具有相同的权限,则可以通过角色实现。具有相同的权限,则可以通过角色实现。13.4.1 固定角色固定角色固定角色按其权限作用

20、范围可以分为固定固定角色按其权限作用范围可以分为固定服务器角色与固定数据库角色,其作用范服务器角色与固定数据库角色,其作用范围分别为整个数据库服务器与单个数据库。围分别为整个数据库服务器与单个数据库。这些角色不能修改或删除。这些角色不能修改或删除。1固定服务器角色固定服务器角色SQLServer2000的服务器角色只有固定服的服务器角色只有固定服务器角色,用于对数据库服务器的操作。务器角色,用于对数据库服务器的操作。对数据库服务器操作的权限不能直接赋给对数据库服务器操作的权限不能直接赋给其他登录账户,只能使某些登录账户成为其他登录账户,只能使某些登录账户成为固定服务器角色的成员,才能使他们具有

21、固定服务器角色的成员,才能使他们具有这些权限。这些权限。SQLServer2000具有如下固定具有如下固定服务器角色:服务器角色:(1)sysadmin,有权在,有权在SQLServer中进中进行任何活动。行任何活动。(2)serveradmin,有权设置服务器一级,有权设置服务器一级的配置选项,关闭服务器。的配置选项,关闭服务器。(3)setupadmin,有权管理链接服务器,有权管理链接服务器和启动过程。和启动过程。(4)securityadmin,有权管理登录和,有权管理登录和CREATEDATABASE权限,还可以读取权限,还可以读取错误日志和更改密码。错误日志和更改密码。(5)pro

22、cessadmin,有权管理在,有权管理在SQLServer中运行的进程。中运行的进程。(6)dbcreator,有权创建、更改和除去,有权创建、更改和除去数据库。数据库。(7)diskadmin,有权管理磁盘文件有权管理磁盘文件。(8)bulkadmin,有权执行,有权执行BULKINSERT语句。语句。2固定数据库角色固定数据库角色SQLServer2000中的数据库角色用于对单中的数据库角色用于对单个数据库的操作。每个数据库都有一系列个数据库的操作。每个数据库都有一系列固定数据库角色,尽管在不同的数据库内固定数据库角色,尽管在不同的数据库内他们是同名的,但各自的作用范围都仅限他们是同名的

23、,但各自的作用范围都仅限于本数据库。于本数据库。SQLServer2000具有如下固具有如下固定数据库角色:定数据库角色:(1)db_owner,在数据库中具有全部权,在数据库中具有全部权限。限。(2)db_accessadmin,有权添加或删除数,有权添加或删除数据库用户。据库用户。(3)db_securityadmin,有权管理全部权,有权管理全部权限、对象所有权、角色和角色成员资格。限、对象所有权、角色和角色成员资格。(4)db_ddladmin,有权发出,有权发出ALLDDL,但不能发出,但不能发出GRANT、REVOKE或或DENY语句。语句。(5)db_backupoperator

24、,有权发出,有权发出DBCC、CHECKPOINT和和BACKUP语语句。句。(6)db_datareader,有权查询数据库内,有权查询数据库内任何用户表中的所有数据。任何用户表中的所有数据。(7)db_datawriter,有权更改数据库内,有权更改数据库内任何用户表中的所有数据。任何用户表中的所有数据。(8)db_denydatareader,不能查询数据,不能查询数据库内任何用户表中的任何数据。库内任何用户表中的任何数据。(9)db_denydatawriter,不能更改,不能更改数据库内任何用户表中的任何数据。数据库内任何用户表中的任何数据。13.4.2 用户定义的数据库角色用户定义

25、的数据库角色数数据据库库角角色色除除了了固固定定角角色色外外,还还有有一一种种角角色色是是用用户户定定义义的的数数据据库库角角色色。这这种种角角色色是是在在SQLServer2000安安装装之之后后根根据据需需要要设设置置的的,因因此此可可以以创创建建、修修改改或或删删除除,它它们们通通常常由由sysadmin、db_securityadmin、db_owner等固定角色中的成员创建。等固定角色中的成员创建。1创建用户定义的数据库角色创建用户定义的数据库角色创创建建用用户户定定义义的的数数据据库库角角色色需需要要调调用用系系统统存储过程存储过程sp_addrole,语法如下。,语法如下。命令格

26、式:命令格式:sp_addrolerolename=role,ownername=owner 命令说明:命令说明:(1)role表表示示要要在在当当前前数数据据库库中中创创建建的的角角色名称。色名称。(2)owner表示该角色的所有者,表示该角色的所有者,默认值为数据库的所有者默认值为数据库的所有者dbo。2从当前数据库删除用户定义的角色从当前数据库删除用户定义的角色删除角色需要调用系统存储过程。删除角色需要调用系统存储过程。命令格式:命令格式:sp_droprolerolename=role命命令令说说明明:role为为将将要要从从当当前前数数据据库库中中删删除的角色的名称。除的角色的名称。

27、注意:注意:(1)不不能能删删除除固固定定角角色色及及13.4.3节节所所述述的的public角色。角色。(2)使使用用sp_droprole只只能能删删除除标标准准角角色色中中的的用用户户定定义义角角色色,不不能能删删除除应应用用程程序序角角色色,若若要要删删除除应应用用程程序序角角色色,须须使使用用sp_dropapprole。(3)不不能能删删除除带带有有成成员员的的角角色色。在在删删除除角角色色之之前前,首首先先必必须须从从该该角角色色中中删删除除其其所有成员。所有成员。(4)只有)只有sysadmin固定服务器角固定服务器角色、色、db_owner和和db_securityadmin

28、固固定数据库角色成员或角色的所有者才能定数据库角色成员或角色的所有者才能执行执行sp_droprole。3利用企业管理器创建或删利用企业管理器创建或删除用户定义的数据库角色除用户定义的数据库角色13.4.3 特殊的数据库角色特殊的数据库角色public在在SQLServer2000的的每每个个数数据据库库中中(包包括括master、msdb、tempdb、model和和所所有有用用户户数数据据库库)都都有有一一个个特特殊殊的的数数据据库库角角色色public,它它能能够够捕捕获获数数据据库库中中用用户户的的所所有有默默认认权权限限。public无无法法删删除除,每每个个数数据据库库用户都自动属

29、于该角色的成员。用户都自动属于该角色的成员。13.4.4 角色成员管理角色成员管理角角色色成成员员管管理理包包括括将将登登录录账账户户、数数据据库库用用户户或或其其他他角角色色添添加加为为一一个个角角色色的的成成员员以以及及删删除除角角色色成成员员。可可以以利利用用系系统统存存储储过过程程或或企业管理器管理角色成员。企业管理器管理角色成员。1管理服务器角色的成员管理服务器角色的成员服服务务器器角角色色的的成成员员均均为为登登录录账账户户。管管理理服服务务器器角角色色的的成成员员就就是是将将登登录录账账户户添添加加为为固固定服务器角色成员或删除之。定服务器角色成员或删除之。(1)利利用用系系统统

30、存存储储过过程程将将登登录录账账户户添添加加为固定服务器角色的成员为固定服务器角色的成员命令格式:命令格式:sp_addsrvrolemember loginame=login,rolename=role命命令令说说明明:login是是添添加加到到固固定定服服务务器器角角色色的的登登录录账账户户名名称称,可可以以是是Windows或或SQL账户。账户。(2)利利用用系系统统存存储储过过程程从从固固定定服服务务器器角角色色中删除成员中删除成员命令格式:命令格式:sp_dropsrvrolememberloginame=login,rolename=role命令说明:命令说明:login是是将将要

31、要从从固固定定服服务务器器角角色色成成员员中中删删除的登录账户的名称,除的登录账户的名称,login必须存在。必须存在。role固定服务器角色的名称。固定服务器角色的名称。(3)利用企业管理器管理服务器角)利用企业管理器管理服务器角色成员色成员2管理数据库角色的成员管理数据库角色的成员数数据据库库角角色色的的成成员员均均为为数数据据库库用用户户或或其其他他数数据据库库角角色色。管管理理数数据据库库角角色色的的成成员员就就是是将将数数据据库库用用户户(或或其其他他数数据据库库角角色色)添添加加为数据库角色成员或删除之。为数据库角色成员或删除之。(1)利用系统存储过程添加数据库角)利用系统存储过程

32、添加数据库角色的成员色的成员命令格式:命令格式:sp_addrolememberrolename=role,membername=security_account命令说明:命令说明:role是是当当前前数数据据库库中中数数据据库库角角色色名名称称,包包括括固固定定数数据据库库角角色色与与用用户户定定义义数数据据库库角角色。色。security_account是拟添加到该数是拟添加到该数据库角色的数据库用户或其他用户定义的据库角色的数据库用户或其他用户定义的数据库角色名称。数据库角色名称。(2)利用系统存储过程从数据库角色)利用系统存储过程从数据库角色中删除成员中删除成员命令格式:命令格式:sp

33、_droprolememberrolename=role,membername=security_account命令说明:命令说明:role为为将将要要从从中中删删除除成成员员的的数数据据库库角角色色的名称。的名称。security_account为为将将要要从从角角色色中中删删除除的的数据库用户或另一个角色的名称。数据库用户或另一个角色的名称。(3)利用企业管理器管理数据库角)利用企业管理器管理数据库角色成员色成员13.4.5 应用程序角色应用程序角色有有时时,从从系系统统的的安安全全性性或或性性能能上上考考虑虑,可可能能希希望望限限制制用用户户对对数数据据库库的的访访问问方方式式。例例如如

34、为为了了财财务务数数据据的的安安全全,限限定定用用户户只只能能通通过过特特定定应应用用程程序序来来访访问问一一个个财财务务数数据据库库;又又如如,对对于于某某些些难难以以用用外外键键表表述述的的复复杂杂表表间间关关系系,需需要要通通过过应应用用程程序序维维护护表表间间数数据据的的完完整整性性与与一一致致性性。在在这这类类情情况况下下,采采用用应用程序角色十分有效。应用程序角色十分有效。应用程序角色具有如下特点:应用程序角色具有如下特点:(1)应应用用程程序序角角色色不不同同于于一一般般的的标标准准角角色色,它它没没有有成成员员。如如果果一一个个用用户户想想要要获获得得应应用用程程序序角角色色的

35、的权权限限,他他必必须须有有权权使使用用某某特特定定应应用用程程序序,该该应应用用程程序序可可以以通通过过激激活活一个应用程序角色来连接某个数据库。一个应用程序角色来连接某个数据库。(2)默默认认情情况况下下,应应用用程程序序角角色色是是非非活活动动的的,需需要要用用密密码码激激活活。只只有有在在应应用用程程序序中中激激活活并并连连入入数数据据库库,应应用用程程序序角角色色才才能能生生效效,连连接接一一旦旦断断开开,应应用用程程序序角角色色立立即即失去作用。失去作用。(3)当当一一个个应应用用程程序序角角色色被被激激活活并并连连接接到到一一个个数数据据库库时时,连连接接期期间间会会屏屏蔽蔽掉掉

36、该该数数据据库库中中的的所所有有用用户户和和标标准准角角色色及及其其权权限限,仅仅应应用用程程序序角角色色的的权权限限能能够够生生效效。只只有有在在应应用用程程序序断断开开连连接接后后,这这些些用用户户与与标标准准角角色的权限才能生效。色的权限才能生效。(4)当一个用户激活了应用程序角)当一个用户激活了应用程序角色后,他将获得应用程序角色的所有权限,色后,他将获得应用程序角色的所有权限,但其原有的非应用程序角色的权限会全部但其原有的非应用程序角色的权限会全部消失。此时,他若想访问其他数据库,只消失。此时,他若想访问其他数据库,只能通过其他数据库中的能通过其他数据库中的guest用户账户。用户账

37、户。如果数据库中没有如果数据库中没有guest用户账户,则无用户账户,则无法访问这些数据库。法访问这些数据库。只只有有 sysadmin 固固定定服服务务器器角角色色成成员员、db_owner和和db_securityadmin固固定定数数据据库库角角色色成成员员才才能能利利用用系系统统存存储储过过程程创创建建、修修改改与与删删除除应应用用程程序序角角色色,但但任任何何用用户户都都可可以通过为角色提供正确的密码来激活角色。以通过为角色提供正确的密码来激活角色。应应用用程程序序角角色色使使用用之之前前首首先先要要创创建建它它,使使用用时时在在应应用用程程序序中中利利用用密密码码激激活活它它,一一

38、旦旦应应用用程程序序与与数数据据库库的的连连接接断断开开,应应用用程程序序角色将自动处于非激活状态。角色将自动处于非激活状态。1创建应用程序角色创建应用程序角色命令格式:命令格式:sp_addapprole rolename=role,password=password 命令说明:命令说明:(1)role为新建应用程序角色的名称。为新建应用程序角色的名称。(2)password为激活角色所需的密码。为激活角色所需的密码。2激活应用程序角色激活应用程序角色激活应用程序角色的工作应该在应用程序激活应用程序角色的工作应该在应用程序中进行,即在应用程序中嵌入如下语法代中进行,即在应用程序中嵌入如下语法

39、代码。码。命令格式:命令格式:sp_setapprolerolename=role,password=EncryptN password|password,encrypt=encrypt_style命令说明:命令说明:(1)role是当前数据库中已经定义的应用是当前数据库中已经定义的应用程序角色名。程序角色名。(2)password是激活应用程序角色的密码。是激活应用程序角色的密码。(3)Encrypt函数用于对密码加密,使用函数用于对密码加密,使用时必须在密码前面加上时必须在密码前面加上N以将密码转换成以将密码转换成Unicode字符串。字符串。(4)encrypt_style指定密码加密方

40、式,它指定密码加密方式,它可以取下列两值之一:可以取下列两值之一:(a)NONE,为默认值,表示密码以明文,为默认值,表示密码以明文形式传递给形式传递给SQLServer。(b)ODBC,将密码发送到,将密码发送到SQLServer之前,使用之前,使用ODBC规范规范Encrypt函函数对密码加密。该方式仅用于数对密码加密。该方式仅用于ODBC客户客户端或端或SQLServer的的OLEDB提供者。提供者。3修改应用程序角色的密码修改应用程序角色的密码命令格式:命令格式:sp_approlepassword rolename=role,newpwd=password 命令说明:命令说明:(1)

41、role 为应用程序角色的名称。为应用程序角色的名称。(2)password为应用程序角色的新为应用程序角色的新密码密码,password不能为不能为NULL。4删除应用程序角色删除应用程序角色命令格式:命令格式:sp_dropapprolerolename=role命令说明:命令说明:role表示将要删除的应用表示将要删除的应用程序角色。程序角色。13.5管管理理权权限限一个登录者若要对某个数据库进行修一个登录者若要对某个数据库进行修改或访问,必须具有相应的权限,这种权改或访问,必须具有相应的权限,这种权限涉及服务器级与数据库级的操作。权限限涉及服务器级与数据库级的操作。权限既可以直接获得,

42、也可以通过成为角色成既可以直接获得,也可以通过成为角色成员而继承角色的权限。管理权限包括授予、员而继承角色的权限。管理权限包括授予、拒绝和废除权限。拒绝和废除权限。13.5.1 权限的种类权限的种类权权限限分分为为三三种种:对对象象权权限限、语语句句权权限限和和隐隐含权限。含权限。1对象权限对象权限对象权限指对已存在的数据库对象的对象权限指对已存在的数据库对象的操作权限,包括对数据库对象的操作权限,包括对数据库对象的SELECT、INSERT、UPDATE、DELETE和和EXECUTE权限。权限。2语句权限语句权限语句权限用于创建数据库或数据库对语句权限用于创建数据库或数据库对象所涉及的活动

43、。象所涉及的活动。3隐含权限隐含权限隐含权限控制那些只能由固定角色的隐含权限控制那些只能由固定角色的成员或数据库对象所有者执行的活动。成员或数据库对象所有者执行的活动。13.5.2 使用使用T-SQL语句管理权限语句管理权限权权限限管管理理指指对对于于用用户户或或角角色色的的某某些些操操作作赋赋予予允许权限、拒绝权限、以及废除权限。允许权限、拒绝权限、以及废除权限。(1)允允许许权权限限(GRANT),表表示示用用户户或或角角色能够执行某项操作。色能够执行某项操作。(2)拒拒绝绝权权限限(DENY),表表示示用用户户或或角角色色不不能能执执行行某某项项操操作作,也也称称禁禁止止权权限。限。(3

44、)废除权限()废除权限(REVOKE),表),表示废除以前用户或角色所具有的允许权示废除以前用户或角色所具有的允许权限或拒绝权限。限或拒绝权限。1语句权限的管理语句权限的管理使使用用T-SQL允允许许、拒拒绝绝或或废废除除语语句句权权限限的的语法如下。语法如下。命令格式:命令格式:GRANT|DENY|REVOKEALL|statement,.nTOsecurity_account,.n命令说明:命令说明:(1)GRANT、DENY、REVOKE分分别表示允许、拒绝和废除语句权限的别表示允许、拒绝和废除语句权限的操作。操作。(2)ALL表示针对所有语句权限的表示针对所有语句权限的设置,只有设置

45、,只有sysadmin成员有权使用成员有权使用ALL。(3)statement表示被允许、拒绝或废除语表示被允许、拒绝或废除语句权限的语句,包括句权限的语句,包括9个语句:个语句:CREATEDATABASE、CREATEDEFAULT、CREATEFUNCTION、CREATEPROCEDURE、CREATERULE、CREATETABLE、CREATEVIEW、BACKUPDATABASE、BACKUPLOG。(4),.n表示同时可以处理多个语表示同时可以处理多个语句的权限。句的权限。(5)security_account表示当前数据库内表示当前数据库内将要被设置权限的登录账户、数据库用户

46、将要被设置权限的登录账户、数据库用户或角色。或角色。2对象权限的管理对象权限的管理使用使用T-SQL允许、禁止或废除对象权限的允许、禁止或废除对象权限的语法如下。语法如下。命令格式:命令格式:GRANT|DENY|REVOKEALLPRIVILEGES|permission,.n(column,.n)ONtable|view|ONtable|view(column,.n)|ONstored_procedure|extended_procedure|ONuser_defined_function TOsecurity_account,.n命令说明:命令说明:(1)GRANT、DENY、REVOK

47、E分别表分别表示允许、禁止或废除对象权限。示允许、禁止或废除对象权限。(2)ALL表示允许、禁止或废除所有适表示允许、禁止或废除所有适用的权限。只有用的权限。只有sysadmin、db_owner成员成员及数据库拥有者有权使用及数据库拥有者有权使用ALL。(3)PRIVILEGES,是与,是与SQL-92标准兼标准兼容而列出的可选关键字,可以省略。容而列出的可选关键字,可以省略。(4)permission表示允许、禁止或废除的表示允许、禁止或废除的对象权限。例如对象权限。例如SELECT、INSERT等。等。(5)(column,.n)ONtable|view|ONtable|view(col

48、umn,.n)表表示上述权限的作用对象,可以是表或视图,示上述权限的作用对象,可以是表或视图,也可以是表或视图的某一列或几列。可以也可以是表或视图的某一列或几列。可以使用使用“|”两边的任意一种书写格式。两边的任意一种书写格式。(6)stored_procedure、extended_procedure、user_defined_function 分别表示在当前数分别表示在当前数据库中设置权限的存储过程名、扩展存储据库中设置权限的存储过程名、扩展存储过程名、用户定义函数名。过程名、用户定义函数名。(7)TO指定安全账户列表,对于指定安全账户列表,对于REVOKE语句,可以改用语句,可以改用FR

49、OM。(8)security_account表示当前数据表示当前数据库内将要允许、禁止或废除权限的安全账库内将要允许、禁止或废除权限的安全账户,可以是户,可以是SQL账户、角色、账户、角色、Windows用用户或组。户或组。13.5.3 使用企业管理器管理权限使用企业管理器管理权限在在企企业业管管理理器器中中管管理理语语句句权权限限与与对对象象权权限限的的方方法法不不同同,语语句句权权限限是是在在数数据据库库一一级级进进行,对象权限是在数据库对象一级进行。行,对象权限是在数据库对象一级进行。1使用企业管理器管理语句权限使用企业管理器管理语句权限2使用企业管理器管理对象权限使用企业管理器管理对象权限

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁