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

上传人:鲁** 文档编号:568401359 上传时间:2024-07-24 格式:PPT 页数:55 大小:1.04MB
返回 下载 相关 举报
数据库安全及访问控制.ppt_第1页
第1页 / 共55页
数据库安全及访问控制.ppt_第2页
第2页 / 共55页
数据库安全及访问控制.ppt_第3页
第3页 / 共55页
数据库安全及访问控制.ppt_第4页
第4页 / 共55页
数据库安全及访问控制.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《数据库安全及访问控制.ppt》由会员分享,可在线阅读,更多相关《数据库安全及访问控制.ppt(55页珍藏版)》请在金锄头文库上搜索。

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

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

3、安全认证模式用户安全认证模式安全帐户认证安全帐户认证是用来确认登录是用来确认登录SQL Server的用户的登的用户的登录帐号和密码的正确性,由此来验证其是否具有连录帐号和密码的正确性,由此来验证其是否具有连接接SQL Server的权限。的权限。 SQL Server 提供了两种确认用户的认证模式:提供了两种确认用户的认证模式:(一)一)Windows NT认证模式。认证模式。(二)混合认证模式。(二)混合认证模式。2024年7月24日 6(一)一)Windows NT认证模式认证模式SQL Server数数据据库库系系统统通通常常运运行行在在Windows NT服服务务器器平平台台上上,而

4、而NT作作为为网网络络操操作作系系统统,本本身身就就具具备备管管理理登登录录、验验证证用用户户合合法法性性的的能能力力,因因此此Windows NT认认证证模模式式正正是是利利用用了了这这一一用用户户安安全全性性和和帐帐号号管管理理的的机机制制,允允许许SQL Server也也可可以以使使用用NT的的用用户户名名和和口口令令。在在这这种种模模式式下下,用用户户只只需需要要通通过过Windows NT的的认认证证,就就可可以以连连接接到到SQL Server,而而SQL Server本身也就不需要管理一套登录数据。本身也就不需要管理一套登录数据。需要注意的是:登录前必须将需要注意的是:登录前必须

5、将Windows NTWindows NT账号加入到账号加入到SQL Server SQL Server 中,中,才能采用才能采用Windows NTWindows NT账号登录到账号登录到SQL ServerSQL Server上。上。 2024年7月24日 7(二)混合认证模式(二)混合认证模式混合认证模式允许用户使用混合认证模式允许用户使用Windows NT安全性或安全性或SQL Server安全性连接安全性连接到到SQL Server。在这种方式下,对在这种方式下,对于可信连接用户的连接请求,系统将采用于可信连接用户的连接请求,系统将采用Windwos NT/2003认证模式,而对于

6、非可信连接用户则采用认证模式,而对于非可信连接用户则采用SQL Server认证模式。采用认证模式。采用SQL Server模式认证时,系统模式认证时,系统检查是否已经建立了该用户的登录标识以及二者的口令检查是否已经建立了该用户的登录标识以及二者的口令是否相同。通过认证后,用户应用程序才可连接到是否相同。通过认证后,用户应用程序才可连接到SQL Server服务器,否则系统将拒绝用户的连接请求。服务器,否则系统将拒绝用户的连接请求。2024年7月24日 8客户连接请求客户连接请求认证模式认证模式Windows认证模式认证模式混合认证模式混合认证模式SQL Server登录标识登录标识登录标识和

7、口令正确?登录标识和口令正确?有效的有效的NT/2003用户帐户?用户帐户?SQL Server拒绝用户连接拒绝用户连接SQL Server接受用户连接接受用户连接NNNYYYSQL Server对对登录标识的认证过程可用下图表示:登录标识的认证过程可用下图表示:2024年7月24日 9无论采用以上哪种认证模式,在用户连接到无论采用以上哪种认证模式,在用户连接到SQL Server后,他们的操作完全相同。比较起来,两种认证后,他们的操作完全相同。比较起来,两种认证模式各有优劣:模式各有优劣:(1)Windows认证更为安全。认证更为安全。(2)SQL Server认证管理较为简单,它允许应用程

8、序认证管理较为简单,它允许应用程序的所有用户使用同一登录标识。的所有用户使用同一登录标识。为了便于用户帐户的集中管理,在为了便于用户帐户的集中管理,在Windows NT/2003平台下,最好选用平台下,最好选用Windows认证模式。认证模式。2024年7月24日 1016.1.2 设置安全认证模式设置安全认证模式 其主要过程如下:其主要过程如下:1. 打打开开SSMS,用用右右键键单单击击要要设设置置认认证证模模式式的的服服务务器器,从从快快捷捷菜菜单单中中选选择择“属属性性(properties)”选选项项,则则出出现现SQL Server属属性对话框。性对话框。2. 在在SQL Ser

