数据库安全及访问控制.ppt

上传人:wuy****n92 文档编号:80417322 上传时间:2023-03-23 格式:PPT 页数:55 大小:519.50KB
返回 下载 相关 举报
数据库安全及访问控制.ppt_第1页
第1页 / 共55页
数据库安全及访问控制.ppt_第2页
第2页 / 共55页
点击查看更多>>
资源描述

《数据库安全及访问控制.ppt》由会员分享,可在线阅读,更多相关《数据库安全及访问控制.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、SQL Server第第16章章数据库安全及访问控制数据库安全及访问控制16.1 SQL Server安全认证模式与设置安全认证模式与设置 16.2 SQL Server登录账户的管理登录账户的管理 16.3 数据库访问权限的建立与删除数据库访问权限的建立与删除 16.4 角色管理角色管理 16.5 数据库权限管理数据库权限管理 第第16章章数据库安全及访问控制数据库安全及访问控制 16.1 SQL Server安全认证模式与设置安全认证模式与设置16.1.1 16.1.1 用户安全认证模式用户安全认证模式 16.1.2 16.1.2 设置安全认证模式设置安全认证模式 16.1 SQL Ser

2、ver安全认证模式与设置安全认证模式与设置SQL ServerSQL Server作为作为DBMSDBMS,采用了,采用了三个层次三个层次的安全控的安全控制策略:制策略:1 1、用户首先登录到数据库服务器上、用户首先登录到数据库服务器上(是是服务器合法服务器合法用户用户)2.2.然后使服务器用户(然后使服务器用户(loginlogin)成为某个)成为某个数据库的合数据库的合法用户法用户,从而能够访问数据库。,从而能够访问数据库。3.3.让数据库用户在数据库中具有一定的让数据库用户在数据库中具有一定的权限权限(数据操数据操作权、创建对象权作权、创建对象权等等)16.1.1 用户安全认证模式用户安

3、全认证模式安全帐户认证安全帐户认证是用来确认登录是用来确认登录SQL ServerSQL Server的用户的登的用户的登录帐号和密码的正确性,由此来验证其是否具有连录帐号和密码的正确性,由此来验证其是否具有连接接SQL ServerSQL Server的权限。的权限。SQL Server SQL Server 提供了两种确认用户的认证模式:提供了两种确认用户的认证模式:(一)(一)Windows NTWindows NT认证模式。认证模式。(二)混合认证模式。(二)混合认证模式。(一)(一)Windows NT认证模式认证模式SQL SQL ServerServer数数据据库库系系统统通通常

4、常运运行行在在Windows Windows NTNT服服务务器器平平台台上上,而而NTNT作作为为网网络络操操作作系系统统,本本身身就就具具备备管管理理登登录录、验验证证用用户户合合法法性性的的能能力力,因因此此Windows Windows NTNT认认证证模模式式正正是是利利用用了了这这一一用用户户安安全全性性和和帐帐号号管管理理的的机机制制,允允许许SQL SQL ServerServer也也可可以以使使用用NTNT的的用用户户名名和和口口令令。在在这这种种模模式式下下,用用户户只只需需要要通通过过Windows Windows NTNT的的认认证证,就就可可以以连连接接到到SQL S

5、QL ServerServer,而而SQL SQL ServerServer本本身身也也就就不不需需要管理一套登录数据。要管理一套登录数据。需要注意的是:登录前必须将需要注意的是:登录前必须将Windows NTWindows NT账号加入到账号加入到SQL Server SQL Server 中,中,才能采用才能采用Windows NTWindows NT账号登录到账号登录到SQL ServerSQL Server上。上。(二)混合认证模式(二)混合认证模式混合认证模式允许用户使用混合认证模式允许用户使用Windows NTWindows NT安全性或安全性或SQL SQL ServerSe

