SQL-Server-2012数据库技术及应用1.9_第1页
SQL-Server-2012数据库技术及应用1.9_第2页
SQL-Server-2012数据库技术及应用1.9_第3页
SQL-Server-2012数据库技术及应用1.9_第4页
SQL-Server-2012数据库技术及应用1.9_第5页
已阅读5页,还剩169页未读 继续免费阅读

下载本文档

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

文档简介

教学单元1.9第11章数据库的安全性管理SQLServer2012数据库技术及应用案例1-11教务管理数据库的安全性管理数据库的安全性管理学习导航2数据库的安全性管理知识框架3单元1.9数据库的安全性管理能力目标能够根据数据库的安全性需求设置登录身份验证模式能够根据数据库的安全性需求创建登录名能够根据数据库的安全性需求创建数据库用户能够根据数据库的安全性需求进行架构管理能够根据数据库的安全性需求进行权限管理能够根据数据库的安全性需求进行角色管理能够处理好维护数据库安全和为用户服务之间的关系能够阅读并理解数据库安全有关的英文4单元1.9数据库的安全性管理知识目标数据库的安全性管理概述身份验证与模式配置方法登录名管理的方法数据库用户管理的方法架构管理的方法权限管理的方法角色管理的方法数据库安全有关的英文素质目标培养数据库管理员的责任心和管理潜力培养与用户的良好协调与沟通的能力5单元1.9数据库的安全性管理案例1-11教务管理数据库的安全性管理根据教务管理系统的安全性需求,进行服务器登录名、数据库用户、架构、权限以及角色的管理。设置身份验证模式使用SSMS或T-SQL创建Windows登录名使用SSMS或T-SQL创建SQLServer登录名使用SSMS或T-SQL创建数据库用户使用SSMS或T-SQL创建并管理架构、权限和角色工作任务67数据库的安全性管理概述一身份验证与模式配置二登录名管理三数据库用户管理四架构管理五权限管理六角色管理七8单元1.9数据库的安全性管理与建设方案保持一致安全特性延续策略改进增强安全机制操作系统级(Windows)网络传输级服务器级(SQLServer)数据库级数据库对象级SQLServer20128一、数据库的安全性管理概述一、数据库的安全性管理概述Windows级的安全性建立在操作系统安全系统控制的基础上。用户使用客户机通过网络实现SQLServer服务器的访问时,首先要获得计算机操作系统的使用权。操作系统管理员或者网络管理员负责管理。1.

Windows级的安全机制9一、数据库的安全性管理概述网络传输级的安全性主要建立在防御黑客恶意入侵以及数据加密技术的基础上。不允许SQLServer通过Internet直接访问提供防火墙或者入侵检测系统(IDS)SQLServer2012对关键数据进行了加密,使用AES-256加密算法来保护服务主密钥(SMK)和数据库主密钥(DMK),这是一种比早期版本中使用的3DES更新的加密算法。2.网络传输级的安全机制10一、数据库的安全性管理概述SQLServer服务器级的安全性建立在控制服务器登录名和密码的基础上。采用集成Windows登录和标准SQLServer登录两种方式。用户在登录SQLServer服务器时,要提供正确的登录名和密码才能获得SQLServer的访问权限。数据库管理员负责管理与设计合理的登录方式。3.

SQLServer服务器级的安全机制11一、数据库的安全性管理概述SQLServer数据库级的安全性建立在控制合法数据库用户的基础上。要获得访问服务器上各数据库的权利,必须创建映射到登录名的数据库用户。4.

数据库级的安全机制12一、数据库的安全性管理概述SQLServer数据库对象级的安全性建立在授权与检查用户对数据库对象访问的权限的基础上。用户操作数据库对象时,必须检查该用户是否具有操作该对象的权限,SQLServer将自动把该数据库对象的拥有权赋予创建该对象的拥有者。对象的拥有者可以实现该对象的安全控制。5.

数据库对象级的安全机制13一、数据库的安全性管理概述第一步:当用户连接服务器时,验证用户是否具有关联的登录名。第二步:当用户访问数据库时,验证用户是否映射了相应的数据库用户。第三步:当用户访问数据库的对象时,验证用户是否具相应的权限。三个验证过程14单元1.9

数据库的安全性管理15数据库的安全性管理概述一身份验证与模式配置二登录名管理三数据库用户管理四架构管理五权限管理六角色管理七8二、身份验证与模式配置Windows用户来自于Windows的用户或组。SQLServer用户SQLServer内部创建的SQLServer登录名。两种类型的用户16二、身份验证与模式配置Windows身份验证模式启用Windows身份验证并禁用SQLServer身份验证。混合身份验证模式同时启用Windows身份验证和SQLServer身份验证。两种验证模式17二、身份验证与模式配置Windows身份验证运行的是操作系统的安全机制以Windows用户身份连接到服务器时,由操作系统验证用户的账户名和密码,SQLServer仅关联其相应的登录名。用户一旦通过操作系统的验证,SQLServer就不再需要其他的身份验证了。使用此模式与服务器建立的连接称为信任连接。系统默认Windows身份验证模式它利用Kerberos安全协议,通过强密码的复杂性验证提供密码策略强制,提供账户锁定支持,并且支持密码过期,比混合模式更为安全。1.