9、ver属性对话框中选择安全性选项。属性对话框中选择安全性选项。3. 在在安安全全性性选选项项栏栏中中,身身份份验验证证中中可可以以选选择择要要设设置置的的认认证证模模式式,同同时时审审核核级级别别中中还还可可以以选选择择跟跟踪踪记记录录用用户户登登录录时时的的哪哪种种信信息息,例如登录成功或登录失败的信息等。例如登录成功或登录失败的信息等。4. 在在启启动动服服务务帐帐户户中中设设置置当当启启动动并并运运行行SQL Server时时默默认认的的登登录者中哪一位用户。录者中哪一位用户。2024年7月24日 1116.2 SQL Server登录账户的管理登录账户的管理 16.2.1 Window

10、s NT登录帐户建立与删除登录帐户建立与删除 16.2.2 SQL Server登录账户建立与删除登录账户建立与删除 2024年7月24日 12系统内置已有的登录帐号系统内置已有的登录帐号:SQL SQL ServerServer有有三三个个默默认认(内内置置)的的用用户户登登录录帐帐号号:即即sasa、 builtinbuiltinadministratorsadministrators和和guestguest。 SaSa:SQL ServerSQL Server验证模式的系统管理员帐号;验证模式的系统管理员帐号;builtinbuiltinadministratorsadministrat

11、ors: 是是一个一个windowswindows组帐号,组帐号,表示所有表示所有windowswindows系统管理员(系统管理员(AdministratorAdministrator)组中组中的用户都可以登录到的用户都可以登录到SQL Server;SQL Server;GuestGuest: :是来宾帐号。是来宾帐号。 2024年7月24日 1316.2.1 Windows NT登录帐户建立与删除登录帐户建立与删除1 1、建立其他新的建立其他新的Windows NT/2003账户账户 操作步骤如下:操作步骤如下:以以AdministratorsAdministrators登录到登录到Wi

12、ndows 2003Windows 2003; 选选择择“开开始始”“”“设设置置” ” “控控制制面面板板” ” “管管理理工具工具” “” “计算机管理计算机管理”;在在计计算算机机管管理理窗窗口口,选选择择“本本地地用用户户和和组组”,单单击击右右键,在快捷菜单上单击键,在快捷菜单上单击“新用户新用户”,进入如下图界面;,进入如下图界面;在在“新新用用户户”对对话话框框中中输输入入新新用用户户名名和和密密码码(这这里里用用户名是户名是mengmeng,密码是密码是11111111););单击单击【确定确定】按钮,一个新的按钮,一个新的Windows NT/2003Windows NT/2

13、003账户账户建立成功。建立成功。 2024年7月24日 142024年7月24日 152.将将Windows NT/2003账户加入到账户加入到SQL Server中中 方法一:使用系统存储过程方法一:使用系统存储过程 在在SQL SQL ServerServer中中,授授予予Windows Windows NT/2003NT/2003用用户户或或用用户户组组连连接接SQL SQL ServerServer服务器的权限。其语法格式为:服务器的权限。其语法格式为:sp_grantloginsp_grantlogin loginameloginame=login=login 其中,其中, log

14、inlogin是是Windows NT/2003Windows NT/2003用户或用户组名称,其用户或用户组名称,其格式为格式为“域域 用户名称用户名称” ” 。对于本地用户或组,则域名即为本地对于本地用户或组,则域名即为本地计算机名,其格式为计算机名,其格式为“计算机名计算机名 用户名称用户名称”。 方法二:使用方法二:使用 2024年7月24日 16例例:将将新新建建的的Windows Windows NTNT账账户户mengmeng用用系系统统存存储储过过程程添添加加到到SQL SQL ServerServer系统中。系统中。 EXEC EXEC sp_grantloginsp_gra