6、rver安全性连接到安全性连接到SQL ServerSQL Server。在这种方式下,对于。在这种方式下,对于可信连接用户的连接请求,系统将采用可信连接用户的连接请求,系统将采用Windwos Windwos NT/2003NT/2003认证模式,而对于非可信连接用户则采用认证模式,而对于非可信连接用户则采用SQL SQL ServerServer认证模式。采用认证模式。采用SQL ServerSQL Server模式认证时,系统检模式认证时,系统检查是否已经建立了该用户的登录标识以及二者的口令是查是否已经建立了该用户的登录标识以及二者的口令是否相同。通过认证后,用户应用程序才可连接到否相同

7、。通过认证后,用户应用程序才可连接到SQL SQL ServerServer服务器,否则系统将拒绝用户的连接请求。服务器,否则系统将拒绝用户的连接请求。客户连接请求客户连接请求认证模式认证模式Windows认证模式认证模式混合认证模式混合认证模式SQL Server登录标识登录标识登录标识和口令正确?登录标识和口令正确?有效的有效的NT/2003用户帐户?用户帐户?SQL Server拒绝用户连接拒绝用户连接SQL Server接受用户连接接受用户连接NNNYYYSQL Server对登录标识的认证过程可用下图表示:对登录标识的认证过程可用下图表示:无论采用以上哪种认证模式,在用户连接到无论采

8、用以上哪种认证模式,在用户连接到SQL ServerSQL Server后,他们的操作完全相同。比较起来,两种认证模式各后,他们的操作完全相同。比较起来,两种认证模式各有优劣:有优劣:(1 1)WindowsWindows认证更为安全。认证更为安全。(2 2)SQL ServerSQL Server认证管理较为简单,它允许应用程序认证管理较为简单,它允许应用程序的所有用户使用同一登录标识。的所有用户使用同一登录标识。为了便于用户帐户的集中管理,在为了便于用户帐户的集中管理,在Windows NT/2003Windows NT/2003平平台下,最好选用台下,最好选用WindowsWindows

9、认证模式。认证模式。16.1.2 设置安全认证模式设置安全认证模式 其主要过程如下:其主要过程如下:1.1.打打开开SSMSSSMS,用用右右键键单单击击要要设设置置认认证证模模式式的的服服务务器器,从从快快捷捷菜菜单单中中选选择择“属属性性(propertiesproperties)”选选项项,则则出出现现SQL SQL ServerServer属属性性对话框。对话框。2.2.在在SQL ServerSQL Server属性对话框中选择安全性选项。属性对话框中选择安全性选项。3.3.在在安安全全性性选选项项栏栏中中,身身份份验验证证中中可可以以选选择择要要设设置置的的认认证证模模式式,同同时

10、时审审核核级级别别中中还还可可以以选选择择跟跟踪踪记记录录用用户户登登录录时时的的哪哪种种信信息息,例如登录成功或登录失败的信息等。例如登录成功或登录失败的信息等。4.4.在在启启动动服服务务帐帐户户中中设设置置当当启启动动并并运运行行SQL SQL ServerServer时时默默认认的的登登录录者中哪一位用户。者中哪一位用户。16.2 SQL Server登录账户的管理登录账户的管理 16.2.1 Windows NT16.2.1 Windows NT登录帐户建立与删除登录帐户建立与删除 16.2.2 SQL Server16.2.2 SQL Server登录账户建立与删除登录账户建立与删

11、除 系统内置已有的登录帐号系统内置已有的登录帐号:SQL SQL ServerServer有有三三个个默默认认(内内置置)的的用用户户登登录录帐帐号号:即即sasa、builtinadministratorsbuiltinadministrators和和guestguest。SaSa:SQL ServerSQL Server验证模式的系统管理员帐号;验证模式的系统管理员帐号;builtinadministratorsbuiltinadministrators:是一个是一个windowswindows组帐号,组帐号,表示所有表示所有windowswindows系统管理员(系统管理员(Admini

12、stratorAdministrator)组中)组中的用户都可以登录到的用户都可以登录到SQL Server;SQL Server;GuestGuest:是来宾帐号。是来宾帐号。16.2.1 Windows NT登录帐户建立与删除登录帐户建立与删除1 1、建立其他新的建立其他新的Windows NT/2003Windows NT/2003账户账户 操作步骤如下:操作步骤如下:以以AdministratorsAdministrators登录到登录到Windows 2003Windows 2003;选选择择“开开始始”“”“设设置置”“控控制制面面板板”“管管理理工具工具”“”“计算机管理计算机管