Windows身份验证18二、身份验证与模式配置SQLServer身份验证运行的是数据库服务器安全机制。以SQLServer用户身份连接到服务器时,必须提供SQLServer内部创建的登录名和密码,SQLServer将其与存储在系统表中的登录名和密码进行比较来进行身份验证。SQLServer登录名和密码的连接称为非信任连接。提供SQLServer身份验证只是为了向后兼容。如果必须使用SQLServer登录名以适应早期应用程序,则必须为所有SQLServer用户设置强密码。2.

SQLServer身份验证19二、身份验证与模式配置启动SSMS并连接到数据库引擎服务器在【对象资源管理器】窗口中,右键单击数据库引擎服务器节点,在快捷菜单中选择“属性”命令3.配置身份验证模式20二、身份验证与模式配置选择【服务器属性】窗口—【安全性】页在“服务器身份验证”选项区域中选择需要的验证模式设置登录审核3.设置身份验证模式21单元1.9

数据库的安全性管理22数据库的安全性管理概述一身份验证与模式配置二登录名管理三数据库用户管理四架构管理五权限管理六角色管理七8三、登录名管理登录名是创建在数据库引擎服务器中可由安全系统进行身份验证的安全主体,用户需要使用登录名连接到SQLServer服务器。任何一个Windows用户或者SQLServer用户要连接到数据库引擎,都必须关联一个合法的登录名。什么是登录名?23三、登录名管理内置登录名1创建Windows登录名23创建SQLServer登录名24修改和删除登录名4(一)内置登录名内置Windows和SQLServer登录名25(一)内置登录名SQLServer2012安装过程中指定的SQLServer管理员例如:计算机“ZH”上的Windows用户“Hui”被指定为SQLServer管理员SQLServer2012的安装过程中,数据库引擎配置页,指定当前用户为SQLServer管理员。1.

SQLServer管理员的登录名名26(一)内置登录名27(一)内置登录名SQLServer2012安装过程中指定的SQLServer管理员SQLServer自动为其创建登录名固定服务器角色“sysadmin”的成员可以在服务器中执行任何活动1.

SQLServer管理员的登录名名28(一)内置登录名SQLServer2012安装过程中指定的SQLServer管理员SQLServer自动为其创建登录名固定服务器角色“sysadmin”的成员(见11.7角色管理)可以在服务器中执行任何活动1.

SQLServer管理员的登录名名29(一)内置登录名SQLServer2012安装过程中指定的SQLServer管理员SQLServer自动为其创建登录名固定服务器角色“sysadmin”的成员可以在服务器中执行任何活动展开“安全性”→“登录名”节点,右键单击“ZH\Hui”节点,从快捷菜单中选择“属性”命令,在【登录属性-ZH\Hui】窗口—【服务器角色】页中,也可以看到该登录名被设置为固定服务器角色“sysadmin”。1.

SQLServer管理员的登录名名30(一)内置登录名31(一)内置登录名sa(superadministrator)是内置的SQLServer系统管理员SQLServer身份验证进行连接始终作为数据库引擎中的登录名存在对SQLServer有完全的管理权限安装时默认为禁用可在【登录属性-sa】的【状态】页

中选择登录为“启用”2.

sa账户的登录名名32(一)内置登录名【登录属性-sa】窗口—【状态】页【状态】页

中选择登录为“启用”2.

sa账户的登录名33(一)内置登录名【常规】页中为登录名“sa”设置强密码并可靠记忆2.