15、ntlogin ZUFE-MXH ZUFE-MXHmengmeng - ZUFE-MXH是计算机名,meng是Windows 2003用户 例:将例:将Windows NTWindows NT账户账户dengdeng用方法添加到用方法添加到SQL ServerSQL Server系统中系统中 。2024年7月24日 173.用新建用新建Windows 2003用户登录用户登录SQL Server 如果想用新建如果想用新建Windows 2003用户登录用户登录SQL ServerSQL Server,首先首先将登录的默认数据库选择成用户自己建立的数据库(如果默将登录的默认数据库选择成用户自己建

16、立的数据库(如果默认数据库是认数据库是mastermaster,新建用户登录权限限制不起作用)。新建用户登录权限限制不起作用)。 在建立访问该数据库权限的基础上,然后可以在在建立访问该数据库权限的基础上,然后可以在Windows 2003中选择中选择“开始开始”“”“关机关机”,注销原来的账户,注销原来的账户,用新的账户(比如用新的账户(比如meng)登录登录Windows 2003。登录成功后,。登录成功后,启动启动SSMSSSMS就可以新的用户自动进入就可以新的用户自动进入SQL Server。 2024年7月24日 184.废除废除Windows NT用户和用户和SQL Server的连

17、接的连接 系系统统存存储储过过程程sp_grantloginsp_grantlogin所所添添加加的的登登录录标标识识均均存存储储在在SQL SQL ServerServer的的sysloginssyslogins系系统统表表中中。以以系系统统管管理理员员身身份份调调用用系系统统 存存 储储 过过 程程 sp_revokeloginsp_revokelogin或或 从从 ssmsssms中中 能能 够够 将将 它它 们们 从从sysloginsyslogin系系统统表表中中删删除除,这这时时在在登登录录窗窗口口中中被被删删除除的的登登录录标标识也将不再存在(需要刷新界面)。识也将不再存在(需要

18、刷新界面)。方法一:使用系统存储过程方法一:使用系统存储过程 语法格式:语法格式: sp_revokeloginsp_revokelogin loginameloginame=login=login 参数说明:参数说明: loginlogin是待删除的是待删除的SQL ServerSQL Server服务器登录标识。服务器登录标识。 方法二:使用方法二:使用ssms2024年7月24日 1916.2.2 SQL Server登录账户建立与删除登录账户建立与删除 在在Windows NT/2003Windows NT/2003环境下,如果要使用环境下,如果要使用SQL SQL ServerSer

19、ver登录标识登录登录标识登录SQL ServerSQL Server,首先应首先应将将SQL SQL ServerServer的认证模式设置为混合模式。设置成混合认的认证模式设置为混合模式。设置成混合认证模式后,可以使用系统存储过程或证模式后,可以使用系统存储过程或ssmsssms创建创建SQL SQL ServerServer登录标识。登录标识。 2024年7月24日 201.创建创建SQL Server登录标识登录标识方法一:使用系统存储过程方法一:使用系统存储过程语法格式:语法格式:sp_addloginsp_addlogin loginameloginame=login=login,

20、passwdpasswd=password=password , ,defdbdefdb=database=database,deflanguagedeflanguage=language=language , ,sidsid=sidsid,encryptoptencryptopt=encryption_option=encryption_option2024年7月24日 21参数说明:参数说明:LoginLogin为为注注册册标标识识或或SQL SQL ServerServer用用户户名名,长长度度为为1 1到到128128个个字字符符,其其中中可可以以包包括括字字母、符号和数字,但不能是空

21、字符串,不能包含母、符号和数字,但不能是空字符串,不能包含,不能与现有登录标识同名;,不能与现有登录标识同名; PasswdPasswd为口令,默认口令是为口令,默认口令是NULLNULL(即不需要口令),用户可以在任何时候使用;即不需要口令),用户可以在任何时候使用; DatabaseDatabase指指定定用用户户在在注注册册时时连连接接到到的的默默认认数数据据库库,如如果果没没有有指指定定默默认认数数据据库库,则默认数据库是则默认数据库是mastermaster; sidsid 是新建登录标识的安全标识号,一般由系统自动建立。是新建登录标识的安全标识号,一般由系统自动建立。encrypt

22、ion_optionencryption_option说明登录标识口令是否需要加密存储到系统表中,其数据类说明登录标识口令是否需要加密存储到系统表中,其数据类型为型为varchar(20),varchar(20),它有以下三种取值:它有以下三种取值: NULLNULL:默认设置,口令加密存储;默认设置,口令加密存储; skip_encryptionskip_encryption:要求不要加密口令。要求不要加密口令。 skip_encryption_oldskip_encryption_old:所所提提供供的的口口令令被被SQL SQL ServerServer前前期期版版本本加加密密,这这种取

