《SQLServer数据库技术及应用1.9》由会员分享,可在线阅读,更多相关《SQLServer数据库技术及应用1.9(174页珍藏版)》请在金锄头文库上搜索。
1、周慧周慧教学单元教学单元1.9第第11章章 数据库的安全性管理数据库的安全性管理SQL Server 2012数据库技术及应用数据库技术及应用案例案例1-11 1-11 教务管理数据库的安全性管理教务管理数据库的安全性管理MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*数据库的安全性管理数据库的安全性管理 学习导航学习导航2 2MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*数据库的安全性管理数据库的安全性管理 知识
2、框架知识框架3 3MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*单元单元1.9 数据库的安全性管理数据库的安全性管理vv能力目标能力目标能力目标能力目标n能够能够根据数据库的安全性需求设置登录身份验证根据数据库的安全性需求设置登录身份验证模式模式n能够能够根据数据库的安全性需求创建登录根据数据库的安全性需求创建登录名名n能够能够根据数据库的安全性需求创建数据库根据数据库的安全性需求创建数据库用户用户n能够能够根据数据库的安全性需求进行架构根据数据库的安全性需求进行架构管理管理n能够能够根据数据库的安全性
3、需求进行权限根据数据库的安全性需求进行权限管理管理n能够能够根据数据库的安全性需求进行角色根据数据库的安全性需求进行角色管理管理n能够能够处理好维护数据库安全和为用户服务之间的处理好维护数据库安全和为用户服务之间的关系关系n能够能够阅读并理解数据库安全有关的阅读并理解数据库安全有关的英文英文4 4MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*单元单元1.9 数据库的安全性管理数据库的安全性管理vv知识目标知识目标知识目标知识目标n数据库的安全性管理数据库的安全性管理概述概述n身份身份验证验证与与模式模式
4、配置方法配置方法n登录登录名管理的方法名管理的方法n数据库用户管理数据库用户管理的方法的方法n架构架构管理管理的方法的方法n权限管理权限管理的方法的方法n角色角色管理管理的方法的方法n数据库安全数据库安全有关的有关的英文英文vv素质目标素质目标素质目标素质目标n培养培养数据库管理员的责任心和管理数据库管理员的责任心和管理潜力潜力n培养培养与用户的与用户的良好协调与沟通的良好协调与沟通的能力能力5 5MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*单元单元1.9 数据库的安全性管理数据库的安全性管理案例案例
5、案例案例1-111-111-111-11教务管理数据库的安全性管理教务管理数据库的安全性管理教务管理数据库的安全性管理教务管理数据库的安全性管理根据教务管理系统的安全性需求,进行服务器登录名、根据教务管理系统的安全性需求,进行服务器登录名、数据库用户、架构、权限以及角色的管理。数据库用户、架构、权限以及角色的管理。n设置身份验证模式设置身份验证模式n使用使用SSMS或或T-SQL创建创建Windows登录名登录名n使用使用SSMS或或T-SQL创建创建SQLServer登录名登录名n使用使用SSMS或或T-SQL创建数据库用户创建数据库用户n使用使用SSMS或或T-SQL创建并管理架构、权限和
6、角色创建并管理架构、权限和角色工作任务工作任务6 6MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*7 7数据库的安全性管理概述数据库的安全性管理概述一一身份验证与模式配置身份验证与模式配置二二登录名管理登录名管理三三数据库用户管理数据库用户管理四四架构管理架构管理五五权限管理权限管理六六角色管理角色管理七七8单元单元1.9 数据库的安全性管理数据库的安全性管理MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*与建设方
7、案保持一致与建设方案保持一致安全特性安全特性安全特性安全特性延续策略延续策略改进增强改进增强安全机制安全机制安全机制安全机制操作系统级(操作系统级(Windows)网络传输级网络传输级服务器级(服务器级(SQL Server)数据库级数据库级数据库对象级数据库对象级SQL Server 20128 8一、数据库的安全性管理概述一、数据库的安全性管理概述MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、数据库的安全性管理概述一、数据库的安全性管理概述Windows级的安全性建立在操作系统安全系统控级的安全
8、性建立在操作系统安全系统控制的基础上。制的基础上。用户使用客户机通过网络实现用户使用客户机通过网络实现SQLServer服务器的访服务器的访问时,首先要获得问时,首先要获得计算机操作系统计算机操作系统的使用权。的使用权。操作系统管理员或者网络管理员负责管理。操作系统管理员或者网络管理员负责管理。1. Windows级的安全机制级的安全机制9 9MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、数据库的安全性管理概述一、数据库的安全性管理概述网络传输级的安全性主要建立在网络传输级的安全性主要建立在防御黑客
9、恶意入侵防御黑客恶意入侵以及以及数数据加密技术据加密技术的基础上。的基础上。n不允许不允许SQLServer通过通过Internet直接访问直接访问n提供防火墙或者入侵检测系统(提供防火墙或者入侵检测系统(IDS)nSQLServer2012对关键数据进行了加密,使用对关键数据进行了加密,使用AES-256加密算法来保护服务主密钥(加密算法来保护服务主密钥(SMK)和数据库主密钥)和数据库主密钥(DMK),这是一种比早期版本中使用的),这是一种比早期版本中使用的3DES更新的加更新的加密算法。密算法。2.网络传输级的安全机制网络传输级的安全机制1010MicrosoftSQL Server 2
10、012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、数据库的安全性管理概述一、数据库的安全性管理概述SQLServer服务器级的安全性建立在控制服务器登录名和服务器级的安全性建立在控制服务器登录名和密码的基础上。密码的基础上。n采用采用集成集成Windows登录登录和和标准标准SQLServer登录登录两种方式。两种方式。n用户在登录用户在登录SQLServer服务器时,要提供正确的服务器时,要提供正确的登录名登录名和密码和密码才能获得才能获得SQLServer的访问权限。的访问权限。n数据库管理员负责管理与设计合理的登录方式。数据库管理员负责管
11、理与设计合理的登录方式。3. SQL Server服务器级的安全机制服务器级的安全机制1111MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、数据库的安全性管理概述一、数据库的安全性管理概述SQLServer数据库级的安全性建立在控制合法数据库级的安全性建立在控制合法数数据库用户据库用户的基础上。的基础上。要获得访问服务器上各数据库的权利,必须创建要获得访问服务器上各数据库的权利,必须创建映射到登录名的数据库用户。映射到登录名的数据库用户。4. 数据库级的安全机制数据库级的安全机制1212Micros
12、oftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、数据库的安全性管理概述一、数据库的安全性管理概述SQLServer数据库对象级的安全性建立在数据库对象级的安全性建立在授权授权与与检查用户对数据库对象访问的权限的基础上。检查用户对数据库对象访问的权限的基础上。用户操作数据库对象时,必须检查该用户是否具用户操作数据库对象时,必须检查该用户是否具有有操作操作该对象的该对象的权限权限,SQLServer将自动把该数据将自动把该数据库对象的拥有权赋予创建该对象的拥有者。库对象的拥有权赋予创建该对象的拥有者。对象的拥有者可以
13、实现该对象的安全控制。对象的拥有者可以实现该对象的安全控制。5. 数据库对象级的安全机制数据库对象级的安全机制1313MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*一、数据库的安全性管理概述一、数据库的安全性管理概述第一步:当用户连接服务器时,验证用户是否具第一步:当用户连接服务器时,验证用户是否具有关联的有关联的登录名登录名。第二步:当用户访问数据库时,验证用户是否映第二步:当用户访问数据库时,验证用户是否映射了相应的射了相应的数据库用户数据库用户。第三步:当用户访问数据库的第三步:当用户访问数据库的
14、对象对象时,验证用户时,验证用户是否具相应的是否具相应的权限权限。三个验证过程三个验证过程1414MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*单元单元1.9 数据库的安全性管理数据库的安全性管理1515数据库的安全性管理概述数据库的安全性管理概述一一身份验证与模式配置身份验证与模式配置二二登录名管理登录名管理三三数据库用户管理数据库用户管理四四架构管理架构管理五五权限管理权限管理六六角色管理角色管理七七8MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库
15、技术及应用人民邮电出版社人民邮电出版社*二、身份验证与模式配置二、身份验证与模式配置Windows用户用户来自于来自于Windows的用户或组。的用户或组。SQLServer用户用户SQLServer内部创建的内部创建的SQLServer登录名。登录名。两种类型的用户两种类型的用户1616MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*二、身份验证与模式配置二、身份验证与模式配置Windows身份验证模式身份验证模式启用启用Windows身份验证并禁用身份验证并禁用SQLServer身身份验证。份验证。混
16、合身份验证模式混合身份验证模式同时启用同时启用Windows身份验证和身份验证和SQLServer身身份验证。份验证。两种验证模式两种验证模式1717MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*二、身份验证与模式配置二、身份验证与模式配置Windows身份验证运行的是操作系统的安全机制身份验证运行的是操作系统的安全机制n以以Windows用户身份连接到服务器时,由操作系统验证用户的账户名用户身份连接到服务器时,由操作系统验证用户的账户名和密码,和密码,SQLServer仅关联其相应的登录名。用户一旦通
17、过操作系仅关联其相应的登录名。用户一旦通过操作系统的验证,统的验证,SQLServer就就不不再需要其他的身份验证了。再需要其他的身份验证了。n使用此模式与服务器建立的连接称为信任连接。使用此模式与服务器建立的连接称为信任连接。系统默认系统默认Windows身份验证模式身份验证模式它利用它利用Kerberos安全协议,通过强密码的复杂性验证提供密码策略强安全协议,通过强密码的复杂性验证提供密码策略强制,提供账户锁定支持,并且支持密码过期,比混合模式更为安全。制,提供账户锁定支持,并且支持密码过期,比混合模式更为安全。 1. Windows身份验证身份验证1818MicrosoftSQL Ser
18、ver 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*二、身份验证与模式配置二、身份验证与模式配置SQLServer身份验证运行的是数据库服务器安全机制。身份验证运行的是数据库服务器安全机制。n以以SQLServer用户身份连接到服务器时,必须提供用户身份连接到服务器时,必须提供SQLServer内部创建的登录名和密码,内部创建的登录名和密码,SQLServer将其与存储在系将其与存储在系统表中的登录名和密码进行比较来进行身份验证。统表中的登录名和密码进行比较来进行身份验证。nSQLServer登录名和密码的连接称为非信任连接。登录名和密码的
19、连接称为非信任连接。提供提供SQLServer身份验证只是为了向后兼容。如果必须使用身份验证只是为了向后兼容。如果必须使用SQLServer登录名以适应早期应用程序,则必须为所有登录名以适应早期应用程序,则必须为所有SQLServer用户设置强密码。用户设置强密码。 2. SQL Server身份验证身份验证1919MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*二、身份验证与模式配置二、身份验证与模式配置启动启动SSMS并连接到并连接到数据库引擎服务器数据库引擎服务器在在【对象资源管理器对象资源管理器】
20、窗口中,右键单击窗口中,右键单击数据库引擎服务器节数据库引擎服务器节点,在快捷菜单中选点,在快捷菜单中选择择“属性属性”命令命令 3.配置身份验证模式配置身份验证模式2020MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*二、身份验证与模式配置二、身份验证与模式配置选择选择【服务器属性服务器属性】窗口窗口【安全性安全性】页页在在“服务器身份验证服务器身份验证”选项区域中选择需选项区域中选择需要的验证模式要的验证模式设置登录审核设置登录审核 3.设置身份验证模式设置身份验证模式2121MicrosoftSQ
21、L Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*单元单元1.9 数据库的安全性管理数据库的安全性管理2222数据库的安全性管理概述数据库的安全性管理概述一一身份验证与模式配置身份验证与模式配置二二登录名管理登录名管理三三数据库用户管理数据库用户管理四四架构管理架构管理五五权限管理权限管理六六角色管理角色管理七七8MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*三、三、 登录名管理登录名管理登录名是创建在数据库引擎服务器中可由安全系统进行身
22、登录名是创建在数据库引擎服务器中可由安全系统进行身份验证的份验证的安全主体安全主体,用户需要使用登录名连接到,用户需要使用登录名连接到SQLServer服务器。服务器。任何一个任何一个Windows用户或者用户或者SQLServer用户要连接到数用户要连接到数据库引擎,都必须据库引擎,都必须关联一个合法的登录名关联一个合法的登录名。什么是登录名?什么是登录名?2323MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*三、登录名管理三、登录名管理内置登录名内置登录名1创建创建Windows登录名登录名23创建
23、创建SQL Server登录名登录名2424修改和删除登录名修改和删除登录名4MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置登录名(一)内置登录名内置内置Windows和和SQL Server登录名登录名2525MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置登录名(一)内置登录名SQLServer2012安装过程中指定的安装过程中指定的SQLServer管理员管理员例如例如:计算机:计算机“Z
24、H”上的上的Windows用户用户“Hui”被指定为被指定为SQLServer管理员管理员SQLServer2012的安装过程中,数据库引擎配置页,指定的安装过程中,数据库引擎配置页,指定当前用户为当前用户为SQLServer管理员管理员。1. SQL Server管理员的登录名管理员的登录名名2626MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)(一)内置登录名内置登录名2727MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出
25、版社人民邮电出版社*(一)内置登录名(一)内置登录名SQL Server 2012安装过程中指定的SQL Server管理员SQLServer自动为其创建登录名自动为其创建登录名固定服务器角色“sysadmin”的成员可以在服务器中执行任何活动1. SQL Server管理员的登录名管理员的登录名名2828MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置登录名(一)内置登录名SQLServer2012安装过程中指定的安装过程中指定的SQLServer管理员管理员SQLServer自动为其创建登录
26、名自动为其创建登录名固定服务器角色固定服务器角色“sysadmin”的成员(见的成员(见11.7角色管理)角色管理)可以在服务器中执行任何活动可以在服务器中执行任何活动1. SQL Server管理员的登录名管理员的登录名名2929MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置登录名(一)内置登录名SQL Server 2012安装过程中指定的SQL Server管理员SQL Server自动为其创建登录名固定服务器角色“sysadmin”的成员可以在服务器中执行任何活动可以在服务器中执行任何
27、活动v展开展开“安全性安全性”“登录名登录名”节点,右键单击节点,右键单击“ZHHui”节点,从快捷菜单中选择节点,从快捷菜单中选择“属性属性”命令,在命令,在【登录属性登录属性-ZHHui】窗口窗口【服务器角色服务器角色】页中,也可以看到该登录名页中,也可以看到该登录名被设置为固定服务器角色被设置为固定服务器角色“sysadmin”。1. SQL Server管理员的登录名管理员的登录名名3030MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)(一)内置登录名内置登录名3131MicrosoftS
28、QL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置登录名(一)内置登录名sa(superadministrator)是内置的是内置的SQLServer系统管系统管理员理员SQLServer身份验证进行连接身份验证进行连接始终作为数据库引擎中的登录名存在始终作为数据库引擎中的登录名存在对对SQLServer有完全的管理权限有完全的管理权限安装时默认为禁用安装时默认为禁用可在可在【登录属性登录属性-sa】的的【状态状态】页页中选择登录为中选择登录为“启用启用”2. sa账户的登录名账户的登录名名3232Microsoft
29、SQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置登录名(一)内置登录名【登录属性登录属性-sa】窗窗口口【状态状态】页页【状态状态】页页中选择登中选择登录为录为“启用启用”2. sa账户的登录名账户的登录名3333MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置登录名(一)内置登录名【常规常规】页中为登页中为登录名录名“sa”设置强设置强密码并可靠记忆密码并可靠记忆2. sa账户的登录名账户的登录名3434Micr
30、osoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置登录名(一)内置登录名为了能让为了能让SQLServer服务在服务在Windows系统中正常的启动系统中正常的启动和运行,需要配置相应的服务账户并获取需要访问操作系和运行,需要配置相应的服务账户并获取需要访问操作系统文件的权限。统文件的权限。SQLServer安装之后系统自动创建相应服务账户的登录安装之后系统自动创建相应服务账户的登录名,并添加为相应固定服务器角色的成员。名,并添加为相应固定服务器角色的成员。不可删除不可删除3.服务账户的登录名服务账户的登
31、录名名3535MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置登录名(一)内置登录名名称由名称由“#”括起来的登录名括起来的登录名v是是基基于于证证书书的的SQLServer登登录录名名,仅仅供供内内部部系系统统使使用用,不应删除。不应删除。v例如:例如:v#MS_PolicyEventProcessingLogin#v#MS_PolicyTsqlExecutionLogin#4.基于证书的基于证书的SQL Server登录名登录名名3636MicrosoftSQL Server 2012 SQ
32、LServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*三、登录名管理三、登录名管理内置登录名内置登录名1创建创建Windows登录名登录名23创建创建SQL Server登录名登录名3737修改和删除登录名修改和删除登录名4MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名Windows登录名是登录名是Windows级的安全主体。级的安全主体。v如如果果用用户户使使用用Windows身身份份连连接接服服务务器器,将将由由操操作作系系
33、统统验验证证该该Windows(本本地地或或域域)用用户户的的账账户户名名和和密密码码,而而在数据库引擎服务器上仅需要为该用户关联一个登录名在数据库引擎服务器上仅需要为该用户关联一个登录名v案案例例:在在本本地地机机“ZH”中中创创建建了了一一些些Windows用用户户和和Windows组组,读读者者可可以以在在Windows操操作作系系统统的的【计计算算机机管理管理】窗口中创建。窗口中创建。安全主体安全主体Windows登录名登录名名3838MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二
34、)创建Windows登录名登录名在在【计算机管理计算机管理】窗口中建立新用户窗口中建立新用户3939MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名在在【计算机管理计算机管理】窗口中建立组窗口中建立组4040MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名在在【新建组新建组】对话框中建立组并添加成员对话框中建立组并添加成员41
35、41MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名ZH本地机本地机Windows用户用户用户用户 密码密码ZH本地机本地机Windows组组Windows登录登录名名默认默认数据库数据库数据库数据库用户用户Zhangmin*ZHZhangminEDUC*ZhangminShijun*ZHShijunEDUC*ShijunZhlian*TeachersZHTeachersEDUCZHTeachersZpeng*Zweishi*Hui(本地管理员)(本地管理员)
36、*AdministratorsZHHui(指定的(指定的SQL Server管理员)管理员)masterdbo(内置)(内置)4242MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名例例1:使用使用SSMS创建与服务器创建与服务器“ZH”的的Windows用户用户“Zhangmin”关联的登录名关联的登录名“ZHZhangmin”。以指定以指定SQLServer管理员用户登录计算机,启动管理员用户登录计算机,启动SSMS并并连接到数据库引擎服务器连接到数据库引
37、擎服务器在在【对象资源管理器对象资源管理器】窗口中展开窗口中展开“安全性安全性”节点,用右节点,用右键单击键单击“登录名登录名”节点节点在弹出的快捷菜单中选择在弹出的快捷菜单中选择“新建登录名新建登录名”命令命令1.使用使用SSMS创建创建Windows登录名登录名4343MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名【登录名登录名-新建新建】窗口窗口-【常规常规】页,选择页,选择“Windows身份验证身份验证”“登录名登录名”输入服务器名称和输入服务器名
38、称和Windows用户名称用户名称“ZHZhangmin”等等1.使用使用SSMS创建创建Windows登录名登录名4444MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名在在【对象资源管理器对象资源管理器】窗口中展开窗口中展开“安全性安全性”“登录名登录名”节点,节点,可以看到新建的可以看到新建的登录名登录名“ZHZhangmin”1.使用使用SSMS创建创建Windows登录名登录名4545MicrosoftSQL Server 2012 SQLServe
39、r2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名切换用户,再次以切换用户,再次以Windows用户用户“Zhangmin”的身份启动计算机,的身份启动计算机,使用使用SSMS连接连接SQLServer数据库引擎服务器,仍然会弹出数据库引擎服务器,仍然会弹出【连连接到服务器接到服务器】失败的错误提示对话框。因为该登录名失败的错误提示对话框。因为该登录名“ZHZhangmin”尚不是默认数据库尚不是默认数据库“EDUC”的合法用户的合法用户1.使用使用SSMS创建创建Windows登录名登录名4646MicrosoftSQL S
40、erver 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名例例2:创建与创建与Windows组组“Teachers”关联的登录名关联的登录名以指定以指定SQLServer管理员用户登录计算机,启动管理员用户登录计算机,启动SSMS并并连接到数据库引擎服务器连接到数据库引擎服务器在在【对象资源管理器对象资源管理器】窗口中展开窗口中展开“安全性安全性”节点,用右节点,用右键单击键单击“登录名登录名”节点节点在弹出的快捷菜单中选择在弹出的快捷菜单中选择“新建登录名新建登录名”命令命令1.使用使用SSMS
41、创建创建Windows(组组)登录名登录名4747MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows s登录名登录名【登录名登录名-新建新建】窗口,窗口,选择选择“Windows身份验身份验证证”“登录名登录名”输入服务输入服务器和器和Windows用户名用户名称称“ZHZhangmin”注意:可借助检索注意:可借助检索1.使用使用SSMS创建创建Windows (组组)登录名登录名4848MicrosoftSQL Server 2012 SQLServer2012数据库技
42、术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名【登录名登录名-新建新建】窗口窗口【用户映射用户映射】页页选择数据库选择数据库注意:可以在此创注意:可以在此创建与登录名同名的建与登录名同名的数据库用户数据库用户1.使用使用SSMS创建创建Windows (组组)登录名登录名4949MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名在在【对象资源管理器对象资源管理器】窗口中展开窗口中展开“安全性安全性”“登录名登
43、录名”节点,节点,可以看到新建的可以看到新建的登录名登录名“ZHTeachers”1.使用使用SSMS创建创建Windows(组组)登录名登录名5050MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名“数据库数据库”EDUCv“安全性安全性”“用户用户”可见新建数据库用户可见新建数据库用户v注意:此数据库用户尚注意:此数据库用户尚无任何权限无任何权限1.使用使用SSMS创建创建Windows (组组)登录名登录名5151MicrosoftSQL Server
44、2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名切换用户,分别以切换用户,分别以Windows组组“Teachers”的成员的成员“Zhlian”“Zpeng”和和“Zweishi”的身份启动计算机,使用的身份启动计算机,使用SSMS连接连接SQLServer数据库引擎服务器,即可实现使用数据库引擎服务器,即可实现使用Windows身份验证连接到身份验证连接到SQLServer实例。实例。1.使用使用SSMS创建创建Windows (组组)登录名登录名5252MicrosoftSQL Server
45、2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名连接成功之后,在连接成功之后,在【对象资源管理器对象资源管理器】窗口中展开窗口中展开“数据库数据库”“EDUC”“表表”节点,发现只能看到节点,发现只能看到“系统表系统表”和和“FileTables”而不能看到用户表。而不能看到用户表。1.使用使用SSMS创建创建Windows (组组)登录名登录名5353MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建
46、(二)创建Windows登录名登录名右键单击右键单击“表表”节点,从快捷菜单中选择节点,从快捷菜单中选择“新建表新建表”命令,也会弹命令,也会弹出错误提示对话框,提示该用户没有出错误提示对话框,提示该用户没有CREATETABLE(新建表)(新建表)的权限,的权限,1.使用使用SSMS创建创建Windows (组组)登录名登录名5454MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名语法语法CREATELOGIN域名域名登录名登录名FROMWINDOWSWIT
47、HDEFAULT_DATABASE=默认数据库名默认数据库名,DEFAULT_LANGUAGE=简体中文简体中文|2.使用使用T-SQL创建创建Windows登录名登录名5555MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名例例3:创建与创建与Windows用户用户“Shijun”关联的登录名关联的登录名“ZHShijun”,默认数据库为,默认数据库为“EDUC”,默认数据库语言为,默认数据库语言为“简简体中文体中文”。代码代码:CREATELOGINZHS
48、hijun-方括号界定不规则标识符方括号界定不规则标识符“”FROMWINDOWSWITHDEFAULT_DATABASE=EDUC,-默认数据库默认数据库DEFAULT_LANGUAGE=简体中文简体中文-默认语言默认语言2.使用使用T-SQL创建创建Windows登录名登录名5656MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建(二)创建Windows登录名登录名执行以上语句即可创建登录名执行以上语句即可创建登录名“ZHShijun”2.使用使用T-SQL创建创建Windows登录名登录名
49、5757MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*三、登录名管理三、登录名管理内置登录名内置登录名1创建创建Windows登录名登录名23创建创建SQL Server登录名登录名5858修改和删除登录名修改和删除登录名4MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)创建(三)创建SQL Server登录名登录名SQL Server登录登录名名密密 码码默认默认数据库数据库数据库数据库用户用户Cuili(
50、教师)(教师)*EDUCCuili(Reader、Writer)Zhaochg(学生)(学生)*EDUC*ZhaochgChengp(学生)(学生)*EDUCWuqj(学生)(学生)*Wuqjsa( 内内 置置 SQL Server管理员)管理员)*mastermasterdbo(内内置置,无无限限制制访访问数据库)问数据库)5959MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)创建(三)创建SQL Server登录名登录名例例4:为为方方便便某某系系管管理理人人员员查查看看和和管管理理本本系系学
51、学生生的的学学习习情情况况,创创建建一一个个使使用用SQLServer身身份份验验证证的的登登录录名名“Cuili”,密密码为码为“*”,默认数据库为,默认数据库为“EDUC”。为为登登录录名名“CuiLi”映映射射数数据据库库用用户户“Cuili”,并并赋赋予予对对数数据据库库的的读读写写权权限限,以以使使其其能能够够对对数数据据库库“EDUC”进进行行读读写访问。写访问。1.使用使用SSMS创建创建SQL Server登录名登录名6060MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)创建(三)
52、创建SQL Server登录名登录名操作步骤:操作步骤:以指定以指定SQLServer管理员用户登录计算机,启动管理员用户登录计算机,启动SSMS并并连接到数据库引擎服务器连接到数据库引擎服务器在在【对象资源管理器对象资源管理器】窗口中展开窗口中展开“安全性安全性”节点,用右节点,用右键单击键单击“登录名登录名”节点节点在弹出的快捷菜单中选择在弹出的快捷菜单中选择“新建登录名新建登录名”命令命令1.使用使用SSMS创建创建SQL Server登录名登录名6161MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版
53、社*(三)创建(三)创建SQL Server登录名登录名【登录名登录名-新建新建】窗口窗口常规常规页页6262MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)创建(三)创建SQL Server登录名登录名【登录名登录名-新建新建】窗口窗口服务器角色服务器角色页页6363MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)创建(三)创建SQL Server登录名登录名【登录名登录名-新建新建】窗口窗口用户映射用
54、户映射页页6464MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)创建(三)创建SQL Serverer登录名登录名查看映射了数据库用户查看映射了数据库用户“Cuili”的登录名的登录名“Cuili”对数对数据库对象的读写权限:据库对象的读写权限:单击单击【对象资源管理器对象资源管理器】窗口的窗口的“连接连接”按钮,选择按钮,选择“数数据库引擎据库引擎”,在,在【连接到服务器连接到服务器】对话框中选择对话框中选择SQLServer身份验证,输入登录名身份验证,输入登录名“Cuili”和密码,单击和密
55、码,单击“连接连接”按钮,即可连接到数据库引擎服务器。按钮,即可连接到数据库引擎服务器。尝试访问数据库尝试访问数据库“EDUC”中的表,体会作为数据库角色中的表,体会作为数据库角色“db_datareader”和和“db_datawriter”成员的权限。成员的权限。1.使用使用SSMS创建创建SQL Server登录名登录名6565MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)创建(三)创建SQL Serverer登录名登录名语法:语法:CREATELOGIN登录名登录名-创建登录名创建登录名W
56、ITHPASSWORD=密码密码-设置密码设置密码,DEFAULT_DATABASE=默认数据库名默认数据库名,DEFAULT_LANGUAGE=默认语言默认语言.2.使用使用T-SQL创建创建SQL Server登录名登录名6666MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)创建(三)创建SQL Serverer登录名登录名例例5:为使学生能够查看数据库为使学生能够查看数据库“EDUC”中的学习信息,中的学习信息,分别创建三个分别创建三个SQLServer用户的登录名:用户的登录名:登录名登录
57、名“Zhaochg”(密码(密码“216001”)登录名登录名“Chengp”(密码(密码“216119”)登录名登录名“Wuqj”(密码(密码“216111”)为前两个登录名设置默认数据库为前两个登录名设置默认数据库“EDUC”2.使用使用T-SQL创建创建SQL Server登录名登录名6767MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)创建(三)创建SQL Server登录名登录名代码:代码:CREATELOGINZhaochg -创建登录名创建登录名WITHPASSWORD=216001
58、,-设置密码设置密码DEFAULT_DATABASE=EDUC-设置默认数据库设置默认数据库GOCREATELOGINChengp -创建登录名创建登录名WITHPASSWORD=216119-设置密码设置密码DEFAULT_DATABASE=EDUC-设置默认数据库设置默认数据库GO2.使用使用T-SQL创建创建SQL Server登录名登录名6868MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)创建(三)创建SQL Server登录名登录名代码:代码:CREATELOGINWuqj-创建登录名
59、创建登录名WITHPASSWORD=216111-设置密码设置密码执行结果:执行结果:2.使用使用T-SQL创建创建SQL Server登录名登录名6969MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)创建(三)创建SQL Server登录名登录名尝试连接尝试连接在在【连接到服务器连接到服务器】对话框中选择对话框中选择SQLServer身份验证,输身份验证,输入登录名入登录名“Wuqj”和密码和密码“216111”,单击,单击“连接连接”按钮按钮2.使用使用T-SQL创建创建SQL Server登
60、录名登录名7070MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*三、登录名管理三、登录名管理内置登录名内置登录名1创建创建Windows登录名登录名23创建创建SQL Server登录名登录名7171修改和删除登录名修改和删除登录名4MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(四)修改和删除登录名(四)修改和删除登录名在在【对象资源管理器对象资源管理器】窗口中,右键单击窗口中,右键单击“登录名登录名”,从弹出
61、的快捷菜单中选择从弹出的快捷菜单中选择“属性属性”命令,在打开的命令,在打开的【登登录属性录属性】窗口中即可修改登录密码、默认数据库,并可窗口中即可修改登录密码、默认数据库,并可以为登录名设置服务器角色、创建映射到此登录名的数以为登录名设置服务器角色、创建映射到此登录名的数据库用户等。据库用户等。右键单击右键单击“登录名登录名”,从弹出的快捷菜单中选择,从弹出的快捷菜单中选择“删除删除”命令,即可删除此登录名。在执行此操作前应该删除命令,即可删除此登录名。在执行此操作前应该删除所映射的数据库用户。所映射的数据库用户。1.使用使用SSMS修改和删除登录名修改和删除登录名7272Microsoft
62、SQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(四)修改和删除登录名(四)修改和删除登录名修改登录名语法:修改登录名语法:ALTERLOGIN登录名登录名WITHPASSWORD=密码密码OLD_PASSWORD=旧密码旧密码|DEFAULT_DATABASE=默认数据库名默认数据库名|DEFAULT_LANGUAGE=默认语言默认语言|NAME=登录名登录名.2.使用使用T-SQL修改和删除登录名修改和删除登录名7373MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技
63、术及应用人民邮电出版社人民邮电出版社*(四)修改和删除登录名(四)修改和删除登录名删除登录名语法:删除登录名语法:DROPLOGIN登录名登录名举例:举例:DROPLOGINChengp2.使用使用T-SQL修改和删除登录名修改和删除登录名7474MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*单元单元1.9 数据库的安全性管理数据库的安全性管理7575数据库的安全性管理概述数据库的安全性管理概述一一身份验证与模式配置身份验证与模式配置二二登录名管理登录名管理三三数据库用户管理数据库用户管理四四架构管理架
64、构管理五五权限管理权限管理六六角色管理角色管理七七8MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*四、数据库用户管理四、数据库用户管理数据库用户是数据库级的安全主体,是数据库级的安全策略数据库用户是数据库级的安全主体,是数据库级的安全策略登登录录名名连接连接SQLServer服务器服务器通通行行证证进入进入大楼大楼数据库用户数据库用户访问访问数据库数据库1、数据库、数据库2钥钥匙匙打开打开房间房间1、房间、房间2用户的权限用户的权限操作操作表、视图、存储过程表、视图、存储过程权权限限使用使用资源资源1、
65、资源、资源2什么是数据库用户什么是数据库用户7676MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*四、数据库用户管理四、数据库用户管理内置数据库用户内置数据库用户1创建数据库用户创建数据库用户27777修改和删除数据库用户修改和删除数据库用户3MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置数据库用户(一)内置数据库用户dbo(DatabaseOwner):数据库的拥有者,是数据库的):数据库的拥有者,是
66、数据库的管理员管理员guest:数据库的:数据库的“客人客人”,所有非此数据库的用户,所有非此数据库的用户INFORMATION_SCHEMA:实体,不能修改或删除:实体,不能修改或删除sys:实体,不能修改或删除实体,不能修改或删除内置数据库用户内置数据库用户7878MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置数据库用户(一)内置数据库用户dbo(DatabaseOwner):数据库的拥有者,是数据库的):数据库的拥有者,是数据库的管理员管理员自动映射到自动映射到创建创建该数据库的登录名该
67、数据库的登录名所拥有和默认的架构为所拥有和默认的架构为“dbo”展开展开“数据库数据库”“EDUC”“安全性安全性”“用户用户”节点,节点,右键右键“dbo”,在快捷菜单中选择,在快捷菜单中选择“属性属性”命令命令内置数据库用户内置数据库用户dbo7979MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置数据库用户(一)内置数据库用户dbo(DatabaseOwner):固定数据库角色):固定数据库角色“db_owner”的成员的成员对数据库具有全部管理权限对数据库具有全部管理权限【数据库用户数据
68、库用户-dbo】属性窗口属性窗口【成员身份成员身份】页页内置数据库用户内置数据库用户dbo8080MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置数据库用户(一)内置数据库用户guest:数据库的:数据库的“客人客人”,所有非此数据库的登录名都将,所有非此数据库的登录名都将以以“guest”的身份访问数据库并拥有的身份访问数据库并拥有“guest”所拥有的权所拥有的权限。限。对对“guest”授予权限一定要慎重授予权限一定要慎重展开展开“数据库数据库”“EDUC”“安全性安全性”“用户用户”节点
69、,节点,右键右键“guest”,在快捷菜单中选择,在快捷菜单中选择“属性属性”命令命令注意到在注意到在【数据库用户数据库用户-guest】属性窗口属性窗口【常规常规】页上,页上,登录名用户类型不可选登录名用户类型不可选内置数据库用户内置数据库用户guest8181MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置数据库用户(一)内置数据库用户【数据库用户数据库用户-guest】属性窗口属性窗口【成员身份成员身份】页上,页上,“guest”默认不是任何固定数据库角色的成员默认不是任何固定数据库角色的
70、成员内置数据库用户内置数据库用户guest8282MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*四、数据库用户管理四、数据库用户管理内置数据库用户内置数据库用户1创建数据库用户创建数据库用户28383修改和删除数据库用户修改和删除数据库用户3MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建数据库用户(二)创建数据库用户已创建的登录名已创建的登录名已创建的数据库用户已创建的数据库用户1.使用使用SSMS创建
71、数据库用户创建数据库用户8484MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建数据库用户(二)创建数据库用户例例6:为登录名为登录名“ZHZhangmin”创建数据库创建数据库“EDUC”的用的用户户“Zhangmin”操作步骤:操作步骤:启动启动SSMS并连接到数据库引擎服务器并连接到数据库引擎服务器在在【对象资源管理器对象资源管理器】窗口中,展开数据库节点,再展开窗口中,展开数据库节点,再展开数据库数据库“EDUC”“安全性安全性”节点节点右键单右键单“用户用户”节点,从快捷菜单中选择节点
72、,从快捷菜单中选择“新建用户新建用户”命命令令1.使用使用SSMS创建数据库用户创建数据库用户8585MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建数据库用户(二)创建数据库用户【数据库用户数据库用户新建新建】【常规常规】页输入用户名页输入用户名1.使用使用SSMS创建数据库用户创建数据库用户8686MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建数据库用户(二)创建数据库用户【数据库用户数据库
73、用户新建新建】【常规常规】页输入登录名(搜索)页输入登录名(搜索)1.使用使用SSMS创建数据库用户创建数据库用户8787MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建数据库用户(二)创建数据库用户【数据库用户数据库用户新建新建】【常规常规】页输入登录名(搜索)页输入登录名(搜索)1.使用使用SSMS创建数据库用户创建数据库用户8888MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建数据库用户(
74、二)创建数据库用户【数据库用户数据库用户新建新建】【常规常规】页输入登录名(搜索)页输入登录名(搜索)1.使用使用SSMS创建数据库用户创建数据库用户8989MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建数据库用户(二)创建数据库用户【数据库用户数据库用户新建新建】【安全对象安全对象】页(权限设置)页(权限设置)1.使用使用SSMS创建数据库用户创建数据库用户9090MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮
75、电出版社*(二)创建数据库用户(二)创建数据库用户语法:语法:CREATEUSER用户名用户名FOR|FROMLOGIN登录名登录名WITHDEFAULT_SCHEMA=架构名架构名-设置默认架构设置默认架构.例例7:为登录名为登录名“ZHShijun”、“Zhaochg”、“Wuqj”创创建数据库建数据库“EDUC”的用户。的用户。2.使用使用T-SQL创建数据库用户创建数据库用户9191MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)创建数据库用户(二)创建数据库用户代码:代码:USEEDUCG
76、OCREATEUSERShijunFORLOGINZHShijun-为为Windows用户的登录名映射数据库用户用户的登录名映射数据库用户GOCREATEUSERZhaochgFORLOGINZhaochg-为为SQLServer用户的登录名映射数据库用户用户的登录名映射数据库用户GOCREATEUSERWuqjFORLOGINWuqj-为为SQLServer用户的登录名映射数据库用户用户的登录名映射数据库用户2.使用使用T-SQL创建数据库用户创建数据库用户9292MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮
77、电出版社*四、数据库用户管理四、数据库用户管理内置数据库用户内置数据库用户1创建数据库用户创建数据库用户29393修改和删除数据库用户修改和删除数据库用户3MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)修改和删除数据库用户(三)修改和删除数据库用户在在【对象资源管理器对象资源管理器】窗口中,右键单击数据库用户,窗口中,右键单击数据库用户,从弹出的快捷菜单中选择从弹出的快捷菜单中选择“属性属性”命令,在打开的命令,在打开的【数数据库用户据库用户】窗口中即可修改该数据库用户的安全对象等窗口中即可修改该
78、数据库用户的安全对象等属性。属性。右键单击数据库用户,从弹出的快捷菜单中选择右键单击数据库用户,从弹出的快捷菜单中选择“删除删除”命令,即可删除该数据库用户。命令,即可删除该数据库用户。1.使用使用SSMS修改和删除数据库用户修改和删除数据库用户9494MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)修改和删除数据库用户(三)修改和删除数据库用户修改数据库用户语法:修改数据库用户语法:ALTERUSER用户名用户名WITHNAME=新用户名新用户名-重命名数据库用户重命名数据库用户|DEFAULT_
79、SCHEMA=架构名架构名-重新设置默认架构重新设置默认架构.2.使用使用T-SQL修改和删除数据库用户修改和删除数据库用户9595MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)修改和删除数据库用户(三)修改和删除数据库用户删除登录名语法:删除登录名语法:DROPUSER用户名用户名2.使用使用T-SQL修改和删除数据库用户修改和删除数据库用户9696MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*单元单元1
80、.9 数据库的安全性管理数据库的安全性管理9797数据库的安全性管理概述数据库的安全性管理概述一一身份验证与模式配置身份验证与模式配置二二登录名管理登录名管理三三数据库用户管理数据库用户管理四四架构管理架构管理五五权限管理权限管理六六角色管理角色管理七七8MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*五、架构管理五、架构管理架构架构(Schema)是一组数据库对象的非重复命名空间,)是一组数据库对象的非重复命名空间,被数据库级别的主体(数据库用户或数据库角色)所拥有。被数据库级别的主体(数据库用户或数据
81、库角色)所拥有。可以将架构视为对象的容器,可以将架构视为对象的容器,每个数据库对象都属于一个每个数据库对象都属于一个架构。架构。可在数据库中创建架构、更改架构以及授予数据库用户访可在数据库中创建架构、更改架构以及授予数据库用户访问架构的权限。问架构的权限。数据库对象引用的完整限定名为:数据库对象引用的完整限定名为:v服务器服务器.数据库数据库.架构架构.对象对象什么是架构什么是架构9898MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*五、架构管理五、架构管理内置架构和默认架构内置架构和默认架构1创建架构
82、创建架构23修改和删除架构修改和删除架构9999MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置架构和默认架构(一)内置架构和默认架构展开展开“数据库数据库”“EDUC”“安全性安全性”“架构架构”节点,节点,可以看到内置架构可以看到内置架构。内置数据库用户所拥有的架构。内置数据库用户所拥有的架构。固定数据库角色所拥有的同名架构。固定数据库角色所拥有的同名架构。v例如:内置数据库用户例如:内置数据库用户“dbo”,所拥有的内置架构,所拥有的内置架构“dbo”1.内置架构内置架构100100Mic
83、rosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置架构和默认架构(一)内置架构和默认架构用于确定用于确定没有没有使用完全限定名的数据库对象的命名。使用完全限定名的数据库对象的命名。指定服务器确定对象的名称时所查找的第一个架构。指定服务器确定对象的名称时所查找的第一个架构。可以用可以用“CREATEUSER”和和“ALTERUSER”语句中的语句中的“WITHDEFAULT_SCHEMA=架构名架构名”选项进行设置与选项进行设置与修改修改如果选择缺省默认架构,所创建的数据库用户将用如果选择缺省默认架构,所
84、创建的数据库用户将用“dbo”作为它的默认架构。作为它的默认架构。2.默认架构默认架构101101MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置架构和默认架构(一)内置架构和默认架构例如:在创建表例如:在创建表“student”时没有指定默认架构,那么时没有指定默认架构,那么系统默认该表的架构是系统默认该表的架构是“dbo”,在其表名前自动加上,在其表名前自动加上“dbo”(注意不要与内置数据库用户(注意不要与内置数据库用户“dbo”混淆),标混淆),标识为识为“dbo.student”。2.
85、默认架构默认架构102102MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)内置架构和默认架构(一)内置架构和默认架构v案例案例1-11:服务器服务器“ZH”上的上的Windows用户用户“Hui”为为SQLServer管理员,自动管理员,自动关联的关联的登录名登录名为为“ZHHui”以以登录名登录名“ZHHui”的身份创建了数据库的身份创建了数据库“EDUC”,自动映射了内置,自动映射了内置数据库用户数据库用户“dbo”拥有拥有默认的内置默认的内置架构架构“dbo”在在数据库数据库“EDUC”中所
86、创建的中所创建的数据库对象表数据库对象表“Studentv完整完整限定名为:限定名为:ZH.EDUC.dbo.Student。在连接到该服务器。在连接到该服务器“ZH”后,后,选择当前数据库为选择当前数据库为“EDUC”(USEEDUC),设置默认架构为),设置默认架构为“dbo”时,时,限定名称可以省略为:限定名称可以省略为:Student。数据库对象标识符数据库对象标识符103103MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*五、五、 架构管理架构管理内置架构和默认架构内置架构和默认架构1创建架构
87、创建架构23修改和删除架构修改和删除架构104104MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)(二)创建架构创建架构例例8:为数据库为数据库“EDUC”的用户的用户“Zhangmin”创建所拥有创建所拥有的架构的架构“Zhang”数据库数据库“EDUC”“安全性安全性”“架构架构”节点,右键单击节点,右键单击“架构架构”节点,从快捷菜单中选择节点,从快捷菜单中选择“新建架构新建架构”命令命令1.使用使用SSMS创建架构创建架构105105MicrosoftSQL Server 2012 SQL
88、Server2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)(二)创建架构创建架构例例8:为数据库:为数据库“EDUC”的用户的用户“Zhangmin”创建所拥有创建所拥有的架构的架构“Zhang”【架构架构-新建新建】窗口中,单击窗口中,单击“搜索搜索”按钮,在按钮,在【查找对象查找对象】对话框中选择架构所有者(数据库用户对话框中选择架构所有者(数据库用户“Zhangmin”)1.使用使用SSMS创建架构创建架构106106MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二
89、)(二)创建架构创建架构例例8:为数据库:为数据库“EDUC”的用户的用户“Zhangmin”创建所拥有创建所拥有的架构的架构“Zhang”【架构架构-新建新建】窗口,输入架构名称窗口,输入架构名称“Zhang”1.使用使用SSMS创建架构创建架构107107MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)(二)创建架构创建架构例例8:为数据库为数据库“EDUC”的用户的用户“Zhangmin”创建所拥有创建所拥有的架构的架构“Zhang”展开展开“EDUC”“安全性安全性”“架构架构”节点,可以看
90、到所节点,可以看到所建数据库用户建数据库用户“Zhang”所拥有的架构所拥有的架构“Zhang”1.使用使用SSMS创建架构创建架构108108MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)(二)创建架构创建架构2.使用使用T-SQL创建架构创建架构109109创建架构的基本语法如下:创建架构的基本语法如下:CREATESCHEMA架构名架构名AUTHORIZATION拥有者拥有者CREATETABLE|CREATEVIEW|权限语句权限语句.MicrosoftSQL Server 2012 SQ
91、LServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)(二)创建架构创建架构2.使用使用T-SQL创建架构创建架构110110例例9:在数据库在数据库“EDUC”中,创建数据库用户中,创建数据库用户“Shijun”所拥有的架构所拥有的架构“Shi”,并在其中创建家庭住址表,并在其中创建家庭住址表“Address”。对数据库用户。对数据库用户“Zhaochg”授予对架构授予对架构“Shi”的的“SELECT”权限。权限。代码代码如下:如下:-创建数据库用户创建数据库用户“Shijun”所拥有的架构所拥有的架构“Shi”CREATESCHEMAShiAUTHOR
92、IZATIONShijun-在架构在架构“Shi”中创建表中创建表CREATETABLEAddress(SIDchar(10)PRIMARYKEY,Snamechar(8),Addrvarchar(50)NULL)-授予用户授予用户Zhaochg对架构对架构Shi的查询权限的查询权限GRANTSELECTONSCHEMA:ShiTOZhaochg注意:注意:创建架构创建架构“Shi”、创建表、创建表“Address”、权限设置、权限设置在在一条语句一条语句中完成中完成MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮
93、电出版社*(二)(二)创建架构创建架构2.使用使用T-SQL创建架构创建架构111111例例9:在数据库:在数据库“EDUC”中,创建数据库用户中,创建数据库用户“Shijun”所拥有的架构所拥有的架构“Shi”,并在其中创建家庭住址表,并在其中创建家庭住址表“Address”。对数据库用户。对数据库用户“Zhaochg”授予对架构授予对架构“Shi”的的“SELECT”权限。权限。MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)(二)创建架构创建架构2.使用使用T-SQL创建架构创建架构11211
94、2例例9:在数据库:在数据库“EDUC”中,创建数据库用户中,创建数据库用户“Shijun”所拥有的架构所拥有的架构“Shi”,并在其中创建家庭住址表,并在其中创建家庭住址表“Address”。对数据库用户。对数据库用户“Zhaochg”授予对架构授予对架构“Shi”的的“SELECT”权限。权限。MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)(二)创建架构创建架构2.使用使用T-SQL创建架构创建架构113113例例9:在数据库:在数据库“EDUC”中,创建数据库用户中,创建数据库用户“Shij
95、un”所拥有的架构所拥有的架构“Shi”,并在其中创建家庭住址表,并在其中创建家庭住址表“Address”。对数据库用户。对数据库用户“Zhaochg”授予对架构授予对架构“Shi”的的“SELECT”权限。权限。MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*五、五、 架构管理架构管理内置架构和默认架构内置架构和默认架构1创建架构创建架构23修改和删除架构修改和删除架构114114MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人
96、民邮电出版社*(三)修改和删除架构(三)修改和删除架构在架构之间传输安全对象在架构之间传输安全对象。基本基本语法:语法:ALTERSCHEMA架构名架构名TRANSFERsecurable_name1.修改架构修改架构115115MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)修改和删除架构(三)修改和删除架构例例10:修改:修改架构架构“Zhang”,将表,将表“Address”从架构从架构“Shi”传输到架构传输到架构“Zhang”。在架构之间传输安全对。在架构之间传输安全对象象。代码:代码:U
97、SEEDUCGOALTERSCHEMAZhangTRANSFERShi.Address1.修改架构修改架构116116MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(三)修改和删除架构(三)修改和删除架构语法:语法:DROPSCHEMA架构名架构名2.删除架构删除架构117117MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*单元单元1.9 数据库的安全性管理数据库的安全性管理118118数据库的安全性管理概述数据
98、库的安全性管理概述一一身份验证与模式配置身份验证与模式配置二二登录名管理登录名管理三三数据库用户管理数据库用户管理四四架构管理架构管理五五权限管理权限管理六六角色管理角色管理七七8MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*六、权限管理六、权限管理管理权限:管理权限:对服务器的管理任务、对数据库以及数据库对象的控制和对服务器的管理任务、对数据库以及数据库对象的控制和操作进行相应许可权限的管理。操作进行相应许可权限的管理。SQLServer可以为主体(登录名、数据库用户、角色)以可以为主体(登录名、数据
99、库用户、角色)以及架构授予对安全对象的操作权限。及架构授予对安全对象的操作权限。v仅简单介绍数据库用户对仅简单介绍数据库用户对数据库对象数据库对象和对和对数据库数据库的权限管的权限管理。理。什么是权限什么是权限119119MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*六、权限管理六、权限管理授予权限:授予权限:允许数据库用户或角色具有某种操作权。允许数据库用户或角色具有某种操作权。撤销权限:撤销权限:删除以前在数据库内的用户或角色上授予或拒删除以前在数据库内的用户或角色上授予或拒绝的权限。绝的权限。拒绝
100、权限:拒绝权限:拒绝给数据库用户授予权限以防止安全用户通拒绝给数据库用户授予权限以防止安全用户通过其组或角色成员继承权限。过其组或角色成员继承权限。什么是数据库用户的权限管理什么是数据库用户的权限管理120120MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*六、权限管理六、权限管理对象权限管理对象权限管理1数据库权限管理数据库权限管理2121121MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)对象权限管理(
101、一)对象权限管理为数据库用户设置权限是数据库对象级的安全策略为数据库用户设置权限是数据库对象级的安全策略用于控制数据库用户(或角色)对数据库对象的操作。用于控制数据库用户(或角色)对数据库对象的操作。用户的权限用户的权限操作操作表、视图、存储过程表、视图、存储过程(数据库对象数据库对象)权权限限使用使用资源资源1、资源、资源2什么是数据库对象管理权限什么是数据库对象管理权限122122MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)对象权限管理(一)对象权限管理数据库对象:数据库对象:表、视图和存储
102、过程表、视图和存储过程 对象权限:对象权限:对于表的对于表的INSERT、UPDATE、DELETE和和SELECT对于列的对于列的SELECT和和UPDATE权限权限对于外码的引用对于外码的引用REFERENCES权限权限对于存储过程的执行对于存储过程的执行EXECUTE权限权限 有哪些数据库对象和权限有哪些数据库对象和权限123123MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)对象权限管理(一)对象权限管理例例11:为登录名为登录名“ZHZhangmin”的的“EDUC”数据库用户数据库用户
103、“Zhangmin”授予表授予表“Student”、“SC”和和“Course”的的INSERT和和SELECT等操作权限。等操作权限。步骤:步骤:在在【对象资源管理器对象资源管理器】窗口中,展开窗口中,展开“数据库数据库”“EDUC”“安全性安全性”“用户用户”节点节点右键右键“Zhangmin”节点,从快捷菜单中选择节点,从快捷菜单中选择“属性属性”命令命令1.使用使用SSMS管理对象权限管理对象权限124124MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)对象权限管理(一)对象权限管理【数据
104、库用户数据库用户-Zhangmin】窗口窗口【安全对象安全对象】页页选择安全对象选择安全对象选择相应权限选择相应权限1.使用使用SSMS管理对象权限管理对象权限125125MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)对象权限管理(一)对象权限管理授予权限的语法:授予权限的语法:GRANT对象权限名对象权限名,.n -授予对象权授予对象权限限ON表名表名|视图名视图名|存储过程名存储过程名|标量函数标量函数|.-对指定的数据库对象对指定的数据库对象TO数据库用户名数据库用户名|数据库角色名数据库角
105、色名,.n-为指定的数据库用户或角色为指定的数据库用户或角色WITHGRANTOPTION-赋予授权权赋予授权权限限2.使用使用T-SQL管理对象权限管理对象权限126126MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)对象权限管理(一)对象权限管理例例12:为为使使前前面面例例子子中中的的学学生生用用户户“Wuqj”和和“Zhaochg”能能够够查查询询“EDUC”数数据据库库中中的的“Student”、“Course”和和“SC”表表,并并能能够够修修改改“SC”表表中中的的成成绩绩列列“Sc
106、ores”,试试授授予予这这些些用用户户SELECT操操作作权权限限和和UPDATE(Scores)操操作作权权限,同时获得将此权限转授给别的用户的权限。限,同时获得将此权限转授给别的用户的权限。2.使用使用T-SQL管理对象权限管理对象权限127127MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)对象权限管理(一)对象权限管理代码:代码:USEEDUCGRANTSELECTONStudentTOWuqj,Zhaochg-授予用户对表授予用户对表Student的的SELECT查询权限查询权限GRA
107、NTSELECTONCourseTOWuqj,Zhaochg-授予用户对表授予用户对表Course的的SELECT查询权限查询权限/*授予用户对表授予用户对表SC的的SELECT查询权限和查询权限和UPDATE更新列更新列Scores的权的权限限*/GRANTSELECT,UPDATE(Scores)ONSCTOWuqj,ZhaochgWITHGRANTOPTION2.使用使用T-SQL管理对象权限管理对象权限128128MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)对象权限管理(一)对象权限管理
108、以登录名以登录名“Wuqj”连接到服务器连接到服务器2.使用使用T-SQL管理对象权限管理对象权限129129MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)对象权限管理(一)对象权限管理可以可以更新更新“SC”表中的成绩列表中的成绩列“Scores”2.使用使用T-SQL管理对象权限管理对象权限130130MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)对象权限管理(一)对象权限管理撤销撤销权限的语法:
109、权限的语法:REVOKE对象权限名对象权限名,.n-撤销授予的对象权限撤销授予的对象权限ON表名表名|视图名视图名|存储过程名存储过程名|标量函数标量函数|.-对指定的数据库对象对指定的数据库对象FROM数据库用户名数据库用户名|数据库角色名数据库角色名,.n-从指定的数据库用户或角色从指定的数据库用户或角色RESTRICT|CASCADE2.使用使用T-SQL管理对象权限管理对象权限131131MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)对象权限管理(一)对象权限管理例例13:从从数数据据库库
110、用用户户“Zhaochg”那那里里回回收收对对数数据据库库对对象象“SC”表的更新表的更新UPDATE(Scores)操作权限。)操作权限。代码:代码:USEEDUCREVOKEUPDATE(Scores)ONSCFROMZhaochgCASCADE2.使用使用T-SQL管理对象权限管理对象权限132132MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)对象权限管理(一)对象权限管理拒绝权限的语法:拒绝权限的语法:DENY对象权限名对象权限名,.n-拒绝指定的对象权限拒绝指定的对象权限ON表名表名|
111、视图名视图名|存储过程名存储过程名|标量函数标量函数|.-对指定的数据库对象对指定的数据库对象TO数据库用户名数据库用户名|数据库角色名数据库角色名,.n-对指定的数据库用户或角色对指定的数据库用户或角色例例14:对数据库对象对数据库对象“Course”表,拒绝数据库用户表,拒绝数据库用户“Zhaochg”进行查询(进行查询(SELECT)。)。代码:代码:USEEDUCDENYSELECTONCourseTOZhaochg2.使用使用T-SQL管理对象权限管理对象权限133133MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮
112、电出版社人民邮电出版社*六、六、 权限管理权限管理对象权限管理对象权限管理1数据库权限管理数据库权限管理2134134MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库权限管理(二)数据库权限管理数据库权限:数据库权限:nCREATE|ALTER|DROPv数据库数据库DATABASEv数据库对象数据库对象TABLE/VIEW/DEFAULT/SCHEMA/FUNCTION/PROCEDURElBACKUPDATABASE和和BACKUPLOG有哪些数据库权限有哪些数据库权限135135Micr
113、osoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库权限管理(二)数据库权限管理例例15:为为数数据据库库“EDUC”的的数数据据库库用用户户“ZHZhangmin”设设置置数数据据库库权权限限,使使之之可可以以在在该该数数据据库库中中创创建建表表(CREATETABLE),对对“Student”、“Course”和和“SC”表表创创建建视视图(图(CREATEVIEW)。)。说明:说明:如果数据库用户没有数据库语句权限,在执行某些语句时如果数据库用户没有数据库语句权限,在执行某些语句时会弹出错误提示会弹
114、出错误提示有了语句权限还需要拥有一个创建对象的架构,否则也会有了语句权限还需要拥有一个创建对象的架构,否则也会弹出错误提示弹出错误提示1.使用使用SSMS管理数据库权限管理数据库权限136136MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库权限管理(二)数据库权限管理步骤:步骤:设置默认架构设置默认架构在在【对对象象资资源源管管理理器器】窗窗口口中中,展展开开数数据据库库“EDUC”“安安全全性性”“架架构构”节节点点,用用右右键键单单击击“架架构构”节节点点,从从弹弹出出的快捷菜单中选择的
115、快捷菜单中选择“新建架构新建架构”命令命令在在【架构架构-新建新建】窗口,创建架构窗口,创建架构“Zhang”在在【架架构构-新新建建】窗窗口口中中,单单击击“搜搜索索”按按钮钮,在在【查查找找对对象象】对话框中选择架构所有者(数据库用户对话框中选择架构所有者(数据库用户“Zhangnin”)1.使用使用SSMS管理数据库权限管理数据库权限137137MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库权限管理(二)数据库权限管理展展开开“EDUC”“安安全全性性”“用用户户”节节点点,右右键键“
116、用用户户”节点,从快捷菜单中选择节点,从快捷菜单中选择“属性属性”命令命令在在【数数据据库库用用户户-Zhangmin】窗窗口口中中,设设置置数数据据库库用用户户“Zhangmin”默认架构默认架构“Zhang”1.使用使用SSMS管理数据库权限管理数据库权限138138MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库权限管理(二)数据库权限管理在在【数数据据库库属属性性-EDUC】窗窗口口中中的的【权权限限】页页中中设设置置数数据据库权限库权限1.使用使用SSMS管理数据库权限管理数据库权限
117、139139MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库权限管理(二)数据库权限管理在在【数据库属性数据库属性-EDUC】窗口中的窗口中的【权限权限】页中设置权限页中设置权限1.使用使用SSMS管理数据库权限管理数据库权限140140MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库权限管理(二)数据库权限管理以以Windows用用户户“Zhangmin”的的身身份份连连接接到到数数据据库库
118、引引擎擎服服务器,在查询编辑器中输入务器,在查询编辑器中输入T-SQL代码如下:代码如下:USEEDUCGOCREATETABLETeacher-CREATETABLE权限权限(EIDchar(10)NOTNULLPRIMARYKEY,Enamechar(8)NULL,Sexnchar(1)NULL,Birthdatedate,Titlechar(8)GOCREATEVIEWSoftScores-CREATEVIEW权限权限ASSELECT*FROMStudentWHERE(Specialty=软件技术软件技术)-SELECT对象权限对象权限1.使用使用SSMS管理数据库权限管理数据库权限14
119、1141MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库权限管理(二)数据库权限管理服服务务器器“ZH”的的Windows用用户户“Zhangmin”关关联联了了登登录录名名“ZHZhangmin”,使其可以连接到服务器;,使其可以连接到服务器;该该登登录录名名被被映映射射了了数数据据库库用用户户“Zhangmin”,使使其其可可以以访访问问数据库数据库“EDUC”;数数据据库库用用户户“Zhangmin”拥拥有有架架构构“Zhang”,同同时时又又被被授授予对表予对表“Student”的对象
120、权限的对象权限“SELECT”数数据据库库用用户户“Zhangmin”被被授授予予数数据据库库权权限限“CREATETABLE”和和“CREATEVIEW”,使使其其可可以以在在所所拥拥有有的的架架构构中中创创建表和视图。建表和视图。安全性控制关系归纳安全性控制关系归纳142142MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库权限管理(二)数据库权限管理授予权限的语法:授予权限的语法:GRANT数据库权限名数据库权限名,.n-授予数据库权限授予数据库权限TO数据库用户名数据库用户名|数据库角
121、色名数据库角色名,.n-为指定的数据库用户或角色为指定的数据库用户或角色例例16:授予授予“EDUC”数据库用户数据库用户“Shijun”创建表的权限。创建表的权限。代码:代码:USEEDUCGRANTCREATETABLETOShijun2.使用使用T-SQL管理数据库权限管理数据库权限143143MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库权限管理(二)数据库权限管理撤销权限的语法:撤销权限的语法:REVOKE数据库权限名数据库权限名,.n-撤销授予的数据库权限撤销授予的数据库权限FR
122、OM数据库用户名数据库用户名|数据库角色名数据库角色名,.n-从指定的数据库用户或角色从指定的数据库用户或角色例例17:撤销数据库用户撤销数据库用户“Shijun”创建表的权限。创建表的权限。代码:代码:USEEDUCREVOKECREATETABLEFROMShijun2.使用使用T-SQL管理数据库权限管理数据库权限144144MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库权限管理(二)数据库权限管理拒绝为数据库用户或角色授予数据库权限的语法:拒绝为数据库用户或角色授予数据库权限的语法:
123、DENY数据库权限名数据库权限名,.n -拒绝指定的数据库权限拒绝指定的数据库权限TO数据库用户名数据库用户名|数据库角色名数据库角色名,.n-对指定的数据库用户或角色对指定的数据库用户或角色例例18:对数据库用户对数据库用户“Shijun”拒绝创建表的权限。拒绝创建表的权限。代码:代码:USEEDUCDENYCREATETABLETOShijun2.使用使用T-SQL管理数据库权限管理数据库权限145145MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*单元单元1.9 数据库的安全性管理数据库的安全性管
124、理146146数据库的安全性管理概述数据库的安全性管理概述一一身份验证与模式配置身份验证与模式配置二二登录名管理登录名管理三三数据库用户管理数据库用户管理四四架构管理架构管理五五权限管理权限管理六六角色管理角色管理七七8MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*七、角色管理七、角色管理角色(角色(Role):角色是登录名和数据库用户的集合,是服):角色是登录名和数据库用户的集合,是服务器级和数据库级的二级主体。务器级和数据库级的二级主体。角色的作用:角色的作用:v将一组具有相同权限的一组登录名或数据
125、库用户组织在一将一组具有相同权限的一组登录名或数据库用户组织在一起,添加为某一角色(起,添加为某一角色(Role)的成员,使其具有与该角色相)的成员,使其具有与该角色相同的身份和权限,而不必分别为他们授予这些权限,使得将同的身份和权限,而不必分别为他们授予这些权限,使得将多种权限授予给各个登录名或数据库用户这一复杂任务得到多种权限授予给各个登录名或数据库用户这一复杂任务得到简化。简化。什么是角色什么是角色147147MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*七、角色管理七、角色管理SQLServer
126、提供以下两个级别的角色:提供以下两个级别的角色:服务器服务器级:级:固定服务器角色固定服务器角色、服务器角色。、服务器角色。数据库数据库级:级:固定数据库角色固定数据库角色、数据库角色数据库角色和应用程序角色。和应用程序角色。什么是角色什么是角色148148MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)服务器角色管理(一)服务器角色管理固定服务器角色:固定服务器角色:SQLServer服服务务器器级级的的二二级级主主体体,其其成成员员可可以以是是登登录录服服务务器器的登录名。的登录名。作用:作用:
127、每个角色对应着相应的服务器管理权限。每个角色对应着相应的服务器管理权限。这些固定服务器角色一般用于授权给这些固定服务器角色一般用于授权给DBA(数据库管理员)(数据库管理员)拥拥有有某某个个或或某某些些角角色色的的DBA就就会会获获得得与与相相应应角角色色对对应应的的服服务务器管理权限。器管理权限。1.固定服务器角色固定服务器角色149149MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)服务器角色管理(一)服务器角色管理1.固定服务器角色固定服务器角色150150固定固定服务器服务器角色角色管理权
128、限说明管理权限说明sysadminsysadmin可以在服务器中执行任何活动。serveradmin可以更改服务器范围内的配置选项和关闭服务器。securityadmin可以管理登录名及其属性,管理服务器级和数据库级的访问权限,与sysadmin等效。processadmin可以终止在SQL Server实例中运行的进程。setupadmin可以使用T-SQL语句添加和删除链接服务器。bulkadmin可以运行BULK INSERT语句,从文本文件中将数据导入SQL Server。diskadmin可以管理磁盘文件,指派文件组、附加和分离数据库等等。dbcreator可以创建、更改、删除和还原
129、任何数据库。publicpublic初始时状态时仅有VIEW ANY DATABASE(查看任意数据库)权限。每个SQL Server登录名都属于public服务器角色,如果未向某个服务器主体授予或拒绝对某个安全对象的特定权限,该登录名将继承授予该对象的public权限。MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)服务器角色管理(一)服务器角色管理例如:固定服务器角色例如:固定服务器角色“sysadmin”的成员的成员1.固定服务器角色固定服务器角色151151MicrosoftSQL Serv
130、er 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)服务器角色管理(一)服务器角色管理例如:登录名例如:登录名“ZHHui”为服务器角色为服务器角色“sysadmin”1.固定服务器角色固定服务器角色152152MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)服务器角色管理(一)服务器角色管理例如:服务器角色例如:服务器角色“public”属性属性1.固定服务器角色固定服务器角色153153MicrosoftSQL Server 2012 S
131、QLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)服务器角色管理(一)服务器角色管理例如:登录名例如:登录名“ZHZhangmin”的属性的属性1.固定服务器角色固定服务器角色154154MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)服务器角色管理(一)服务器角色管理例例19:将将SQLServer登录名登录名“ZHShijun”添加为固定服添加为固定服务器角色务器角色“dbcreator”的成员,使其协助数据库管理员完的成员,使其协助数据库管理员完成在服
132、务器中创建和修改数据库的任务。成在服务器中创建和修改数据库的任务。方法一:在固定服务器角色属性窗口中,将登录名添加为方法一:在固定服务器角色属性窗口中,将登录名添加为固定服务器角色的成员。固定服务器角色的成员。2.使用使用SSMS为登录名分配固定服务器角色为登录名分配固定服务器角色155155MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)服务器角色管理(一)服务器角色管理例例19:将将SQLServer登录名登录名“ZHShijun”添加为固定服添加为固定服务器角色务器角色“dbcreator”的
133、成员,使其协助数据库管理员完的成员,使其协助数据库管理员完成在服务器中创建和修改数据库的任务。成在服务器中创建和修改数据库的任务。2.使用使用SSMS为登录名分配固定服务器角色为登录名分配固定服务器角色156156MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)服务器角色管理(一)服务器角色管理例例19:将将SQLServer登录名登录名“ZHShijun”添加为固定服添加为固定服务器角色务器角色“dbcreator”的成员,使其协助数据库管理员完的成员,使其协助数据库管理员完成在服务器中创建和修改
134、数据库的任务。成在服务器中创建和修改数据库的任务。方法二:在登录名属性窗口中,为登录名分配固定服务器方法二:在登录名属性窗口中,为登录名分配固定服务器角色。角色。2.使用使用SSMS为登录名分配固定服务器角色为登录名分配固定服务器角色157157MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)服务器角色管理(一)服务器角色管理例例19:将将SQLServer登录名登录名“ZHShijun”添加为固定服添加为固定服务器角色务器角色“dbcreator”的成员,使其协助数据库管理员完的成员,使其协助数据
135、库管理员完成在服务器中创建和修改数据库的任务。成在服务器中创建和修改数据库的任务。方法二:在登录名属性窗口中,为登录名分配固定服务器方法二:在登录名属性窗口中,为登录名分配固定服务器角色。角色。2.使用使用SSMS为登录名分配固定服务器角色为登录名分配固定服务器角色158158MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)服务器角色管理(一)服务器角色管理系统过程:系统过程:sp_addsrvrolemember sp_dropsrvrolemember例例20:将将Windows登录名登录名“Z
136、HZhangmin”添加为添加为“diskadmin”服务器角色的成员,使服务器角色的成员,使Windows用户用户“Zhangmin”具有在服务器中分离和附加数据库的权限。具有在服务器中分离和附加数据库的权限。代码:代码:EXECUTEsp_addsrvrolememberZHZhangmin,diskadmin3.使用使用T-SQL为登录用户分配固定服务器角色为登录用户分配固定服务器角色159159MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(一)服务器角色管理(一)服务器角色管理系统过程:系统过
137、程:sp_addsrvrolemember sp_dropsrvrolemember例例20:将将Windows登录名登录名“ZHZhangmin”添加为添加为“diskadmin”服务器角色的成员,使服务器角色的成员,使Windows用户用户“Zhangmin”具有在服务器中分离和附加数据库的权限。具有在服务器中分离和附加数据库的权限。代码:代码:EXECUTEsp_addsrvrolememberZHZhangmin,diskadmin3.使用使用T-SQL为登录用户分配固定服务器角色为登录用户分配固定服务器角色160160MicrosoftSQL Server 2012 SQLServe
138、r2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库角色管理(二)数据库角色管理数据库角色数据库角色n数据库级的二级主体,其成员可以是数据库用户。数据库级的二级主体,其成员可以是数据库用户。n可可以以使使用用数数据据库库角角色色为为一一组组数数据据库库用用户户指指定定数数据据库库访访问问的的权限。权限。l数据库角色管理任务:数据库角色管理任务:n创建新的数据库角色;创建新的数据库角色;n授予权限给创建的角色;授予权限给创建的角色;n添加数据库用户为这个角色的成员。添加数据库用户为这个角色的成员。数据库角色数据库角色161161MicrosoftSQL Serve
139、r 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库角色管理(二)数据库角色管理固定数据库角色固定数据库角色在在创创建建每每个个数数据据库库时时都都会会添添加加这这些些角角色色到到新新创创建建的的数数据据库库中中,每个角色对应着相应的权限。每个角色对应着相应的权限。这这些些数数据据库库角角色色用用于于授授权权给给数数据据库库用用户户,拥拥有有某某些些角角色色的的用用户会获得相应的权限。户会获得相应的权限。在在【对对象象资资源源管管理理器器】窗窗口口中中,展展开开“数数据据库库”“目目的的数数据据库库”“安安全全性性”“角角色色”“数
140、数据据库库角角色色”节节点点,即即可看到固定数据库角色。可看到固定数据库角色。1.固定数据库角色固定数据库角色162162MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库角色管理(二)数据库角色管理1.固定数据库角色固定数据库角色163163数据库角色管理权限说明db_ownerdb_owner可以执行数据库的所有配置和维护行为,还可以删除数据库。db_securityadmin可以修改数据库角色成员并管理权限。db_accessadmin可以为Windows登录名和SQL Server登录名
141、添加或删除数据库访问权限。db_backupoperator可以备份数据库。db_ddladmin可以执行任何DDL(数据定义语言)命令。db_datawriter可以在所有用户表中添加、删除和更新数据。db_datareader可以从所有用户表中读取所有数据。db_denydatawriter不能添加、删除和更新数据库内用户表中的任何数据。db_denydatareader不能读取数据库内用户表中的任何数据。publicpublic初始状态时对数据库没有访问权限。每个数据库用户都属于public角色,如果未向某个数据库用户授予或拒绝对安全对象的特定权限时,该用户将继承授予该对象的public
142、角色的权限。不能将用户从public角色中移除。MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库角色管理(二)数据库角色管理例如:例如:【数据库角色属性数据库角色属性-datareader】窗口,拥有的架构窗口,拥有的架构为为“db_datareader”,角色成员为数据库用户,角色成员为数据库用户“Cuili”1.固定数据库角色固定数据库角色164164MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(
143、二)数据库角色管理(二)数据库角色管理例如:例如:【数据库角色属性数据库角色属性-db_owner】窗口窗口【常规常规】页,页,可以看到拥有的架构为可以看到拥有的架构为“db_owner”,角色成员为数据库,角色成员为数据库用户用户“dbo”。1.固定数据库角色固定数据库角色165165MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库角色管理(二)数据库角色管理例例21:为使某系教师能够修改数据库为使某系教师能够修改数据库“EDUC”的课程名称,创建新的数的课程名称,创建新的数据库角色据库角色
144、“TeachersRole”,添加数据库用户成员,添加数据库用户成员“Shijun”和和“ZHTeachers”,分配对表,分配对表“Course”的的“更新更新(UPDATE)”“Cname”列的权限。列的权限。步骤:步骤:在在【对象资源管理器对象资源管理器】窗口中,展开窗口中,展开“数据库数据库”“EDUC”“安全性安全性”“角色角色”,右键,右键“数据库角数据库角色色”节点,快捷菜单中选择节点,快捷菜单中选择“新建数据库角色新建数据库角色”命令命令2.使用使用SSMS创建数据库角色创建数据库角色166166MicrosoftSQL Server 2012 SQLServer2012数据库
145、技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库角色管理(二)数据库角色管理【数据库角色数据库角色-新建新建】-【常规常规】页:页:设置角色和添加成员设置角色和添加成员2.使用使用SSMS创建数据库角色创建数据库角色167167MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库角色管理(二)数据库角色管理【数据库角色数据库角色-新建新建】-【安全对象安全对象】页:页:授予角色权限授予角色权限2.使用使用SSMS创建数据库角色创建数据库角色168168MicrosoftSQL
146、Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库角色管理(二)数据库角色管理基本语法基本语法CREATEROLE角色名角色名AUTHORIZATION拥有者拥有者说明说明创建角色后,可以使用创建角色后,可以使用GRANT、DENY和和REVOKE配置角色配置角色的数据库级别权限的数据库级别权限3.使用使用T-SQL创建数据库角色创建数据库角色169169MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库角色管理(二)数据
147、库角色管理例例22:指定数据库用户指定数据库用户“Cuili”为已建数据库角色为已建数据库角色“TeachersRole”的成员。的成员。步骤:步骤:在在【对象资源管理器对象资源管理器】窗口中,展开窗口中,展开“数据库数据库”“EDUC”“安全性安全性”“用户用户”,右键,右键“Cuili”节节点点从快捷菜单中选择从快捷菜单中选择“属性属性”4.使用使用SSMS为数据库用户分配数据库角色为数据库用户分配数据库角色170170MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库角色管理(二)数据库角
148、色管理【数据库用户数据库用户-Cuili】窗口窗口-【常规常规】页:页:分配用户角色分配用户角色4.使用使用SSMS为数据库用户分配数据库角色为数据库用户分配数据库角色171171MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*(二)数据库角色管理(二)数据库角色管理例例23:指定数据库用户指定数据库用户“ZHZhangmin”为数据库角色为数据库角色“TeachersRole”的成员。的成员。执行以下存储过程执行以下存储过程EXECUTE sp_addrolemember TeachersRole,Zhangmin5.使用使用T-SQL为数据库用户分配数据库角色为数据库用户分配数据库角色172172MicrosoftSQL Server 2012 SQLServer2012数据库技术及应用数据库技术及应用人民邮电出版社人民邮电出版社*数据库安全性管理小结数据库安全性管理小结173173周慧周慧SQL Server 2012数据库技术及应用数据库技术及应用