sa账户的登录名34(一)内置登录名为了能让SQLServer服务在Windows系统中正常的启动和运行,需要配置相应的服务账户并获取需要访问操作系统文件的权限。SQLServer安装之后系统自动创建相应服务账户的登录名,并添加为相应固定服务器角色的成员。不可删除3.服务账户的登录名名35(一)内置登录名名称由“##”括起来的登录名是基于证书的SQLServer登录名,仅供内部系统使用,不应删除。例如:##MS_PolicyEventProcessingLogin####MS_PolicyTsqlExecutionLogin##4.基于证书的SQLServer登录名名36三、登录名管理内置登录名1创建Windows登录名23创建SQLServer登录名37修改和删除登录名4(二)创建Windows登录名Windows登录名是Windows级的安全主体。如果用户使用Windows身份连接服务器,将由操作系统验证该Windows(本地或域)用户的账户名和密码,而在数据库引擎服务器上仅需要为该用户关联一个登录名案例:在本地机“ZH”中创建了一些Windows用户和Windows组,读者可以在Windows操作系统的【计算机管理】窗口中创建。安全主体——Windows登录名名38(二)创建Windows登录名在【计算机管理】窗口中建立新用户39(二)创建Windows登录名在【计算机管理】窗口中建立组40(二)创建Windows登录名在【新建组】对话框中建立组并添加成员41(二)创建Windows登录名ZH本地机Windows用户用户密码ZH本地机Windows组Windows登录名默认数据库数据库用户Zhangmin******ZH\ZhangminEDUC*ZhangminShijun******ZH\ShijunEDUC*ShijunZhlian******TeachersZH\TeachersEDUCZH\TeachersZpeng******Zweishi******Hui(本地管理员)******AdministratorsZH\Hui(指定的SQLServer管理员)masterdbo(内置)42(二)创建Windows登录名例1:使用SSMS创建与服务器“ZH”的Windows用户“Zhangmin”关联的登录名“ZH\Zhangmin”。以指定SQLServer管理员用户登录计算机,启动SSMS并连接到数据库引擎服务器在【对象资源管理器】窗口中展开“安全性”节点,用右键单击“登录名”节点在弹出的快捷菜单中选择“新建登录名”命令1.使用SSMS创建Windows登录名43(二)创建Windows登录名【登录名-新建】窗口-【常规】页,选择“Windows身份验证”“登录名”输入服务器名称和Windows用户名称“ZH\Zhangmin”等1.使用SSMS创建Windows登录名44(二)创建Windows登录名在【对象资源管理器】窗口中展开“安全性”→“登录名”节点,可以看到新建的登录名“ZH\Zhangmin”1.使用SSMS创建Windows登录名45(二)创建Windows登录名切换用户,再次以Windows用户“Zhangmin”的身份启动计算机,使用SSMS连接SQLServer数据库引擎服务器,仍然会弹出【连接到服务器】失败的错误提示对话框。因为该登录名“ZH\Zhangmin”尚不是默认数据库“EDUC”的合法用户1.使用SSMS创建Windows登录名46(二)创建Windows登录名例2:创建与Windows组“Teachers”关联的登录名以指定SQLServer管理员用户登录计算机,启动SSMS并连接到数据库引擎服务器在【对象资源管理器】窗口中展开“安全性”节点,用右键单击“登录名”节点在弹出的快捷菜单中选择“新建登录名”命令1.使用SSMS创建Windows(组)登录名47(二)创建Windows登录名【登录名-新建】窗口,选择“Windows身份验证”“登录名”输入服务器和Windows用户名称“ZH\Zhangmin”注意:可借助检索1.使用SSMS创建Windows(组)登录名48(二)创建Windows登录名【登录名-新建】窗口—【用户映射】页选择数据库注意:可以在此创建与登录名同名的数据库用户1.使用SSMS创建Windows(组)登录名49(二)创建Windows登录名在【对象资源管理器】窗口中展开“安全性”→“登录名”节点,可以看到新建的登录名“ZH\Teachers”1.使用SSMS创建Windows(组)登录名50(二)创建Windows登录名“数据库”→EDUC→“安全性”→“用户”可见新建数据库用户注意:此数据库用户尚无任何权限1.使用SSMS创建Windows(组)登录名51(二)创建Windows登录名切换用户,分别以Windows组“Teachers”的成员“Zhlian”“Zpeng”和“Zweishi”的身份启动计算机,使用SSMS连接SQLServer数据库引擎服务器,即可实现使用Windows身份验证连接到SQLServer实例。1.使用SSMS创建Windows(组)登录名52(二)创建Windows登录名连接成功之后,在【对象资源管理器】窗口中展开“数据库”→“EDUC”→“表”节点,发现只能看到“系统表”和“FileTables”而不能看到用户表。1.使用SSMS创建Windows(组)登录名53(二)创建Windows登录名右键单击“表”节点,从快捷菜单中选择“新建表”命令,也会弹出错误提示对话框,提示该用户没有CREATETABLE(新建表)的权限,1.使用SSMS创建Windows(组)登录名54(二)创建Windows登录名语法CREATELOGIN域名\登录名FROMWINDOWSWITHDEFAULT_DATABASE=默认数据库名,DEFAULT_LANGUAGE=[简体中文]|……2.使用T-SQL创建Windows登录名55(二)创建Windows登录名例3:创建与Windows用户“Shijun”关联的登录名“ZH\Shijun”,默认数据库为“EDUC”,默认数据库语言为“简体中文”。代码:CREATELOGIN[ZH\Shijun]

--方括号界定不规则标识符“\”FROMWINDOWSWITHDEFAULT_DATABASE=EDUC,--默认数据库DEFAULT_LANGUAGE=[简体中文]--默认语言2.使用T-SQL创建Windows登录名56(二)创建Windows登录名执行以上语句即可创建登录名“ZH\Shijun”2.使用T-SQL创建Windows登录名57三、登录名管理内置登录名1创建Windows登录名23创建SQLServer登录名58修改和删除登录名4(三)创建SQLServer登录名SQLServer登录名密

码默认数据库数据库用户Cuili(教师)******EDUCCuili(Reader、Writer)Zhaochg(学生)******EDUC*ZhaochgChengp(学生)******EDUCWuqj(学生)*******Wuqjsa(内置SQLServer管理员)******masterdbo(内置,无限制访问数据库)59(三)创建SQLServer登录名例4:为方便某系管理人员查看和管理本系学生的学习情况,创建一个使用SQLServer身份验证的登录名“Cuili”,密码为“******”,默认数据库为“EDUC”。为登录名“CuiLi”映射数据库用户“Cuili”,并赋予对数据库的读写权限,以使其能够对数据库“EDUC”进行读写访问。1.使用SSMS创建SQLServer登录名60(三)创建SQLServer登录名操作步骤:以指定SQLServer管理员用户登录计算机,启动SSMS并连接到数据库引擎服务器在【对象资源管理器】窗口中展开“安全性”节点,用右键单击“登录名”节点在弹出的快捷菜单中选择“新建登录名”命令1.使用SSMS创建SQLServer登录名61(三)创建SQLServer登录名【登录名-新建】窗口—[常规]页62(三)创建SQLServer登录名【登录名-新建】窗口——[服务器角色]页63(三)创建SQLServer登录名【登录名-新建】窗口—[用户映射]页64(三)创建SQLServer登录名查看映射了数据库用户“Cuili”的登录名“Cuili”对数据库对象的读写权限:单击【对象资源管理器】窗口的“连接”按钮,选择“数据库引擎”,在【连接到服务器】对话框中选择SQLServer身份验证,输入登录名“Cuili”和密码,单击“连接”按钮,即可连接到数据库引擎服务器。尝试访问数据库“EDUC”中的表,体会作为数据库角色“db_datareader”和“db_datawriter”成员的权限。1.使用SSMS创建SQLServer登录名65(三)创建SQLServer登录名语法:CREATELOGIN登录名 --创建登录名WITHPASSWORD=密码