23、值主要用于早期版本数据库的升级。种取值主要用于早期版本数据库的升级。languagelanguage说明用户注册到说明用户注册到SQL ServerSQL Server时使用的默认语言代码。时使用的默认语言代码。 2024年7月24日 22例:创建例:创建SQL ServerSQL Server登录账户登录账户wangwang。EXEC EXEC sp_addloginsp_addlogin loginameloginame= = wangwang, , passwdpasswd=1234=1234 -新建登录标识新建登录标识wangwangEXEC sp_addlogin loginame=

24、 wang1, passwd=1234 ,defdb=stu方法二:使用方法二:使用ssmsssmsselect * from sys.syslogins2024年7月24日 232用新建用新建SQL server登录用户登录登录用户登录SQL Server首首先先设设置置安安全全认认证证模模式式成成混混合合模模式式,再再将将登登录录的的默默认认数数据据库库选选择择成成用用户户自自己己建建立立的的数数据据库库,在在建建立立该该用用户户访访问问该该数数据据库库权权限限的的基基础础上上,启启动动ssmsssms,先先断断开开原原来来的的连连接接,再再重重新新连连接接,然然后后选选择择SQL SQL

25、 serverserver身身份份认认证证,输输入入新新的的用用户户名名和和密密码码即即可可用用新新用用户身份访问户身份访问SQL ServerSQL Server。2024年7月24日 243 3、删除、删除SQL server SQL server 登录标识登录标识如如果果管管理理员员要要禁禁止止某某个个用用户户连连接接SQL SQL server server 服服务务器器,则则可可调调用用系系统存储过程统存储过程sp_droploginsp_droplogin或使用或使用ssmsssms将其登录标识从系统中删除。将其登录标识从系统中删除。方法一:使用系统存储过程方法一:使用系统存储过程

26、语法格式:语法格式:sp_droploginsp_droplogin loginameloginame = login = login参数说明:参数说明:loginlogin为为存存储储在在sysloginsyslogin系系统统表表中中的的SQL SQL serverserver登登录录标标识识。删删除除标标识也就是删除该用户在识也就是删除该用户在sysloginsyslogin表中的对应记录。表中的对应记录。方法二:使用方法二:使用ssmsssms删除步骤类似上述删除步骤类似上述WindowsWindows账户删除。账户删除。 2024年7月24日 2516.3 数据库访问权限的建立与删除

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

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

29、用参数指定登录标识所创建的用户名称,它可以与登录名称不同,也可以相同。省略该参数时,所创建户名称,它可以与登录名称不同,也可以相同。省略该参数时,所创建的数据库用户名称与的数据库用户名称与loginlogin相同。相同。 2024年7月24日 27例例:将将上上述述建建立立的的Windows Windows 用用户户“ZUFE-MXHZUFE-MXHmengmeng” ” 添添加加到到“教教学管理学管理”数据库,并取名数据库,并取名MANAGERMANAGER。USE USE 教学管理教学管理GOGOEXEC EXEC sp_grantdbaccesssp_grantdbaccess ZUFE

30、-MXH ZUFE-MXHmengmeng, MANAGER, MANAGERGOGO注意:注意:sasa不能添加到数据库中;不能添加到数据库中;只只有有sysadminsysadmin固固定定服服务务器器角角色色、db_accessadmindb_accessadmin和和db_ownerdb_owner固固定数据库角色成员才能执行定数据库角色成员才能执行sp_grantdbaccesssp_grantdbaccess;不能从用户定义的事务中执行不能从用户定义的事务中执行sp_grantdbaccesssp_grantdbaccess。方法二:使用ssms2024年7月24日 2816.3.

31、2 删除用户访问数据库的权限删除用户访问数据库的权限方法一:使用系统存储过程方法一:使用系统存储过程语法格式:语法格式: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-MXHZUFE-MXHmengmeng” ” 名为名为“MANAGER”MANAGER”访问访问“教

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

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

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

35、tupadmin只能执行服务器配置工作Serveradmin能够在SQL Server服务器上执行所有操作,其权限覆盖其他各种固定服务器角色所具有的权限Sysadmin 固 定 服 务 器 角 色2024年7月24日 311、查看固定服务器角色、查看固定服务器角色2、添加固定服务器角色成员、添加固定服务器角色成员3、删除固定服务器角色成员、删除固定服务器角色成员2024年7月24日 324、用、用T-SQL进行固定服务器角色成员管理进行固定服务器角色成员管理 在在SQL Server中使用以下两个存储过程来添加或删除固定服中使用以下两个存储过程来添加或删除固定服务器角色成员:务器角色成员: s