13、理”;在在计计算算机机管管理理窗窗口口,选选择择“本本地地用用户户和和组组”,单单击击右右键,在快捷菜单上单击键,在快捷菜单上单击“新用户新用户”,进入如下图界面;,进入如下图界面;在在“新新用用户户”对对话话框框中中输输入入新新用用户户名名和和密密码码(这这里里用用户名是户名是mengmeng,密码是,密码是11111111););单击单击【确定确定】按钮,一个新的按钮,一个新的Windows NT/2003Windows NT/2003账户账户建立成功。建立成功。2.将将Windows NT/2003账户加入到账户加入到SQL Server中中 方法一:使用系统存储过程方法一:使用系统存储

14、过程 在在SQL SQL ServerServer中中,授授予予Windows Windows NT/2003NT/2003用用户户或或用用户户组组连连接接SQL SQL ServerServer服务器的权限。其语法格式为:服务器的权限。其语法格式为:sp_grantlogin loginame=loginsp_grantlogin loginame=login 其中,其中,loginlogin是是Windows NT/2003Windows NT/2003用户或用户组名称,其用户或用户组名称,其格式为格式为“域域 用户名称用户名称”。对于本地用户或组,则域名即为本地对于本地用户或组,则域名即

15、为本地计算机名,其格式为计算机名,其格式为“计算机名计算机名 用户名称用户名称”。方法二:使用方法二:使用 例例:将将新新建建的的Windows Windows NTNT账账户户mengmeng用用系系统统存存储储过过程程添添加加到到SQL SQL ServerServer系统中。系统中。EXEC sp_grantlogin ZUFE-MXHmengEXEC sp_grantlogin ZUFE-MXHmeng -ZUFE-MXH是计算机名,meng是Windows 2003用户 例:将例:将Windows NTWindows NT账户账户dengdeng用方法添加到用方法添加到SQL Ser

16、verSQL Server系统中系统中。3.用新建用新建Windows 2003用户登录用户登录SQL Server 如果想用新建如果想用新建Windows 2003用户登录用户登录SQL ServerSQL Server,首先,首先将登录的默认数据库选择成用户自己建立的数据库(如果默将登录的默认数据库选择成用户自己建立的数据库(如果默认数据库是认数据库是mastermaster,新建用户登录权限限制不起作用)。,新建用户登录权限限制不起作用)。在建立访问该数据库权限的基础上,然后可以在在建立访问该数据库权限的基础上,然后可以在Windows 2003中选择中选择“开始开始”“”“关机关机”,

17、注销原来的账户,注销原来的账户,用新的账户(比如用新的账户(比如meng)登录)登录Windows 2003。登录成功后,。登录成功后,启动启动SSMSSSMS就可以新的用户自动进入就可以新的用户自动进入SQL Server。4.废除废除Windows NT用户和用户和SQL Server的连接的连接 系系统统存存储储过过程程sp_grantloginsp_grantlogin所所添添加加的的登登录录标标识识均均存存储储在在SQL SQL ServerServer的的sysloginssyslogins系系统统表表中中。以以系系统统管管理理员员身身份份调调用用系系统统 存存 储储 过过 程程

18、sp_revokeloginsp_revokelogin或或 从从 ssmsssms中中 能能 够够 将将 它它 们们 从从sysloginsyslogin系系统统表表中中删删除除,这这时时在在登登录录窗窗口口中中被被删删除除的的登登录录标标识也将不再存在(需要刷新界面)。识也将不再存在(需要刷新界面)。方法一:使用系统存储过程方法一:使用系统存储过程 语法格式:语法格式:sp_revokelogin loginame=loginsp_revokelogin loginame=login 参数说明:参数说明:loginlogin是待删除的是待删除的SQL ServerSQL Server服务器

