数据库安全及访问控制_第1页
数据库安全及访问控制_第2页
数据库安全及访问控制_第3页
数据库安全及访问控制_第4页
数据库安全及访问控制_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、1.2 16.1.2 设置安全认证模式设置安全认证模式 编辑ppt16.1 SQL Server16.1 SQL Server安全认证模式与设置安全认证模式与设置SQL ServerSQL Server作为作为DBMSDBMS,采用了,采用了三个层次三个层次的安全控的安全控制策略:制策略:1 1、用户首先登录到数据库服务器上、用户首先登录到数据库服务器上( (是是服务器合法服务器合法用户用户) )2. 2. 然后使服务器用户(然后使服务器用户(loginlogin)成为某个)成为某个数据库的数据库的合法用户合法用户,从而能够访问数据库。,从而能够访问数据库。3. 3. 让数据库用户在数据库中具

3、有一定的让数据库用户在数据库中具有一定的权限权限( (数据数据操作权、创建对象权操作权、创建对象权等等) )编辑ppt16.1.1 16.1.1 用户安全认证模式用户安全认证模式安全帐户认证安全帐户认证是用来确认登录是用来确认登录SQL ServerSQL Server的用户的登的用户的登录帐号和密码的正确性,由此来验证其是否具有连录帐号和密码的正确性,由此来验证其是否具有连接接SQL ServerSQL Server的权限。的权限。 SQL Server SQL Server 提供了两种确认用户的认证模式:提供了两种确认用户的认证模式:(一)(一)Windows NTWindows NT认证

4、模式。认证模式。(二)混合认证模式。(二)混合认证模式。编辑ppt(一)(一)Windows NTWindows NT认证模式认证模式SQL ServerSQL Server数据库系统通常运行在数据库系统通常运行在Windows NTWindows NT服务器平台上,服务器平台上,而而NTNT作为网络操作系统,本身就具备管理登录、验证用户合作为网络操作系统,本身就具备管理登录、验证用户合法性的能力,因此法性的能力,因此Windows NTWindows NT认证模式正是利用了这一用户认证模式正是利用了这一用户安全性和帐号管理的机制,允许安全性和帐号管理的机制,允许SQL ServerSQL S

5、erver也可以使用也可以使用NTNT的的用户名和口令。在这种模式下,用户只需要通过用户名和口令。在这种模式下,用户只需要通过Windows NTWindows NT的认证,就可以连接到的认证,就可以连接到SQL ServerSQL Server,而,而SQL ServerSQL Server本身也就本身也就不需要管理一套登录数据。不需要管理一套登录数据。需要注意的是:登录前必须将需要注意的是:登录前必须将Windows NTWindows NT账号加入到账号加入到SQL Server SQL Server 中,中,才能采用才能采用Windows NTWindows NT账号登录到账号登录到S

6、QL ServerSQL Server上。上。 编辑ppt(二)混合认证模式(二)混合认证模式混合认证模式允许用户使用混合认证模式允许用户使用Windows NTWindows NT安全性或安全性或SQL SQL ServerServer安全性连接到安全性连接到SQL ServerSQL Server。在这种方式下,对于。在这种方式下,对于可信连接用户的连接请求,系统将采用可信连接用户的连接请求,系统将采用Windwos Windwos NT/2003NT/2003认证模式,而对于非可信连接用户则采用认证模式,而对于非可信连接用户则采用SQL SQL ServerServer认证模式。采用认证

7、模式。采用SQL ServerSQL Server模式认证时,系统检模式认证时,系统检查是否已经建立了该用户的登录标识以及二者的口令是查是否已经建立了该用户的登录标识以及二者的口令是否相同。通过认证后,用户应用程序才可连接到否相同。通过认证后,用户应用程序才可连接到SQL SQL ServerServer服务器,否则系统将拒绝用户的连接请求。服务器,否则系统将拒绝用户的连接请求。编辑ppt客户连接请求客户连接请求认证模式认证模式Windows认证模式认证模式混合认证模式混合认证模式SQL Server登录标识登录标识登录标识和口令正确?登录标识和口令正确?有效的有效的NT/2003用户帐户?用