36、p_addsrvrolemember loginame=login,rolename=role sp_dropsrvrolemember loginame=login,rolename=role 其中,其中,login为登录标识名称,可以为为登录标识名称,可以为SQL Server登录标识或登录标识或Windows NT用户帐户。用户帐户。 role为固定服务器角色名称。为固定服务器角色名称。例如:例如: sp_addsrvrolemember ZUFE-MXHZUFE-MXH meng,sysadmin go sp_dropsrvrolemember ZUFE-MXHZUFE-MXH men

37、g,sysadmin go2024年7月24日 3316.4.2 固定数据库角色固定数据库角色禁止数据库中的检索操作Db_denydatareader 固 定 数 据 库 角 色权限角色名称固定角色类型禁止修改数据库中的所有数据Db_denydatawriter能够执行数据库备份操作的权限Db_backupoperator能够管理数据库角色及其成员,管理数据库中的语句权限和对象权限,从而控制用户对数据库的访问Db_securityadmin能够在一个数据库中创建、修改或删除数据库对象Db_ddladmin能够对一个数据库的所有表执行数据更新操作Db_datawriter能够在一个数据库的所有表

38、中检索数据Db_datareader只能管理数据库用户帐户,向数据库添加或删除Window NT/2000用户(组)和SQL Server登录标识Db_accessadmin数据库最高权限角色,能够执行所有其他数据库角色可以执行的操作和数据库的维护、配置工作Db_owner2024年7月24日 341、查看固定数据库角色、查看固定数据库角色2、添加固定数据库角色成员、添加固定数据库角色成员3、删除固定数据库角色成员、删除固定数据库角色成员2024年7月24日 354、用、用T-SQL进行数据库角色成员管理进行数据库角色成员管理 在在SQL Server中使用以下两个存储过程来添加或删除固定数据

39、中使用以下两个存储过程来添加或删除固定数据库角色成员和用户自定义数据库角色:库角色成员和用户自定义数据库角色: sp_addrolemember rolename=role,membername=security_account sp_droprolemember rolename=role,membername=security_account其中,其中,role为固定服务器角色名称或当前数据库中自定义角色名称为固定服务器角色名称或当前数据库中自定义角色名称。 security_account为待添加或删除的为待添加或删除的SQL Server登录标识、其登录标识、其他角色或他角色或Wind

40、ows NT/2003用户帐户。当添加时,如果当前数据库用户帐户。当添加时,如果当前数据库中没有建立中没有建立Windows NT/2003用户帐户安全帐户,数据库用户帐户用户帐户安全帐户,数据库用户帐户被自动建立。删除时,被自动建立。删除时,security_account必须为当前数据库的一个有必须为当前数据库的一个有效用户帐户。效用户帐户。 sp_addrolemember Db_owner,wang2024年7月24日 365应用程序角色建立与删除应用程序角色建立与删除 前面介绍的标准角色对访问控制实现在数据库一级,它决定用前面介绍的标准角色对访问控制实现在数据库一级,它决定用户能够访

41、问的数据库及其对象。下面介绍另一种访问控制方法户能够访问的数据库及其对象。下面介绍另一种访问控制方法应用程序角色应用程序角色。它不同于标准角色,它不是根据用户,而。它不同于标准角色,它不是根据用户,而是根据用户所运行的应用程序决定当前连接能否访问数据库对是根据用户所运行的应用程序决定当前连接能否访问数据库对象。象。使用应用程序角色的直接原因有以下两个方面:使用应用程序角色的直接原因有以下两个方面: 第一、限制访问数据库所使用的应用程序,提高系统安全性。第一、限制访问数据库所使用的应用程序,提高系统安全性。例如,在一个财务系统中,用户添加到数据库中的数据不希望例如,在一个财务系统中,用户添加到数

42、据库中的数据不希望任何非法用户通过其他任何途径进行访问,而只允许通过财务任何非法用户通过其他任何途径进行访问,而只允许通过财务系统自身检验后的合法用户访问,这时使用应用程序角色就能系统自身检验后的合法用户访问,这时使用应用程序角色就能达到这一目的。达到这一目的。 第二、提高第二、提高SQL Server服务器的运行性能。因为应用程序角服务器的运行性能。因为应用程序角色只允许指定的应用程序运行,这能避免用户在色只允许指定的应用程序运行,这能避免用户在SQL Server服务器上运行其他程序,从而提高数据库系统的运行性能。服务器上运行其他程序,从而提高数据库系统的运行性能。2024年7月24日 3