19、登录标识。服务器登录标识。方法二:使用方法二:使用ssms16.2.2 SQL Server登录账户建立与删除登录账户建立与删除 在在Windows NT/2003Windows NT/2003环境下,如果要使用环境下,如果要使用SQL SQL ServerServer登录标识登录登录标识登录SQL ServerSQL Server,首先应将,首先应将SQL SQL ServerServer的认证模式设置为混合模式。设置成混合认的认证模式设置为混合模式。设置成混合认证模式后,可以使用系统存储过程或证模式后,可以使用系统存储过程或ssmsssms创建创建SQL SQL ServerServer登

20、录标识。登录标识。1.创建创建SQL Server登录标识登录标识方法一:使用系统存储过程方法一:使用系统存储过程语法格式:语法格式:sp_addlogin loginame=loginsp_addlogin loginame=login,passwd=password,passwd=password ,defdb=database ,defdb=database,deflanguage=language,deflanguage=language ,sid=sid ,sid=sid,encryptopt=encryption_option,encryptopt=encryption_optio

21、n参数说明:参数说明:LoginLogin为为注注册册标标识识或或SQL SQL ServerServer用用户户名名,长长度度为为1 1到到128128个个字字符符,其其中中可可以以包包括括字字母、符号和数字,但不能是空字符串,不能包含母、符号和数字,但不能是空字符串,不能包含,不能与现有登录标识同名;,不能与现有登录标识同名;PasswdPasswd为口令,默认口令是为口令,默认口令是NULLNULL(即不需要口令),用户可以在任何时候使用;(即不需要口令),用户可以在任何时候使用;DatabaseDatabase指指定定用用户户在在注注册册时时连连接接到到的的默默认认数数据据库库,如如果

22、果没没有有指指定定默默认认数数据据库库,则默认数据库是则默认数据库是mastermaster;sid sid 是新建登录标识的安全标识号,一般由系统自动建立。是新建登录标识的安全标识号,一般由系统自动建立。encryption_optionencryption_option说明登录标识口令是否需要加密存储到系统表中,其数据类说明登录标识口令是否需要加密存储到系统表中,其数据类型为型为varchar(20),varchar(20),它有以下三种取值:它有以下三种取值:NULLNULL:默认设置,口令加密存储;:默认设置,口令加密存储;skip_encryptionskip_encryption:

23、要求不要加密口令。:要求不要加密口令。skip_encryption_oldskip_encryption_old:所所提提供供的的口口令令被被SQL SQL ServerServer前前期期版版本本加加密密,这这种取值主要用于早期版本数据库的升级。种取值主要用于早期版本数据库的升级。languagelanguage说明用户注册到说明用户注册到SQL ServerSQL Server时使用的默认语言代码。时使用的默认语言代码。例:创建例:创建SQL ServerSQL Server登录账户登录账户wangwang。EXEC sp_addlogin loginame=wang,passwd=12

24、34EXEC sp_addlogin loginame=wang,passwd=1234 -新建登录标识新建登录标识wangwangEXEC sp_addlogin loginame=wang1,passwd=1234,defdb=stu方法二:使用方法二:使用ssmsssmsselect*from sys.syslogins2用新建用新建SQL server登录用户登录登录用户登录SQL Server首首先先设设置置安安全全认认证证模模式式成成混混合合模模式式,再再将将登登录录的的默默认认数数据据库库选选择择成成用用户户自自己己建建立立的的数数据据库库,在在建建立立该该用用户户访访问问该该数

25、数据据库库权权限限的的基基础础上上,启启动动ssmsssms,先先断断开开原原来来的的连连接接,再再重重新新连连接接,然然后后选选择择SQL SQL serverserver身身份份认认证证,输输入入新新的的用用户户名名和和密密码码即即可可用用新新用用户身份访问户身份访问SQL ServerSQL Server。3 3、删除、删除SQL server SQL server 登录标识登录标识如如果果管管理理员员要要禁禁止止某某个个用用户户连连接接SQL SQL server server 服服务务器器,则则可可调调用用系系统存储过程统存储过程sp_droploginsp_droplogin或使用