8、户帐户?SQL Server拒绝用户连接拒绝用户连接SQL Server接受用户连接接受用户连接NNNYYYSQL Server对登录标识的认证过程可用下图表示:对登录标识的认证过程可用下图表示:编辑ppt无论采用以上哪种认证模式,在用户连接到无论采用以上哪种认证模式,在用户连接到SQL ServerSQL Server后,他们的操作完全相同。比较起来,两种认证模式各后,他们的操作完全相同。比较起来,两种认证模式各有优劣:有优劣:(1 1)WindowsWindows认证更为安全。认证更为安全。(2 2)SQL ServerSQL Server认证管理较为简单,它允许应用程序认证管理较为简单,

9、它允许应用程序的所有用户使用同一登录标识。的所有用户使用同一登录标识。为了便于用户帐户的集中管理,在为了便于用户帐户的集中管理,在Windows NT/2003Windows NT/2003平平台下,最好选用台下,最好选用WindowsWindows认证模式。认证模式。编辑ppt16.1.2 16.1.2 设置安全认证模式设置安全认证模式 其主要过程如下:其主要过程如下:1. 1. 打开打开SSMSSSMS,用右键单击要设置认证模式的服务器,从快捷菜,用右键单击要设置认证模式的服务器,从快捷菜单中选择单中选择“属性属性(propertiesproperties)”选项,则出现选项,则出现SQL

10、 ServerSQL Server属性对话框。属性对话框。2. 2. 在在SQL ServerSQL Server属性对话框中选择安全性选项。属性对话框中选择安全性选项。3. 3. 在安全性选项栏中,身份验证中可以选择要设置的认证模式,在安全性选项栏中,身份验证中可以选择要设置的认证模式,同时审核级别中还可以选择跟踪记录用户登录时的哪种信息,同时审核级别中还可以选择跟踪记录用户登录时的哪种信息,例如登录成功或登录失败的信息等。例如登录成功或登录失败的信息等。4. 4. 在启动服务帐户中设置当启动并运行在启动服务帐户中设置当启动并运行SQL ServerSQL Server时默认的登时默认的登录

11、者中哪一位用户。录者中哪一位用户。编辑ppt16.2 SQL Server16.2 SQL Server登录账户的管理登录账户的管理 16.2.1 Windows NT16.2.1 Windows NT登录帐户建立与删除登录帐户建立与删除 16.2.2 SQL Server16.2.2 SQL Server登录账户建立与删除登录账户建立与删除 编辑ppt系统内置已有的登录帐号系统内置已有的登录帐号: :SQL ServerSQL Server有三个默认(内置)的用户登录帐号:即有三个默认(内置)的用户登录帐号:即sasa、 builtinadministratorsbuiltinadminis

12、trators和和guestguest。 SaSa:SQL ServerSQL Server验证模式的系统管理员帐号;验证模式的系统管理员帐号;builtinadministratorsbuiltinadministrators: 是一个是一个windowswindows组帐号,组帐号,表示所有表示所有windowswindows系统管理员(系统管理员(AdministratorAdministrator)组中)组中的用户都可以登录到的用户都可以登录到SQL Server;SQL Server;GuestGuest: :是来宾帐号。是来宾帐号。 编辑ppt16.2.1 Windows NT16

13、.2.1 Windows NT登录帐户建立与删除登录帐户建立与删除1 1、建立其他新的建立其他新的Windows NT/2003Windows NT/2003账户账户 操作步骤如下:操作步骤如下:以以AdministratorsAdministrators登录到登录到Windows 2003Windows 2003; 选择选择“开始开始”“”“设置设置” “” “控制面板控制面板” “” “管理管理工具工具” “” “计算机管理计算机管理”;在计算机管理窗口,选择在计算机管理窗口,选择“本地用户和组本地用户和组”,单击右,单击右键,在快捷菜单上单击键,在快捷菜单上单击“新用户新用户”,进入如下