43、7(1)建立应用程序角色建立应用程序角色 SQL Server中,只有固定服务器角色中,只有固定服务器角色sysadmin成员、固定成员、固定数据库角色数据库角色db_owner和和db_securityadmin成员才能运行成员才能运行以下存储过程创建或删除应用程序角色:以下存储过程创建或删除应用程序角色:sp_addapprole rolename=role,password=passwordsp_dropapprole rolename=role例如、例如、在教学管理数据库中建立应用程序角色在教学管理数据库中建立应用程序角色查询查询,其,其口令为口令为123123。USE 教学管理教学管

44、理GOEXEC sp_addapprole 查询查询,123GO2024年7月24日 38(2)激活和使用应用程序角色)激活和使用应用程序角色 建立应用角色后,建立应用角色后,SQL Server数据库应用程序可以调用数据库应用程序可以调用系统存储过程系统存储过程sp_setapprole激活角色。其语法格式为:激活角色。其语法格式为:sp_setapprole rolename=role,password= Encrypt N password|password,encrypt=encrypt_style其中,其中,Encrypt N选项要求应用程序在向选项要求应用程序在向SQL Serve

45、r传传递应用程序角色口令之前,将其加密。递应用程序角色口令之前,将其加密。 encrypt_style说明加密方式,它有以下两种取值:说明加密方式,它有以下两种取值: none:用明文方式传递,这时默认方式;用明文方式传递,这时默认方式; odbc:使用使用ODBC规范定义的规范定义的Encrypt加密函数对角色口加密函数对角色口令进行加密令进行加密2024年7月24日 39例如,例如,在一个客户端应用程序中可以执行以下语句激活前在一个客户端应用程序中可以执行以下语句激活前面创建的应用程序角色面创建的应用程序角色查询查询。USE 教学管理教学管理GOEXEC sp_setapprole 查询查

46、询,123,odbcGO2024年7月24日 40应用程序角色与标准角色相比,二者之间存在以下差别:应用程序角色与标准角色相比,二者之间存在以下差别:(1)应用程序角色不包含任何成员,而标准角色则拥有自己的应用程序角色不包含任何成员,而标准角色则拥有自己的成员。成员。(2)默认时,应用程序角色是无效的,只有当数据库应用程序默认时,应用程序角色是无效的,只有当数据库应用程序执行系统存储过程执行系统存储过程sp_approle,并为应用程序角色提供正确并为应用程序角色提供正确的口令后才激活应用程序角色。而标准角色一直保持有效。的口令后才激活应用程序角色。而标准角色一直保持有效。(3)应用程序角色激

47、活后,应用程序角色所拥有的访问权限才应用程序角色激活后,应用程序角色所拥有的访问权限才起作用。这时,它屏蔽掉标准角色中的访问权限。也就是说,起作用。这时,它屏蔽掉标准角色中的访问权限。也就是说,应用程序角色激活后,无论连接用户是否拥有对数据库的访问应用程序角色激活后,无论连接用户是否拥有对数据库的访问权限,权限,SQL Server只根据应用程序角色的访问权限判断应用只根据应用程序角色的访问权限判断应用程序能否操作指定的数据库。程序能否操作指定的数据库。(4)在运行应用程序所建立的连接断开后,应用程序角色即随在运行应用程序所建立的连接断开后,应用程序角色即随之失去作用。之失去作用。2024年7

48、月24日 4116.5 数据库权限管理数据库权限管理 当当用户成为数据库中的合法用户之后,他除了具有用户成为数据库中的合法用户之后,他除了具有一些系统表的查询权之外,并不对数据库中的对象一些系统表的查询权之外,并不对数据库中的对象具有任何操作权,因此,下一步就需要为数据库中具有任何操作权,因此,下一步就需要为数据库中的用户授予数据库对象的操作权。的用户授予数据库对象的操作权。2024年7月24日 4216.5.1 权限种类权限种类 1、对象权限存储过程EXECUTE表、视图DELETE表、视图、列UPDATE表、视图INSERT表、视图、列SELECT数据库对象语句2024年7月24日 432