26、或使用ssmsssms将其登录标识从系统中删除。将其登录标识从系统中删除。方法一:使用系统存储过程方法一:使用系统存储过程语法格式:语法格式:sp_droplogin loginame=loginsp_droplogin loginame=login参数说明:参数说明:loginlogin为为存存储储在在sysloginsyslogin系系统统表表中中的的SQL SQL serverserver登登录录标标识识。删删除除标标识也就是删除该用户在识也就是删除该用户在sysloginsyslogin表中的对应记录。表中的对应记录。方法二:使用方法二:使用ssmsssms删除步骤类似上述删除步骤类似

27、上述WindowsWindows账户删除。账户删除。16.3 数据库访问权限的建立与删除数据库访问权限的建立与删除 在数据库中,一个用户或工作组取得合法的登录帐号,只表明该帐号通过了Windows NT认证或者SQL Server认证,但不能表明其可以对数据库数据和数据库对象进行某种或者某些操作,只有当他同时拥有了数据库访问权限后,才能够访问数据库。16.3.1 建立用户访问数据库的权限建立用户访问数据库的权限 16.3.2 删除用户访问数据库的权限删除用户访问数据库的权限 建立用户访问数据库的权限建立用户访问数据库的权限方法一:使用系统存储过程方法一:使用系统存储过程语法格式:语法格式:sp

28、_grantdbaccesssp_grantdbaccess loginame=login loginame=login,name_in_db=name_in_db,name_in_db=name_in_db将将登登录录账账号号用用户户或或组组添添加加到到当当前前数数据据库库,使使该该用用户户能能够够具具有有在在当当前前数数据据库中执行活动的权限。库中执行活动的权限。参数说明:参数说明:loginlogin是登录标识名称或是登录标识名称或Windows NT/2003Windows NT/2003用户或用户组名称。用户或用户组名称。name_in_dbname_in_db是在数据库中为是在数据

29、库中为loginlogin参数指定登录标识所创建的用参数指定登录标识所创建的用户名称,它可以与登录名称不同,也可以相同。省略该参数时,所创建户名称,它可以与登录名称不同,也可以相同。省略该参数时,所创建的数据库用户名称与的数据库用户名称与loginlogin相同。相同。例例:将将上上述述建建立立的的Windows Windows 用用户户“ZUFE-MXHmeng”ZUFE-MXHmeng”添添加加到到“教教学管理学管理”数据库,并取名数据库,并取名MANAGERMANAGER。USE USE 教学管理教学管理GOGOEXEC sp_grantdbaccess ZUFE-MXHmeng,MAN

30、AGEREXEC sp_grantdbaccess ZUFE-MXHmeng,MANAGERGOGO注意:注意:sasa不能添加到数据库中;不能添加到数据库中;只只有有sysadminsysadmin固固定定服服务务器器角角色色、db_accessadmindb_accessadmin和和db_ownerdb_owner固固定数据库角色成员才能执行定数据库角色成员才能执行sp_grantdbaccesssp_grantdbaccess;不能从用户定义的事务中执行不能从用户定义的事务中执行sp_grantdbaccesssp_grantdbaccess。方法二:使用ssms16.3.2 删除用户

31、访问数据库的权限删除用户访问数据库的权限方法一:使用系统存储过程方法一:使用系统存储过程语法格式:语法格式:sp_revokedbaccesssp_revokedbaccess name_in_db=name_in_db name_in_db=name_in_db参数说明:参数说明:name_in_dbname_in_db是在数据库中指定登录标识所创建的用户名称。是在数据库中指定登录标识所创建的用户名称。例例16-1116-11删除删除windowswindows账户账户“ZUFE-MXHmeng”ZUFE-MXHmeng”名为名为“MANAGER”MANAGER”访问访问“教教学管理学管理”

32、数据库的访问权限。数据库的访问权限。USE USE 教学管理教学管理GOGOEXEC sp_revokedbaccess MANAGEREXEC sp_revokedbaccess MANAGERGOGO方法二:使用方法二:使用ssmsssms。16.4 角色管理角色管理 角色是一个强大的工具,可以将用户集中到一个单元中,然后对该角色是一个强大的工具,可以将用户集中到一个单元中,然后对该单元应用权限。可以建立一个角色来代表单位中一类工作人员所执单元应用权限。可以建立一个角色来代表单位中一类工作人员所执行的工作,然后给这个角色授予适当的权限。当工作人员开始工作行的工作,然后给这个角色授予适当的权