--设置密码[,DEFAULT_DATABASE=默认数据库名][,DEFAULT_LANGUAGE=默认语言]...2.使用T-SQL创建SQLServer登录名66(三)创建SQLServer登录名例5:为使学生能够查看数据库“EDUC”中的学习信息,分别创建三个SQLServer用户的登录名:登录名“Zhaochg”(密码“216001”)登录名“Chengp”(密码“216119”)登录名“Wuqj”(密码“216111”)为前两个登录名设置默认数据库“EDUC”2.使用T-SQL创建SQLServer登录名67(三)创建SQLServer登录名代码:CREATELOGINZhaochg --创建登录名WITHPASSWORD=‘216001’,--设置密码DEFAULT_DATABASE=EDUC --设置默认数据库GOCREATELOGINChengp --创建登录名WITHPASSWORD=‘216119’ --设置密码DEFAULT_DATABASE=EDUC --设置默认数据库GO2.使用T-SQL创建SQLServer登录名68(三)创建SQLServer登录名代码:CREATELOGINWuqj --创建登录名WITHPASSWORD=‘216111’ --设置密码执行结果:2.使用T-SQL创建SQLServer登录名69(三)创建SQLServer登录名尝试连接在【连接到服务器】对话框中选择SQLServer身份验证,输入登录名“Wuqj”和密码“216111”,单击“连接”按钮2.使用T-SQL创建SQLServer登录名70三、登录名管理内置登录名1创建Windows登录名23创建SQLServer登录名71修改和删除登录名4(四)修改和删除登录名在【对象资源管理器】窗口中,右键单击“登录名”,从弹出的快捷菜单中选择“属性”命令,在打开的【登录属性】窗口中即可修改登录密码、默认数据库,并可以为登录名设置服务器角色、创建映射到此登录名的数据库用户等。右键单击“登录名”,从弹出的快捷菜单中选择“删除”命令,即可删除此登录名。在执行此操作前应该删除所映射的数据库用户。1.使用SSMS修改和删除登录名72(四)修改和删除登录名修改登录名语法:ALTERLOGIN登录名WITHPASSWORD='密码'[OLD_PASSWORD='旧密码']|DEFAULT_DATABASE=默认数据库名|DEFAULT_LANGUAGE=默认语言|NAME=登录名...2.使用T-SQL修改和删除登录名73(四)修改和删除登录名删除登录名语法:DROPLOGIN登录名举例:DROPLOGINChengp2.使用T-SQL修改和删除登录名74单元1.9

数据库的安全性管理75数据库的安全性管理概述一身份验证与模式配置二登录名管理三数据库用户管理四架构管理五权限管理六角色管理七8四、数据库用户管理数据库用户是数据库级的安全主体,是数据库级的安全策略登录名→连接→SQLServer服务器通行证→进入→大楼数据库用户→访问→数据库1、数据库2……钥匙→打开→房间1、房间2……用户的权限→操作→表、视图、存储过程…权限→使用→资源1、资源2……什么是数据库用户76四、数据库用户管理内置数据库用户1创建数据库用户277修改和删除数据库用户3(一)内置数据库用户dbo(DatabaseOwner):数据库的拥有者,是数据库的管理员guest:数据库的“客人”,所有非此数据库的用户INFORMATION_SCHEMA:实体,不能修改或删除