14、图界面;,进入如下图界面;在在“新用户新用户”对话框中输入新用户名和密码(这里用对话框中输入新用户名和密码(这里用户名是户名是mengmeng,密码是,密码是11111111););单击单击【确定确定】按钮,一个新的按钮,一个新的Windows NT/2003Windows NT/2003账户账户建立成功。建立成功。 编辑ppt编辑ppt2.将将Windows NT/2003账户加入到账户加入到SQL Server中中 方法一:使用系统存储过程方法一:使用系统存储过程 在在SQL ServerSQL Server中,授予中,授予Windows NT/2003Windows NT/2003用户或

15、用户组连接用户或用户组连接SQL SQL ServerServer服务器的权限。其语法格式为:服务器的权限。其语法格式为:sp_grantlogin loginame=loginsp_grantlogin loginame=login 其中,其中, loginlogin是是Windows NT/2003Windows NT/2003用户或用户组名称,其用户或用户组名称,其格式为格式为“域域 用户名称用户名称” ” 。对于本地用户或组,则域名即为本地对于本地用户或组,则域名即为本地计算机名,其格式为计算机名,其格式为“计算机名计算机名 用户名称用户名称”。 方法二:使用方法二:使用 编辑ppt例

16、:将新建的例:将新建的Windows NTWindows NT账户账户mengmeng用系统存储过程添加到用系统存储过程添加到SQL ServerSQL Server系统中。系统中。 EXEC sp_grantlogin ZUFE-MXHmengEXEC sp_grantlogin ZUFE-MXHmeng - ZUFE-MXH是计算机名,meng是Windows 2003用户 例:将例:将Windows NTWindows NT账户账户dengdeng用方法添加到用方法添加到SQL ServerSQL Server系统中系统中 。编辑ppt3.用新建用新建Windows 2003用户登录用户

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

18、dows 2003。登录成功后,。登录成功后,启动启动SSMSSSMS就可以新的用户自动进入就可以新的用户自动进入SQL Server。 编辑ppt4.废除废除Windows NT用户和用户和SQL Server的连接的连接 系统存储过程系统存储过程sp_grantloginsp_grantlogin所添加的登录标识均存储所添加的登录标识均存储在在SQL ServerSQL Server的的sysloginssyslogins系统表中。以系统管理员身份调系统表中。以系统管理员身份调用系统存储过程用系统存储过程sp_revokeloginsp_revokelogin或从或从ssmsssms中能够

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

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

21、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_option编辑ppt参数说明:参数说明:Log

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

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

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

25、swd=1234EXEC sp_addlogin loginame= wang, passwd=1234 -新建登录标识新建登录标识wangwangEXEC sp_addlogin loginame= wang1, passwd=1234 ,defdb=stu方法二:使用方法二:使用ssmsssms编辑ppt2用新建用新建SQL server登录用户登录登录用户登录SQL Server首先设置安全认证模式成混合模式,再将登录的默认数据库选首先设置安全认证模式成混合模式,再将登录的默认数据库选择成用户自己建立的数据库,在建立该用户访问该数据库权限择成用户自己建立的数据库,在建立该用户访问该数据库

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

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

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

29、:使用系统存储过程语法格式:语法格式:sp_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_d

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

31、_grantdbaccess ZUFE-MXHmeng, MANAGEREXEC sp_grantdbaccess ZUFE-MXHmeng, MANAGERGOGO注意:注意:sasa不能添加到数据库中;不能添加到数据库中;只有只有sysadminsysadmin固定服务器角色、固定服务器角色、db_accessadmindb_accessadmin和和db_ownerdb_owner固固定数据库角色成员才能执行定数据库角色成员才能执行sp_grantdbaccesssp_grantdbaccess;不能从用户定义的事务中执行不能从用户定义的事务中执行sp_grantdbaccesssp_g