33、限。当工作人员开始工作时,只须将他们添加为该角色成员,当他们离开工作时,将他们从时,只须将他们添加为该角色成员,当他们离开工作时,将他们从该角色中删除。而不必在每个人接受或离开工作时,反复授予、拒该角色中删除。而不必在每个人接受或离开工作时,反复授予、拒绝和废除其权限。权限在用户成为角色成员时自动生效。绝和废除其权限。权限在用户成为角色成员时自动生效。管理员和数据库拥有者在设置访问权限时,应首先建立角色,并将管理员和数据库拥有者在设置访问权限时,应首先建立角色,并将访问权限集中授予角色,之后将需要拥有这一权限的用户加入到角访问权限集中授予角色,之后将需要拥有这一权限的用户加入到角色中,这些用户

34、即继承角色的访问权限。需要撤消用户的访问权限色中,这些用户即继承角色的访问权限。需要撤消用户的访问权限时,将用户从角色中删除即可。时,将用户从角色中删除即可。16.4.1 固定服务器角色固定服务器角色 权限角色名称固定角色类型执行BULK INSERT语句bulkadmin只能管理SQL Server系统的磁盘文件Diskadmin只能在服务器上创建和修改数据库Dbcreator只能管理数据库实例下运行的进程Processadmin只能管理服务器登录标识Securityadmin添加和删除连接服务器,执行某些系统存储过程Setupadmin只能执行服务器配置工作Serveradmin能够在SQ

35、L Server服务器上执行所有操作,其权限覆盖其他各种固定服务器角色所具有的权限Sysadmin 固 定 服 务 器 角 色1、查看固定服务器角色、查看固定服务器角色2、添加固定服务器角色成员、添加固定服务器角色成员3、删除固定服务器角色成员、删除固定服务器角色成员4、用、用T-SQL进行固定服务器角色成员管理进行固定服务器角色成员管理 在在SQL Server中使用以下两个存储过程来添加或删除固定服中使用以下两个存储过程来添加或删除固定服务器角色成员:务器角色成员:sp_addsrvrolemember loginame=login,rolename=role sp_dropsrvrole

36、member loginame=login,rolename=role 其中,其中,login为登录标识名称,可以为为登录标识名称,可以为SQL Server登录标识或登录标识或Windows NT用户帐户。用户帐户。role为固定服务器角色名称。为固定服务器角色名称。例如:例如:sp_addsrvrolemember ZUFE-MXHZUFE-MXH meng,sysadmin go sp_dropsrvrolemember ZUFE-MXHZUFE-MXH meng,sysadmin go16.4.2 固定数据库角色固定数据库角色禁止数据库中的检索操作Db_denydatareader 固

37、 定 数 据 库 角 色权限角色名称固定角色类型禁止修改数据库中的所有数据Db_denydatawriter能够执行数据库备份操作的权限Db_backupoperator能够管理数据库角色及其成员,管理数据库中的语句权限和对象权限,从而控制用户对数据库的访问Db_securityadmin能够在一个数据库中创建、修改或删除数据库对象Db_ddladmin能够对一个数据库的所有表执行数据更新操作Db_datawriter能够在一个数据库的所有表中检索数据Db_datareader只能管理数据库用户帐户,向数据库添加或删除Window NT/2000用户(组)和SQL Server登录标识Db_a

38、ccessadmin数据库最高权限角色,能够执行所有其他数据库角色可以执行的操作和数据库的维护、配置工作Db_owner1、查看固定数据库角色、查看固定数据库角色2、添加固定数据库角色成员、添加固定数据库角色成员3、删除固定数据库角色成员、删除固定数据库角色成员4、用、用T-SQL进行数据库角色成员管理进行数据库角色成员管理 在在SQL Server中使用以下两个存储过程来添加或删除固定数据中使用以下两个存储过程来添加或删除固定数据库角色成员和用户自定义数据库角色:库角色成员和用户自定义数据库角色:sp_addrolemember rolename=role,membername=securi