sys:实体,不能修改或删除内置数据库用户78(一)内置数据库用户dbo(DatabaseOwner):数据库的拥有者,是数据库的管理员自动映射到创建该数据库的登录名所拥有和默认的架构为“dbo”展开“数据库”→“EDUC”→“安全性”→“用户”节点,右键“dbo”,在快捷菜单中选择“属性”命令内置数据库用户dbo79(一)内置数据库用户dbo(DatabaseOwner):固定数据库角色“db_owner”的成员对数据库具有全部管理权限【数据库用户-dbo】属性窗口—【成员身份】页内置数据库用户dbo80(一)内置数据库用户guest:数据库的“客人”,所有非此数据库的登录名都将以“guest”的身份访问数据库并拥有“guest”所拥有的权限。对“guest”授予权限一定要慎重展开“数据库”→“EDUC”→“安全性”→“用户”节点,右键“guest”,在快捷菜单中选择“属性”命令注意到在【数据库用户-guest】属性窗口—【常规】页上,登录名用户类型不可选内置数据库用户guest81(一)内置数据库用户【数据库用户-guest】属性窗口—【成员身份】页上,“guest”默认不是任何固定数据库角色的成员内置数据库用户guest82四、数据库用户管理内置数据库用户1创建数据库用户283修改和删除数据库用户3(二)创建数据库用户已创建的登录名已创建的数据库用户1.使用SSMS创建数据库用户84(二)创建数据库用户例6:为登录名“ZH\Zhangmin”创建数据库“EDUC”的用户“Zhangmin”操作步骤:启动SSMS并连接到数据库引擎服务器在【对象资源管理器】窗口中,展开数据库节点,再展开数据库“EDUC”→“安全性”节点右键单“用户”节点,从快捷菜单中选择“新建用户”命令1.使用SSMS创建数据库用户85(二)创建数据库用户【数据库用户—新建】—【常规】页输入用户名1.使用SSMS创建数据库用户86(二)创建数据库用户【数据库用户—新建】—【常规】页输入登录名(搜索)1.使用SSMS创建数据库用户87(二)创建数据库用户【数据库用户—新建】—【常规】页输入登录名(搜索)1.使用SSMS创建数据库用户88(二)创建数据库用户【数据库用户—新建】—【常规】页输入登录名(搜索)1.使用SSMS创建数据库用户89(二)创建数据库用户【数据库用户—新建】—【安全对象】页(权限设置)1.使用SSMS创建数据库用户90(二)创建数据库用户语法:CREATEUSER用户名{FOR|FROM}LOGIN登录名[WITHDEFAULT_SCHEMA=[架构名]]--设置默认架构...例7:为登录名“ZH\Shijun”、“Zhaochg”、“Wuqj”创建数据库“EDUC”的用户。2.使用T-SQL创建数据库用户91(二)创建数据库用户代码:USEEDUCGOCREATEUSERShijunFORLOGIN[ZH\Shijun]--为Windows用户的登录名映射数据库用户GOCREATEUSERZhaochgFORLOGINZhaochg--为SQLServer用户的登录名映射数据库用户GOCREATEUSERWuqjFORLOGINWuqj--为SQLServer用户的登录名映射数据库用户2.使用T-SQL创建数据库用户92四、数据库用户管理内置数据库用户1创建数据库用户293修改和删除数据库用户3(三)修改和删除数据库用户在【对象资源管理器】窗口中,右键单击数据库用户,从弹出的快捷菜单中选择“属性”命令,在打开的【数据库用户】窗口中即可修改该数据库用户的安全对象等属性。右键单击数据库用户,从弹出的快捷菜单中选择“删除”命令,即可删除该数据库用户。1.使用SSMS修改和删除数据库用户94(三)修改和删除数据库用户修改数据库用户语法:ALTERUSER用户名WITHNAME=新用户名 --重命名数据库用户|DEFAULT_SCHEMA=架构名 --重新设置默认架构...2.使用T-SQL修改和删除数据库用户95(三)修改和删除数据库用户删除登录名语法:DROPUSER用户名2.使用T-SQL修改和删除数据库用户96单元1.9

数据库的安全性管理97数据库的安全性管理概述一身份验证与模式配置二登录名管理三数据库用户管理四架构管理五权限管理六角色管理七8五、架构管理架构(Schema)是一组数据库对象的非重复命名空间,被数据库级别的主体(数据库用户或数据库角色)所拥有。可以将架构视为对象的容器,每个数据库对象都属于一个架构。可在数据库中创建架构、更改架构以及授予数据库用户访问架构的权限。数据库对象引用的完整限定名为:

服务器.数据库.架构.对象什么是架构98五、架构管理内置架构和默认架构1创建架构23修改和删除架构99(一)内置架构和默认架构展开“数据库”→“EDUC”→“安全性”→“架构”节点,可以看到内置架构。内置数据库用户所拥有的架构。固定数据库角色所拥有的同名架构。例如:内置数据库用户“dbo”,所拥有的内置架构“dbo”1.内置架构100(一)内置架构和默认架构用于确定没有使用完全限定名的数据库对象的命名。指定服务器确定对象的名称时所查找的第一个架构。可以用“CREATEUSER”和“ALTERUSER”语句中的“WITHDEFAULT_SCHEMA=[架构名]”选项进行设置与修改如果选择缺省默认架构,所创建的数据库用户将用“dbo”作为它的默认架构。2.默认架构101(一)内置架构和默认架构例如:在创建表“student”时没有指定默认架构,那么系统默认该表的架构是“dbo”,在其表名前自动加上“dbo”(注意不要与内置数据库用户“dbo”混淆),标识为“dbo.student”。2.默认架构102(一)内置架构和默认架构案例1-11:服务器“ZH”上的Windows用户“Hui”为SQLServer管理员,自动关联的登录名为“ZH\Hui”以登录名“ZH\Hui”的身份创建了数据库“EDUC”,自动映射了内置数据库用户“dbo”拥有默认的内置架构“dbo”在数据库“EDUC”中所创建的数据库对象表“Student完整限定名为:ZH.EDUC.dbo.Student。在连接到该服务器“ZH”后,选择当前数据库为“EDUC”(USEEDUC),设置默认架构为“dbo”时,限定名称可以省略为:Student。数据库对象标识符103五、架构管理内置架构和默认架构1创建架构23修改和删除架构104(二)创建架构例8:

为数据库“EDUC”的用户“Zhangmin”创建所拥有的架构“Zhang”数据库“EDUC”→“安全性”→“架构”节点,右键单击“架构”节点,从快捷菜单中选择“新建架构”命令1.使用SSMS创建架构105(二)创建架构例8:为数据库“EDUC”的用户“Zhangmin”创建所拥有的架构“Zhang”【架构-新建】窗口中,单击“搜索”按钮,在【查找对象】对话框中选择架构所有者(数据库用户“Zhangmin”)1.使用SSMS创建架构106(二)创建架构例8:为数据库“EDUC”的用户“Zhangmin”创建所拥有的架构“Zhang”【架构-新建】窗口,输入架构名称“Zhang”1.使用SSMS创建架构107(二)创建架构例8:

为数据库“EDUC”的用户“Zhangmin”创建所拥有的架构“Zhang”展开“EDUC”→“安全性”→“架构”节点,可以看到所建数据库用户“Zhang”所拥有的架构“Zhang”1.使用SSMS创建架构108(二)创建架构2.使用T-SQL创建架构109创建架构的基本语法如下:CREATESCHEMA架构名AUTHORIZATION拥有者{CREATETABLE|CREATEVIEW|权限语句}...(二)创建架构2.使用T-SQL创建架构110例9:在数据库“EDUC”中,创建数据库用户“Shijun”所拥有的架构“Shi”,并在其中创建家庭住址表“Address”。对数据库用户“Zhaochg”授予对架构“Shi”的“SELECT”权限。代码如下:--创建数据库用户“Shijun”所拥有的架构“Shi”CREATESCHEMAShiAUTHORIZATIONShijun--在架构“Shi”中创建表CREATETABLEAddress(SIDchar(10)PRIMARYKEY,Snamechar(8),Addrvarchar(50)NULL)--授予用户Zhaochg对架构Shi的查询权限GRANTSELECTONSCHEMA::ShiTOZhaochg注意:创建架构“Shi”、创建表“Address”、权限设置在一条语句中完成(二)创建架构2.使用T-SQL创建架构111例9:在数据库“EDUC”中,创建数据库用户“Shijun”所拥有的架构“Shi”,并在其中创建家庭住址表“Address”。对数据库用户“Zhaochg”授予对架构“Shi”的“SELECT”权限。(二)创建架构2.使用T-SQL创建架构112例9:在数据库“EDUC”中,创建数据库用户“Shijun”所拥有的架构“Shi”,并在其中创建家庭住址表“Address”。对数据库用户“Zhaochg”授予对架构“Shi”的“SELECT”权限。(二)创建架构2.使用T-SQL创建架构113例9:在数据库“EDUC”中,创建数据库用户“Shijun”所拥有的架构“Shi”,并在其中创建家庭住址表“Address”。对数据库用户“Zhaochg”授予对架构“Shi”的“SELECT”权限。五、架构管理内置架构和默认架构1创建架构23修改和删除架构114(三)修改和删除架构在架构之间传输安全对象。基本语法:ALTERSCHEMA架构名TRANSFERsecurable_name1.修改架构115(三)修改和删除架构例10:修改架构“Zhang”,将表“Address”从架构“Shi”传输到架构“Zhang”。在架构之间传输安全对象。代码:USEEDUCGOALTERSCHEMAZhangTRANSFERShi.Address1.修改架构116(三)修改和删除架构语法:DROPSCHEMA架构名2.删除架构117单元1.9

数据库的安全性管理118数据库的安全性管理概述一身份验证与模式配置二登录名管理三数据库用户管理四架构管理五权限管理六角色管理七8六、权限管理管理权限:对服务器的管理任务、对数据库以及数据库对象的控制和操作进行相应许可权限的管理。SQLServer可以为主体(登录名、数据库用户、角色)以及架构授予对安全对象的操作权限。仅简单介绍数据库用户对数据库对象和对数据库的权限管理。什么是权限119六、权限管理授予权限:允许数据库用户或角色具有某种操作权。撤销权限:删除以前在数据库内的用户或角色上授予或拒绝的权限。拒绝权限:拒绝给数据库用户授予权限以防止安全用户通过其组或角色成员继承权限。什么是数据库用户的权限管理120六、权限管理对象权限管理1数据库权限管理2121(一)对象权限管理为数据库用户设置权限是数据库对象级的安全策略用于控制数据库用户(或角色)对数据库对象的操作。用户的权限→操作→表、视图、存储过程…(数据库对象)权限→使用→资源1、资源2……什么是数据库对象管理权限122(一)对象权限管理数据库对象:表、视图和存储过程……对象权限:对于表的INSERT、UPDATE、DELETE和SELECT对于列的SELECT和UPDATE权限对于外码的引用REFERENCES权限对于存储过程的执行EXECUTE权限

……有哪些数据库对象和权限123(一)对象权限管理例11:为登录名“ZH\Zhangmin”的“EDUC”数据库用户“Zhangmin”授予表“Student”、“SC”和“Course”的INSERT和SELECT等操作权限。步骤:在【对象资源管理器】窗口中,展开“数据库”→“EDUC”→“安全性”→“用户”节点右键“Zhangmin”节点,从快捷菜单中选择“属性”命令1.使用SSMS管理对象权限124(一)对象权限管理【数据库用户—-Zhangmin】窗口—【安全对象】页选择安全对象选择相应权限1.使用SSMS管理对象权限125(一)对象权限管理授予权限的语法:GRANT对象权限名[,...n] --③授予对象权限ON{表名|视图名|存储过程名|标量函数|...}