32、rantdbaccess。方法二:使用ssms编辑ppt16.3.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-MXHmeng” ZUFE-MXH

33、meng” 名为名为“MANAGER”MANAGER”访问访问“教教学管理学管理”数据库的访问权限。数据库的访问权限。USE USE 教学管理教学管理GOGOEXEC sp_revokedbaccess MANAGEREXEC sp_revokedbaccess MANAGERGOGO方法二:使用方法二:使用ssmsssms。编辑ppt16.4 16.4 角色管理角色管理 角色是一个强大的工具,可以将用户集中到一个单元中,然后对角色是一个强大的工具,可以将用户集中到一个单元中,然后对该单元应用权限。可以建立一个角色来代表单位中一类工作人员该单元应用权限。可以建立一个角色来代表单位中一类工作人员

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

35、需要拥有这一权限的用户加入将访问权限集中授予角色,之后将需要拥有这一权限的用户加入到角色中,这些用户即继承角色的访问权限。需要撤消用户的访到角色中,这些用户即继承角色的访问权限。需要撤消用户的访问权限时,将用户从角色中删除即可。问权限时,将用户从角色中删除即可。编辑ppt16.4.1 16.4.1 固定服务器角色固定服务器角色 权限角色名称固定角色类型执行BULK INSERT语句bulkadmin只能管理SQL Server系统的磁盘文件Diskadmin只能在服务器上创建和修改数据库Dbcreator只能管理数据库实例下运行的进程Processadmin只能管理服务器登录标识Securit

36、yadmin添加和删除连接服务器,执行某些系统存储过程Setupadmin只能执行服务器配置工作Serveradmin能够在SQL Server服务器上执行所有操作,其权限覆盖其他各种固定服务器角色所具有的权限Sysadmin 固 定 服 务 器 角 色编辑ppt1 1、查看固定服务器角色、查看固定服务器角色2 2、添加固定服务器角色成员、添加固定服务器角色成员3 3、删除固定服务器角色成员、删除固定服务器角色成员编辑ppt4、用、用T-SQL进行固定服务器角色成员管理进行固定服务器角色成员管理 在在SQL Server中使用以下两个存储过程来添加或删除固定服中使用以下两个存储过程来添加或删除

37、固定服务器角色成员:务器角色成员: sp_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 Z

38、UFE-MXHZUFE-MXH meng,sysadmin go编辑ppt16.4.2 16.4.2 固定数据库角色固定数据库角色禁止数据库中的检索操作Db_denydatareader 固 定 数 据 库 角 色权限角色名称固定角色类型禁止修改数据库中的所有数据Db_denydatawriter能够执行数据库备份操作的权限Db_backupoperator能够管理数据库角色及其成员,管理数据库中的语句权限和对象权限,从而控制用户对数据库的访问Db_securityadmin能够在一个数据库中创建、修改或删除数据库对象Db_ddladmin能够对一个数据库的所有表执行数据更新操作Db_data

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

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

41、或他角色或Windows NT/2003用户帐户。当添加时,如果当前数据库用户帐户。当添加时,如果当前数据库中没有建立中没有建立Windows NT/2003用户帐户安全帐户,数据库用户帐户用户帐户安全帐户,数据库用户帐户被自动建立。删除时,被自动建立。删除时,security_account必须为当前数据库的一个必须为当前数据库的一个有效用户帐户。有效用户帐户。 sp_addrolemember Db_owner,wang编辑ppt5 5应用程序角色建立与删除应用程序角色建立与删除 前面介绍的标准角色对访问控制实现在数据库一级,它决定前面介绍的标准角色对访问控制实现在数据库一级,它决定用户能

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

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

44、数据库系统的运行性能。编辑ppt(1 1)建立应用程序角色)建立应用程序角色 SQL ServerSQL Server中,只有固定服务器角色中,只有固定服务器角色sysadminsysadmin成员、固定数成员、固定数据库角色据库角色db_ownerdb_owner和和db_securityadmindb_securityadmin成员才能运行以下成员才能运行以下存储过程创建或删除应用程序角色:存储过程创建或删除应用程序角色:sp_addapprole sp_addapprole rolename=role,password=passwordrolename=role,password=pas