39、ty_account sp_droprolemember rolename=role,membername=security_account其中,其中,role为固定服务器角色名称或当前数据库中自定义角色名称。为固定服务器角色名称或当前数据库中自定义角色名称。security_account为待添加或删除的为待添加或删除的SQL Server登录标识、其登录标识、其他角色或他角色或Windows NT/2003用户帐户。当添加时,如果当前数据库用户帐户。当添加时,如果当前数据库中没有建立中没有建立Windows NT/2003用户帐户安全帐户,数据库用户帐户用户帐户安全帐户,数据库用户帐户被自

40、动建立。删除时,被自动建立。删除时,security_account必须为当前数据库的一个有必须为当前数据库的一个有效用户帐户。效用户帐户。sp_addrolemember Db_owner,wang5应用程序角色建立与删除应用程序角色建立与删除 前面介绍的标准角色对访问控制实现在数据库一级,它决定用前面介绍的标准角色对访问控制实现在数据库一级,它决定用户能够访问的数据库及其对象。下面介绍另一种访问控制方法户能够访问的数据库及其对象。下面介绍另一种访问控制方法应用程序角色应用程序角色。它不同于标准角色,它不是根据用户,而。它不同于标准角色,它不是根据用户,而是根据用户所运行的应用程序决定当前连

41、接能否访问数据库对是根据用户所运行的应用程序决定当前连接能否访问数据库对象。象。使用应用程序角色的直接原因有以下两个方面:使用应用程序角色的直接原因有以下两个方面:第一、限制访问数据库所使用的应用程序,提高系统安全性。第一、限制访问数据库所使用的应用程序,提高系统安全性。例如,在一个财务系统中,用户添加到数据库中的数据不希望例如,在一个财务系统中,用户添加到数据库中的数据不希望任何非法用户通过其他任何途径进行访问,而只允许通过财务任何非法用户通过其他任何途径进行访问,而只允许通过财务系统自身检验后的合法用户访问,这时使用应用程序角色就能系统自身检验后的合法用户访问,这时使用应用程序角色就能达到

42、这一目的。达到这一目的。第二、提高第二、提高SQL ServerSQL Server服务器的运行性能。因为应用程序角色服务器的运行性能。因为应用程序角色只允许指定的应用程序运行,这能避免用户在只允许指定的应用程序运行,这能避免用户在SQL ServerSQL Server服务服务器上运行其他程序,从而提高数据库系统的运行性能。器上运行其他程序,从而提高数据库系统的运行性能。(1 1)建立应用程序角色)建立应用程序角色 SQL ServerSQL Server中,只有固定服务器角色中,只有固定服务器角色sysadminsysadmin成员、固定数据成员、固定数据库角色库角色db_ownerdb_

43、owner和和db_securityadmindb_securityadmin成员才能运行以下存储成员才能运行以下存储过程创建或删除应用程序角色:过程创建或删除应用程序角色:sp_addapprole rolename=role,password=passwordsp_addapprole rolename=role,password=passwordsp_dropapprole rolename=rolesp_dropapprole rolename=role例如、例如、在教学管理数据库中建立应用程序角色在教学管理数据库中建立应用程序角色查询查询,其,其口令为口令为123123。USE 教学

44、管理教学管理GOEXEC sp_addapprole 查询查询,123GO(2 2)激活和使用应用程序角色)激活和使用应用程序角色 建立应用角色后,建立应用角色后,SQL ServerSQL Server数据库应用程序可以调用系数据库应用程序可以调用系统存储过程统存储过程sp_setapprolesp_setapprole激活角色。其语法格式为:激活角色。其语法格式为:sp_setapprole rolename=role,password=sp_setapprole rolename=role,password=Encrypt N Encrypt N password|password,en