49、、语句权限、语句权限语句权限决定用户能否操作数据库和数据对象,如表、视图、存储语句权限决定用户能否操作数据库和数据对象,如表、视图、存储过程、默认和规则等。语句权限决定用户能否执行以下语句:过程、默认和规则等。语句权限决定用户能否执行以下语句:. CREATE DATABASE:创建数据库。创建数据库。. CREATE DEFAULT:在数据库中建立默认值。在数据库中建立默认值。. CREATE PROCEDURE:在数据库中创建存储过程。在数据库中创建存储过程。. CREATE FUNCTION:在数据库中创建用户自定义函数。在数据库中创建用户自定义函数。. CREATE RULE:在数据库

50、中创建规则。在数据库中创建规则。. CREATE TABLE:在数据库中创建表。在数据库中创建表。. CREATE VIEW:在数据库中创建视图。在数据库中创建视图。. BACKUP DATABASE:备份数据库。备份数据库。. BACKUP LOG:备份数据库日志。备份数据库日志。在在SQL ServerSQL Server中,每个数据库都有各自独立的权限保护,所以对于中,每个数据库都有各自独立的权限保护,所以对于不同的数据库要分别向用户授予语句权限。(不同的数据库要分别向用户授予语句权限。(CREATE DATABASE CREATE DATABASE 除除外)。外)。2024年7月24日

51、 443、隐含权限、隐含权限是指系统安装以后有些用户和角色不必授权就有的许可。是指系统安装以后有些用户和角色不必授权就有的许可。SQL Server预定义的固定服务器角色、固定数据库角色预定义的固定服务器角色、固定数据库角色和数据库对象所有者均具有隐含权限。和数据库对象所有者均具有隐含权限。2024年7月24日 4516.5.2 权限管理权限管理 GRANT:有权操作有权操作REVOKE:无权操作无权操作DENY:不能操作不能操作2024年7月24日 461、使用、使用ssms管理权限管理权限2024年7月24日 472、使用、使用T-SQL管理权限管理权限T-SQL中的权限管理语句有以下三种

52、:中的权限管理语句有以下三种:. GRANT:允许权限。允许权限。. DENY:禁止权限。禁止权限。. REVOKE:取消允许权限或禁止权限设置。取消允许权限或禁止权限设置。由于由于SQL Server预定义角色的隐含权限是固定的,所预定义角色的隐含权限是固定的,所以不能使用以上语句重新设置,权限管理语句只能设以不能使用以上语句重新设置,权限管理语句只能设置用户、角色等权限。置用户、角色等权限。2024年7月24日 48(1 1)语句权限管理)语句权限管理语句授权的命令格式是:语句授权的命令格式是: GRANTALL|statement_listTOPUBLIC|name_list DENY

53、ALL|statement_listTOPUBLIC|name_list REVOKE ALL|statement_listFROM PUBLIC|name_listALL即全部语句,即全部语句,只有系统管理员可以使用此选项,因为只有只有系统管理员可以使用此选项,因为只有系统管理员可以授予或收回系统管理员可以授予或收回CREATE DATABASE的权限;的权限;statement_list给出授权的语句列表,这些语句可以是给出授权的语句列表,这些语句可以是CREATE DATABASE (如果执行这个语句的用户是系统管理如果执行这个语句的用户是系统管理员)、员)、CREATE DEFAULT

54、、CREATE PROCEDURE、CREATE FUNCTION、CREATE RULE、CREATE TABLE、CREATE VIEW、BACKUP DATABASE和和DUMP TRANSACTION等;等; PUBLIC说明这些语句的执行权限将授予所有的用户;说明这些语句的执行权限将授予所有的用户; name_list是数据库用户名或组名或角色名,说明这些语句的执是数据库用户名或组名或角色名,说明这些语句的执行权限授予哪些用户或组。行权限授予哪些用户或组。2024年7月24日 49例例1系系统统管管理理员员授授予予注注册册名名为为meng的的用用户户CREATE DATABASE的权

55、限。的权限。USE masterGO GRANT CREATE DATABASE TO mengGO例例2授予用户授予用户STU_MANAGERSTU_MANAGER(ZUFE-MXHZUFE-MXHmengmeng登录标识的名登录标识的名称)具有创建表的权限。称)具有创建表的权限。USE 教学管理教学管理GO GRANT CREATE TABLE TO MANAGERGO2024年7月24日 502 2、 对象权限管理对象权限管理数据库对象的授权命令格式是:数据库对象的授权命令格式是:GRANTALL|Permission_list ON table_name(colume_list)|vi