--②对指定的数据库对象TO{数据库用户名|数据库角色名}[,...n]

--①为指定的数据库用户或角色[WITHGRANTOPTION] --④赋予授权权限2.使用T-SQL管理对象权限126(一)对象权限管理例12:为使前面例子中的学生用户“Wuqj”和“Zhaochg”能够查询“EDUC”数据库中的“Student”、“Course”和“SC”表,并能够修改“SC”表中的成绩列“Scores”,试授予这些用户SELECT操作权限和UPDATE(Scores)操作权限,同时获得将此权限转授给别的用户的权限。2.使用T-SQL管理对象权限127(一)对象权限管理代码:USEEDUCGRANTSELECTONStudentTOWuqj,Zhaochg--授予用户对表Student的SELECT查询权限GRANTSELECTONCourseTOWuqj,Zhaochg

--授予用户对表Course的SELECT查询权限/****授予用户对表SC的SELECT查询权限和UPDATE更新列Scores的权限****/GRANTSELECT,UPDATE(Scores)ONSCTOWuqj,ZhaochgWITHGRANTOPTION2.使用T-SQL管理对象权限128(一)对象权限管理以登录名“Wuqj”连接到服务器2.使用T-SQL管理对象权限129(一)对象权限管理可以更新“SC”表中的成绩列“Scores”2.使用T-SQL管理对象权限130(一)对象权限管理撤销权限的语法:REVOKE对象权限名[,...n] --③撤销授予的对象权限ON{表名|视图名|存储过程名|标量函数|...}

--②对指定的数据库对象FROM{数据库用户名|数据库角色名}[,...n] --①从指定的数据库用户或角色[RESTRICT|CASCADE]2.使用T-SQL管理对象权限131(一)对象权限管理例13:从数据库用户“Zhaochg”那里回收对数据库对象“SC”表的更新UPDATE(Scores)操作权限。代码:USEEDUCREVOKEUPDATE(Scores)ONSCFROMZhaochgCASCADE2.使用T-SQL管理对象权限132(一)对象权限管理拒绝权限的语法:DENY对象权限名[,...n] --③拒绝指定的对象权限ON{表名|视图名|存储过程名|标量函数|...}

--②对指定的数据库对象TO{数据库用户名|数据库角色名}[,...n] --①对指定的数据库用户或角色例14:对数据库对象“Course”表,拒绝数据库用户“Zhaochg”进行查询(SELECT)。代码:USEEDUCDENYSELECTONCourseTOZhaochg2.使用T-SQL管理对象权限133六、权限管理对象权限管理1数据库权限管理2134(二)数据库权限管理数据库权限:CREATE|ALTER|DROP数据库—DATABASE数据库对象—TABLE/VIEW/DEFAULT/SCHEMA/FUNCTION/PROCEDUREBACKUPDATABASE和BACKUPLOG……有哪些数据库权限135(二)数据库权限管理例15:为数据库“EDUC”的数据库用户“ZH\Zhangmin”设置数据库权限,使之可以在该数据库中创建表(CREATETABLE),对“Student”、“Course”和“SC”表创建视图(CREATEVIEW)。说明:如果数据库用户没有数据库语句权限,在执行某些语句时会弹出错误提示有了语句权限还需要拥有一个创建对象的架构,否则也会弹出错误提示1.使用SSMS管理数据库权限136(二)数据库权限管理步骤:设置默认架构在【对象资源管理器】窗口中,展开数据库“EDUC”→“安全性”→“架构”节点,用右键单击“架构”节点,从弹出的快捷菜单中选择“新建架构”命令在【架构-新建】窗口,创建架构“Zhang”在【架构-新建】窗口中,单击“搜索”按钮,在【查找对象】对话框中选择架构所有者(数据库用户“Zhangnin”)1.使用SSMS管理数据库权限137(二)数据库权限管理展开“EDUC”→“安全性”→“用户”节点,右键“用户”节点,从快捷菜单中选择“属性”命令在【数据库用户-Zhangmin】窗口中,设置数据库用户“Zhangmin”默认架构“Zhang”1.使用SSMS管理数据库权限138(二)数据库权限管理在【数据库属性-EDUC】窗口中的【权限】页中设置数据库权限1.使用SSMS管理数据库权限139(二)数据库权限管理在【数据库属性-EDUC】窗口中的【权限】页中设置权限1.使用SSMS管理数据库权限140(二)数据库权限管理以Windows用户“Zhangmin”的身份连接到数据库引擎服务器,在查询编辑器中输入T-SQL代码如下:USEEDUCGOCREATETABLETeacher--CREATETABLE权限