45、crypt=encrypt_stylepassword|password,encrypt=encrypt_style其中,其中,Encrypt NEncrypt N选项要求应用程序在向选项要求应用程序在向SQL ServerSQL Server传递应传递应用程序角色口令之前,将其加密。用程序角色口令之前,将其加密。encrypt_styleencrypt_style说明加密方式,它有以下两种取值:说明加密方式,它有以下两种取值:none:none:用明文方式传递,这时默认方式;用明文方式传递,这时默认方式;odbc:odbc:使用使用ODBCODBC规范定义的规范定义的EncryptEncry

46、pt加密函数对角色口令加密函数对角色口令进行加密进行加密例如,例如,在一个客户端应用程序中可以执行以下语句激活前在一个客户端应用程序中可以执行以下语句激活前面创建的应用程序角色面创建的应用程序角色查询查询。USE 教学管理教学管理GOEXEC sp_setapprole 查询查询,123,odbcGO应用程序角色与标准角色相比,二者之间存在以下差别:应用程序角色与标准角色相比,二者之间存在以下差别:(1 1)应用程序角色不包含任何成员,而标准角色则拥有自己的应用程序角色不包含任何成员,而标准角色则拥有自己的成员。成员。(2 2)默认时,应用程序角色是无效的,只有当数据库应用程序默认时,应用程序

47、角色是无效的,只有当数据库应用程序执行系统存储过程执行系统存储过程sp_approlesp_approle,并为应用程序角色提供正确的,并为应用程序角色提供正确的口令后才激活应用程序角色。而标准角色一直保持有效。口令后才激活应用程序角色。而标准角色一直保持有效。(3 3)应用程序角色激活后,应用程序角色所拥有的访问权限才应用程序角色激活后,应用程序角色所拥有的访问权限才起作用。这时,它屏蔽掉标准角色中的访问权限。也就是说,起作用。这时,它屏蔽掉标准角色中的访问权限。也就是说,应用程序角色激活后,无论连接用户是否拥有对数据库的访问应用程序角色激活后,无论连接用户是否拥有对数据库的访问权限,权限,

48、SQL ServerSQL Server只根据应用程序角色的访问权限判断应用程只根据应用程序角色的访问权限判断应用程序能否操作指定的数据库。序能否操作指定的数据库。(4 4)在运行应用程序所建立的连接断开后,应用程序角色即随在运行应用程序所建立的连接断开后,应用程序角色即随之失去作用。之失去作用。16.5 数据库权限管理数据库权限管理 当用户成为数据库中的合法用户之后,他除了具有当用户成为数据库中的合法用户之后,他除了具有一些系统表的查询权之外,并不对数据库中的对象一些系统表的查询权之外,并不对数据库中的对象具有任何操作权,因此,下一步就需要为数据库中具有任何操作权,因此,下一步就需要为数据库

49、中的用户授予数据库对象的操作权。的用户授予数据库对象的操作权。16.5.1 权限种类权限种类 1、对象权限存储过程EXECUTE表、视图DELETE表、视图、列UPDATE表、视图INSERT表、视图、列SELECT数据库对象语句2 2、语句权限、语句权限语句权限决定用户能否操作数据库和数据对象,如表、视图、存储语句权限决定用户能否操作数据库和数据对象,如表、视图、存储过程、默认和规则等。语句权限决定用户能否执行以下语句:过程、默认和规则等。语句权限决定用户能否执行以下语句:.CREATE DATABASECREATE DATABASE:创建数据库。:创建数据库。.CREATE DEFAULT

50、.CREATE DEFAULT:在数据库中建立默认值。:在数据库中建立默认值。.CREATE PROCEDURE.CREATE PROCEDURE:在数据库中创建存储过程。:在数据库中创建存储过程。.CREATE FUNCTION.CREATE FUNCTION:在数据库中创建用户自定义函数。:在数据库中创建用户自定义函数。.CREATE RULE.CREATE RULE:在数据库中创建规则。:在数据库中创建规则。.CREATE TABLE.CREATE TABLE:在数据库中创建表。:在数据库中创建表。.CREATE VIEW.CREATE VIEW:在数据库中创建视图。:在数据库中创建视图

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

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

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

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