45、swordsp_dropapprole rolename=rolesp_dropapprole rolename=role例如、例如、在教学管理数据库中建立应用程序角色在教学管理数据库中建立应用程序角色查询查询,其,其口令为口令为123123。USE 教学管理教学管理GOEXEC sp_addapprole 查询查询,123GO编辑ppt(2 2)激活和使用应用程序角色)激活和使用应用程序角色 建立应用角色后,建立应用角色后,SQL ServerSQL Server数据库应用程序可以调用数据库应用程序可以调用系统存储过程系统存储过程sp_setapprolesp_setapprole激活角色。

46、其语法格式为:激活角色。其语法格式为: sp_setapprole sp_setapprole rolename=role,password= Encrypt N rolename=role,password= Encrypt N password|password,encrypt=encryptpassword|password,encrypt=encrypt_style_style其中,其中,Encrypt NEncrypt N选项要求应用程序在向选项要求应用程序在向SQL ServerSQL Server传递传递应用程序角色口令之前,将其加密。应用程序角色口令之前,将其加密。 encry

47、pt_styleencrypt_style说明加密方式,它有以下两种取值:说明加密方式,它有以下两种取值: none:none:用明文方式传递,这时默认方式;用明文方式传递,这时默认方式; odbc:odbc:使用使用ODBCODBC规范定义的规范定义的EncryptEncrypt加密函数对角色口令加密函数对角色口令进行加密进行加密编辑ppt例如,例如,在一个客户端应用程序中可以执行以下语句激活前在一个客户端应用程序中可以执行以下语句激活前面创建的应用程序角色面创建的应用程序角色查询查询。USE 教学管理教学管理GOEXEC sp_setapprole 查询查询,123,odbcGO编辑ppt

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

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

50、ppt16.5 16.5 数据库权限管理数据库权限管理 当用户成为数据库中的合法用户之后,他除了具当用户成为数据库中的合法用户之后,他除了具有一些系统表的查询权之外,并不对数据库中的有一些系统表的查询权之外,并不对数据库中的对象具有任何操作权,因此,下一步就需要为数对象具有任何操作权,因此,下一步就需要为数据库中的用户授予数据库对象的操作权。据库中的用户授予数据库对象的操作权。编辑ppt16.5.1 16.5.1 权限种类权限种类 1、对象权限存储过程EXECUTE表、视图DELETE表、视图、列UPDATE表、视图INSERT表、视图、列SELECT数据库对象语句编辑ppt2 2、语句权限、

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

52、ION. CREATE FUNCTION:在数据库中创建用户自定义函数。:在数据库中创建用户自定义函数。 . CREATE RULE. CREATE RULE:在数据库中创建规则。:在数据库中创建规则。 . CREATE TABLE. CREATE TABLE:在数据库中创建表。:在数据库中创建表。 . CREATE VIEW. CREATE VIEW:在数据库中创建视图。:在数据库中创建视图。 . BACKUP DATABASE. BACKUP DATABASE:备份数据库。:备份数据库。 . BACKUP LOG. BACKUP LOG:备份数据库日志。:备份数据库日志。在在SQL Ser

53、verSQL Server中,每个数据库都有各自独立的权限保护,所以对于中,每个数据库都有各自独立的权限保护,所以对于不同的数据库要分别向用户授予语句权限。(不同的数据库要分别向用户授予语句权限。(CREATE DATABASE CREATE DATABASE 除外)。除外)。编辑ppt3 3、隐含权限、隐含权限是指系统安装以后有些用户和角色不必授权就有的许可。是指系统安装以后有些用户和角色不必授权就有的许可。SQL ServerSQL Server预定义的固定服务器角色、固定数据库角色预定义的固定服务器角色、固定数据库角色和数据库对象所有者均具有隐含权限。和数据库对象所有者均具有隐含权限。编