(EIDchar(10)NOTNULLPRIMARYKEY,Enamechar(8)NULL,Sex nchar(1)NULL,Birthdatedate,Titlechar(8))GOCREATEVIEWSoftScores--CREATEVIEW权限ASSELECT*FROMStudentWHERE(Specialty='软件技术')--SELECT对象权限1.使用SSMS管理数据库权限141(二)数据库权限管理服务器“ZH”的Windows用户“Zhangmin”关联了登录名“ZH\Zhangmin”,使其可以连接到服务器;该登录名被映射了数据库用户“Zhangmin”,使其可以访问数据库“EDUC”;数据库用户“Zhangmin”拥有架构“Zhang”,同时又被授予对表“Student”的对象权限“SELECT”数据库用户“Zhangmin”被授予数据库权限“CREATETABLE”和“CREATEVIEW”,使其可以在所拥有的架构中创建表和视图。安全性控制关系归纳142(二)数据库权限管理授予权限的语法:GRANT数据库权限名[,...n] --②授予数据库权限TO{数据库用户名|数据库角色名}[,...n] --①为指定的数据库用户或角色例16:授予“EDUC”数据库用户“Shijun”创建表的权限。代码:USEEDUCGRANTCREATETABLETOShijun2.使用T-SQL管理数据库权限143(二)数据库权限管理撤销权限的语法:REVOKE数据库权限名[,...n]--②撤销授予的数据库权限FROM{数据库用户名|数据库角色名}[,...n] --①从指定的数据库用户或角色例17:撤销数据库用户“Shijun”创建表的权限。代码:USEEDUCREVOKECREATETABLEFROMShijun2.使用T-SQL管理数据库权限144(二)数据库权限管理拒绝为数据库用户或角色授予数据库权限的语法:DENY数据库权限名[,...n] --②拒绝指定的数据库权限TO{数据库用户名|数据库角色名}[,...n] --①对指定的数据库用户或角色例18:对数据库用户“Shijun”拒绝创建表的权限。代码:USEEDUCDENYCREATETABLETOShijun2.使用T-SQL管理数据库权限145单元1.9

数据库的安全性管理146数据库的安全性管理概述一身份验证与模式配置二登录名管理三数据库用户管理四架构管理五权限管理六角色管理七8七、角色管理角色(Role):角色是登录名和数据库用户的集合,是服务器级和数据库级的二级主体。角色的作用:将一组具有相同权限的一组登录名或数据库用户组织在一起,添加为某一角色(Role)的成员,使其具有与该角色相同的身份和权限,而不必分别为他们授予这些权限,使得将多种权限授予给各个登录名或数据库用户这一复杂任务得到简化。什么是角色147七、角色管理SQLServer提供以下两个级别的角色:服务器级:固定服务器角色、服务器角色。数据库级:固定数据库角色、数据库角色和应用程序角色。什么是角色148(一)服务器角色管理固定服务器角色:SQLServer服务器级的二级主体,其成员可以是登录服务器的登录名。作用:每个角色对应着相应的服务器管理权限。这些固定服务器角色一般用于授权给DBA(数据库管理员)拥有某个或某些角色的DBA就会获得与相应角色对应的服务器管理权限。1.固定服务器角色149(一)服务器角色管理1.固定服务器角色150固定服务器角色管理权限说明sysadmin可以在服务器中执行任何活动。serveradmin可以更改服务器范围内的配置选项和关闭服务器。securityadmin可以管理登录名及其属性,管理服务器级和数据库级的访问权限,与sysadmin等效。processadmin可以终止在SQLServer实例中运行的进程。setupadmin可以使用T-SQL语句添加和删除链接服务器。bulkadmin可以运行BULKINSERT语句,从文本文件中将数据导入SQLServer。diskadmin可以管理磁盘文件,指派文件组、附加和分离数据库等等。dbcreator可以创建、更改、删除和还原任何数据库。public初始时状态时仅有VIEWANYDATABASE(查看任意数据库)权限。每个SQLServer登录名都属于public服务器角色,如果未向某个服务器主体授予或拒绝对某个安全对象的特定权限,该登录名将继承授予该对象的public权限。(一)服务器角色管理例如:固定服务器角色“sysadmin”的成员1.固定服务器角色151(一)服务器角色管理例如:登录名“ZH\Hui”为服务器角色“sysadmin”1.固定服务器角色152(一)服务器角色管理例如:服务器角色“public”属性1.固定服务器角色153(一)服务器角色管理例如:登录名“ZH\Zhangmin”的属性1.固定服务器角色154(一)服务器角色管理例19:将SQLServer登录名“ZH\Shijun”添加为固定服务器角色“dbcreator”的成员,使其协助数据库管理员完成在服务器中创建和修改数据库的任务。方法一:在固定服务器角色属性窗口中,将登录名添加为固定服务器角色的成员。2.使用SSMS为登录名分配固定服务器角色155(一)服务器角色管理例19:将SQLServer登录名“ZH\Shijun”添加为固定服务器角色“dbcreator”的成员,使其协助数据库管理员完成在服务器中创建和修改数据库的任务。2.使用SSMS为登录名分配固定服务器角色156(一)服务器角色管理例19:将SQLServer登录名“ZH\Shijun”添加为固定服务器角色“dbcreator”的成员,使其协助数据库管理员完成在服务器中创建和修改数据库的任务。方法二:在登录名属性窗口中,为登录名分配固定服务器角色。2.使用SSMS为登录名分配固定服务器角色157(一)服务器角色管理例19:将SQLServer登录名“ZH\Shijun”添加为固定服务器角色“dbcreator”的成员,使其协助数据库管理员完成在服务器中创建和修改数据库的任务。方法二:在登录名属性窗口中,为登录名分配固定服务

温馨提示

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

评论

0/150

提交评论