56、ew_name(column_list)| stored_procedure_name|extended_stored_procedure_name| user_defined_function TO PUBLIC|name_list WITH GRANT OPTION as group|role其中:其中:ALL说说明明将将指指定定对对象象的的所所有有操操作作权权限限都都授授予予指指定定的的用用户户,只只有有sysadmin、db_owner角角色色成成员员和和数数据据库库对对象象所所有有者者才才可可以以使用使用all选项;选项;permission_list是权限列表。是权限列表。.AS

57、group|role:用户可以从多个角色或组中继承权限,在用户可以从多个角色或组中继承权限,在GRANT和和REVOKE语句中使用语句中使用AS选项说明他们要管理的用选项说明他们要管理的用户从哪个角色或组继承权限。户从哪个角色或组继承权限。2024年7月24日 51DENY ALL|Permission_list ON table_name(colume_list)|view_name(column_list)| stored_procedure_name|extended_stored_procedure_name| user_defined_function TO PUBLIC|name_

58、list CASCADE数据库对象的拒绝权限的命令格式是:数据库对象的拒绝权限的命令格式是:DENY 语句中的语句中的CASCADE选项有以下两个作用:选项有以下两个作用:. 授予用户禁止权限。授予用户禁止权限。. 如果用户拥有如果用户拥有WITH GRANT OPTION权限,则撤消该权限。如果用权限,则撤消该权限。如果用户已使用户已使用WITH GRANT OPTION权限授予其他用户权限,则同时撤消权限授予其他用户权限,则同时撤消其他用户的权限。其他用户的权限。. 如果指定用户拥有如果指定用户拥有WITH GRANT OPTION权限,但权限,但DENY语句中没语句中没有使用有使用CAS

59、CADE选项时,将导致选项时,将导致DENY语句运行错误。语句运行错误。GRANT SELECT ON STUDENT TO publicDENY SELECT ON STUDENT TO ma,更新更新2024年7月24日 52REVOKE GRANT OPTION FOR ALL|Permission_list ON table_name(colume_list)|view_name(column_list)| stored_procedure_name|extended_stored_procedure_name|user_defined_functionFROM PUBLIC|name

60、_list CASCADE as group|role数据库对象的撤消权限的命令格式是:数据库对象的撤消权限的命令格式是:2024年7月24日 53REVOKE语句中的语句中的GRANT OPTION FOR选项有以下两选项有以下两种作用:种作用:. 如果如果REVOKE语句所撤消的对象权限语句所撤消的对象权限是是GRANT语句使语句使用用WITH GRANT OPTION 选项授予用户的,则选项授予用户的,则REVOKE语句撤消用户所得到的该对象权限的转授权限,语句撤消用户所得到的该对象权限的转授权限,但但GRANT语句授予用户的对象权限仍然保留。此外,如语句授予用户的对象权限仍然保留。此外

61、,如果该用户已经使用转授权限向其他用户授予他所得到的对果该用户已经使用转授权限向其他用户授予他所得到的对象权限,象权限,REVOKE语句将一并撤消这些用户所得到的权限。语句将一并撤消这些用户所得到的权限。这时,在这时,在REVOKE语句中必须同时使用语句中必须同时使用CASCADE选项。选项。. 如果如果REVOKE语句所撤消的对象权限不是语句所撤消的对象权限不是GRANT语句语句使用使用WITH GRANT OPTION 选项授予用户的,则选项授予用户的,则REVOKE语句撤消用户所得到的对象权限。这时,在语句撤消用户所得到的对象权限。这时,在REVOKE语句中必须不使用语句中必须不使用CA

62、SCADE。2024年7月24日 54 例:授授予予角角色色教教师师具具有有查查询询学学生生资资料料表表STUDENTSTUDENT、课课程程资资料料表表COURSECOURSE、教教师师资资料料表表TEACHERTEACHER、开开课课计计划划表表OFFERINGOFFERING和和注册选课表注册选课表ENROLLMENTENROLLMENT的权限。的权限。 USE 教学管理教学管理 GO GRANT SELECT ON STUDENT TO 教师教师 GRANT SELECT ON COURSE TO 教师教师 GRANT SELECT ON TEACHER TO 教师教师 GRANT SELECT ON OFFERING TO 教师教师 GRANT SELECT ON ENROLLMENT TO 教教师师 2024年7月24日 55Thank You !Thank You !

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

最新文档


当前位置:首页 > 高等教育 > 研究生课件

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