54、辑ppt16.5.2 16.5.2 权限管理权限管理 GRANT:有权操作有权操作REVOKE:无权操作无权操作DENY:不能操作不能操作编辑ppt1 1、使用、使用ssmsssms管理权限管理权限编辑ppt2 2、使用、使用T-SQLT-SQL管理权限管理权限T-SQLT-SQL中的权限管理语句有以下三种:中的权限管理语句有以下三种:. . GRANT GRANT:允许权限。:允许权限。. . DENYDENY:禁止权限。:禁止权限。. . REVOKEREVOKE:取消允许权限或禁止权限设置。:取消允许权限或禁止权限设置。由于由于SQL ServerSQL Server预定义角色的隐含权限

55、是固定的,所预定义角色的隐含权限是固定的,所以不能使用以上语句重新设置,权限管理语句只能设以不能使用以上语句重新设置,权限管理语句只能设置用户、角色等权限。置用户、角色等权限。编辑ppt(1 1)语句权限管理)语句权限管理语句授权的命令格式是:语句授权的命令格式是: GRANTALL|statement_listTOPUBLIC|name_list GRANTALL|statement_listTOPUBLIC|name_list DENY ALL|statement_listTOPUBLIC|name_list DENY ALL|statement_listTOPUBLIC|name_lis

56、t REVOKE ALL|statement_listFROM PUBLIC|name_list REVOKE ALL|statement_listFROM PUBLIC|name_listALLALL即全部语句,即全部语句,只有系统管理员可以使用此选项,因为只有只有系统管理员可以使用此选项,因为只有系统管理员可以授予或收回系统管理员可以授予或收回CREATE DATABASECREATE DATABASE的权限;的权限;statement_liststatement_list给出授权的语句列表,这些语句可以是给出授权的语句列表,这些语句可以是CREATE DATABASE CREATE DA

57、TABASE (如果执行这个语句的用户是系统管理(如果执行这个语句的用户是系统管理员)、员)、CREATE DEFAULTCREATE DEFAULT、CREATE PROCEDURECREATE PROCEDURE、CREATE CREATE FUNCTIONFUNCTION、CREATE RULECREATE RULE、CREATE TABLECREATE TABLE、CREATE VIEWCREATE VIEW、BACKUP DATABASEBACKUP DATABASE和和DUMP TRANSACTIONDUMP TRANSACTION等;等; PUBLICPUBLIC说明这些语句的执

58、行权限将授予所有的用户;说明这些语句的执行权限将授予所有的用户; name_listname_list是数据库用户名或组名或角色名,说明这些语句的是数据库用户名或组名或角色名,说明这些语句的执行权限授予哪些用户或组。执行权限授予哪些用户或组。编辑ppt例例1 1系统管理员授予注册名为系统管理员授予注册名为mengmeng的用户的用户CREATE DATABASECREATE DATABASE的权限。的权限。USE masterGO GRANT CREATE DATABASE TO mengGO例例2 2授予用户授予用户STU_MANAGERSTU_MANAGER(ZUFE-MXHmengZUF

59、E-MXHmeng登录标识的名登录标识的名称)具有创建表的权限。称)具有创建表的权限。USE 教学管理教学管理GO GRANT CREATE TABLE TO MANAGERGO编辑ppt2 2、 对象权限管理对象权限管理数据库对象的授权命令格式是:数据库对象的授权命令格式是:GRANTGRANTALL|Permission_listALL|Permission_list ON ON table_name(colume_list)|view_name(column_list)| table_name(colume_list)|view_name(column_list)| stored_procedure_name|extended_stored_procedure_name| stored_procedure_name|extended_stored_procedure_name| user_defined_functionuser_defined_function TO PUBLIC|name_list TO PUBLIC|name_list WITH GRANT OPTION as group|role其中:其中:ALLALL说明将指定对象的所有操作权限都授予指定的用户,只有说明将指定对象的所有操作权限都授予指定的用户

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论