优质实用课件精选——数据库安全性实用课件.ppt

上传人:高远 文档编号:3159149 上传时间:2020-07-11 格式:PPT 页数:124 大小:4.35MB
返回 下载 相关 举报
优质实用课件精选——数据库安全性实用课件.ppt_第1页
第1页 / 共124页
优质实用课件精选——数据库安全性实用课件.ppt_第2页
第2页 / 共124页
点击查看更多>>
资源描述

《优质实用课件精选——数据库安全性实用课件.ppt》由会员分享,可在线阅读,更多相关《优质实用课件精选——数据库安全性实用课件.ppt(124页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、数据库原理与应用,第四章 数据库安全性 数据库系统概论,安全性,数据库的安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。,计算机系统常用的安全模式:,Login Authentication(注册鉴定),AUTHENTICATION SQL ServerVerifies Trusted Connection,SQL Server Verifies Name and Password,Or,SQL Server,Windows 2012 Group or User,Windows XP,SQL ServerLogin Account(账户),Database User A

2、ccounts and Roles,SQL Server Assigns Logins to User Accounts and Roles,Database User,Database Role,Windows 2012 Group User,SQL Server Login Account,SQL Server Verifies Trusted Connection,SQL Server Verifies Name and Password,SQL Server,Windows XP,OR,SQL Server Checks Permissions,Permission Validatio

3、n(许可确认),Permissions OK; Performs Command,Permissions not OK; Returns Error,2,3,SELECT * FROM Members,Database UserExecutes Command,1,操作系统安全性与数据库,操作系统安全性是分配给每个用户的。 数据库安全配置成与操作系统安全性集成时,可以利用操作系统安全性功能。 操作系统可以授权登录数据库系统。 操作系统用户帐号可以映射到数据库的登录ID。这使得用户不用单独的登录ID和口令就可以连接和登录数据库系统。 使用集成安全性,用户可以为操作系统和数据库系统只保留一个登录I

4、D和口令。,数据库安全性措施,用户标识和鉴定 存取控制 定义视图 审计 数据加密,方法:是由系统提供一定的方式让用户标识自己的名字或身份,系统内部记录这些数据,每次用户请求系统进行核对,以鉴定此用户是否有权访问。,用户标识和鉴定,标识参数:用户名(ID) 口令(password),存取控制,对有权访问数据库的用户的进一步限制,定义每个数据库用户的各种操作权限。 存取权限由数据对象和操作类型两要素构成。,实现方法:使用授权命令GRANT。 存取权限:建立、修改、检索(模式); 查找、插入、修改、删除(数据)。 授权对象:表、属性列、行(记录),定义视图 为不同的用户定义不同的视图,通过视图机制把

5、要保密 的数据对无权存取的用户隐藏起来. 审计 审计追踪使用的是一个专用文件或数据库,系统自动将 用户对数据库的所有操作记录在上面,利用审计追中的 信息,以找出非法存取数据的人.审计费时和费空间,因 此为可选功能. 数据加密 对高度敏感数据,以密码形式存储和传输数据. 数据加密和解密占用大量系统资源,此功能未可选项.,SQLServer数据库安全的概念,安全性用于保护服务器和存储在服务器中的数据。SQL安全性决定可以登录到服务器的用户,用户可以操作的管理任务,用户可以访问的数据库、数据库对象和数据库及其它方面的一些管理任务。 SQL Server安全性:登录、数据库用户、对象和语句许可等等。,

6、SQL Server安全性包括:,可以登录到SQL Server的用户; 可以访问SQL Server数据库的用户; 每个用户可以访问或修改的数据库对象; 允许用户在其访问的数据库上使用的Transact_SQL语句。,安全性与数据库许可,使用许可能够加强数据库的安全性。 许可被设置在数据库用户或组上。 许可分类 许可层次,(1)许可分类:对象许可和语句许可,对象许可 对象许可规定了某些语句在某些数据库对象上的使用许可。它们由数据库对象的所有者授予和取消。,语句许可 语句许可不是对于特定对象的。它们只可以由SA或数据库所有者授予。 语句许可用于以下语句: CREATE DATABASE CRE

7、ATE DEFAULT CREATE PROCEDURE CREATE TABLE CREATE VIEW DUMP DATABASE,(2)许可层次,SQL Server的许可系统可以识别4类用户:SA、DBO、DBOO和其它用户。 许可存在优先级:,系统管理员,数据库所有者,数据库对象所有者,其它用户,SQL SERVER数据库用户管理技术,登录到SQL SERVER 授予特权 在数据库中添加一个组 在数据库中添加一个用户 管理组成员,登录与用户关系: 一个登录名可映射到多个数据库用户(相异库). 一个登录名在同一数据库中只能映射到一个用户。 一个数据库用户必须与一个登录名相关联。,登录管

8、理,1.创建windows登录帐号 命令: create login 计算机名用户名 from windows with default_database=用户数据库,添加为db_owner成员 Use 用户数据库 go exec sp_addrolemember db_owner, 计算机名用户名,create login pc201402261457mary from windows,开始-控制面板-管理工具-计算机管理(本地用户和组),开始-设置-控制面板-用户账号,使用组学校教务处中的成员进行登录、 使用不在该组的用户进行登录 使用Administrator重新登录Windows系统,

9、权限管理 对象权限 权限拥有者:登录账户,角色中的成员及数据库用户。 权限涉及资源: 基于数据库层次上的访问和操作权限,权限管理 语句权限 创建类语句:create database,creat table,creat procedure等。 备份类语句:backup database, backup log 权限仅限于语句本身,而不是数据库对象。,权限管理 隐式权限:默认权限 固定服务器角色 固定数据库角色 数据库对象的所有者,数据库对象的权限(续),允许具有WITH GRANT OPTION的用户把相应权限或其子集传递授予其他用户 SQL标准不允许循环授权 U1 U2 U3 U4,4.2.

10、4 授权(Authorization)与回收,GRANT语句向用授予权限,REVOKE语句收回授予的权限 GRANT语句 一般格式: GRANT , . ON , . TO , . WITH GRANT OPTION;,4.2.4 授权(Authorization)与回收,例1 把查询student2表的权限授予用户U1 grant select on student2 to U1,一.GRANT,4.2.4 授权(Authorization)与回收,例2:把对student和course表的全部操作权限授予用户U2和U3 grant select,update,delete,insert,r

11、eferences on student2 to u2,u3 grant select,update,delete,insert,references on sc2 to u2,u3 说明:SQL SERVER 2012中的表对象只能是一个。,4.2.4 授权(Authorization)与回收,一.GRANT,例3:把对sc表的查询权限授予所有用户 grant select on sc2 to public,4.2.4 授权(Authorization)与回收,一.GRANT,例4:把查询student表和修改学生学号的权限授予用户U4 grant select,update(sno) on

12、 student2 to u4,4.2.4 授权(Authorization)与回收,一.GRANT,例5:把对表SC的INSERT权限授予用户U5 grant insert on sc2 to u5 with grant option,一.GRANT,4.2.4 授权(Authorization)与回收,创建一个登录账号U6,密码是123456. create login U6 with password=123456 create user U6 from login U6 例6: 用户U5将对SC表的INSERT权限再授予用户U6。 grant insert on sc2 to U6 w

13、ith grant option,4.2.4 授权(Authorization)与回收,创建一个登录账号U7,密码是123456. create login U7 with password=123456 create user U7 from login U7 例6: 用户U6将对SC表的INSERT权限再授予用户U7。 grant insert on sc2 to U7,4.2.4 授权(Authorization)与回收,把查询student表的权限从用户U1撤销 revoke select on student2 to U1,二.REVOKE,4.2.4 授权(Authorizatio

14、n)与回收,从用户U2和U3中收回对student和sc表的所有操作权限 revoke select,update,delete,insert,references on student2 to U2,U3 revoke select,update,delete,insert,references on sc2 from U2,U3,二.REVOKE,4.2.4 授权(Authorization)与回收,例8:收回用户U4对student表和修改学生学号的权限 revoke select,update(sno) on student2 from U4,二.REVOKE,4.2.4 授权(Aut

15、horization)与回收,例10:将用户U5对SC表的INSERT权限收回 revoke insert on sc2 from U5 cascade,二.REVOKE,4.2.4 授权(Authorization)与回收,例9:收回所有用户对表SC的查询权限。 revoke select on sc2 from public,二.REVOKE,4.2.4 授权(Authorization)与回收,固定服务器角色 描述 sysadmin :在 SQL Server 中执行任何活动。 serveradmin 设置服务器范围的配置选项,关闭服务器。 setupadmin 管理链接服务器和启动过程

16、。 securityadmin 管理登录, CREATE DATABASE 权限,还可以读取错误日志和更改密码。 processadmin 管理在 SQL Server 中运行的进程。 dbcreator 创建、更改和除去数据库。 diskadmin 管理磁盘文件。 bulkadmin 执行 BULK INSERT 语句。,固定数据库角色 描述 db_owner 在数据库中有全部权限。 db_accessadmin 可以添加或删除用户 ID。 db_securityadmin 可以管理全部权限、对象所有权、角色和角色成员资格。 db_ddladmin 可以发出 ALL DDL,但不能发出 GR

17、ANT、REVOKE 或 DENY 语句。 db_backupoperator 可以发出 DBCC、CHECKPOINT 和 BACKUP 语句。 db_datareader 可以选择数据库内任何用户表中的所有数据。 db_datawriter 可以更改数据库内任何用户表中的所有数据。 db_denydatareader 不能选择数据库内任何用户表中的任何数据。 db_denydatawriter 不能更改数据库内任何用户表中的任何数据。,exec sp_addsrvrolemember L1,sysadmin,示例,例11 通过角色来实现将一组权限授予一个用户。 1.首先创建一个角色R1 c

18、reate role R1 Use 数据库名 Exec sp_addrole 角色名 2.使用GRANT语句,使角色R1拥有student表的select,update,insert权限。 grant select,update,insert on student2 to R1,exec sp_addrolemember db_owner,u2,示例,3:将这个角色授予U1,U2,U3。 exec sp_addrolemember R1,U1 exec sp_addrolemember R1,U2 exec sp_addrolemember R1,U3 4.当然,也可以一次性的通过R1来回收U

19、1的这3个权限。(从R1角色中删除U1用户) exec sp_droprolemember R1,U1,例12.使R1增加delete权限 grant delete on student2 to R1 例13.使R1减少delete权限 revoke delete on student2 from R1,use 教学管理数据库 go grant select on sc2 to public deny select on sc2 to u1,三.DENY(拒绝),显示地拒绝执行操作的权限,并阻止用户或角色继承权限。,如果使用了DENY命令拒绝某用户获得某项权限,即使该用户后来又加入了具有该项权

20、限的工作组或角色,该用户依然无法使用该项权限,三.DENY(拒绝),补充:收回操作 use 教学管理数据库 go revoke select on sc2 to u1,如果使用了DENY命令拒绝某用户获得某项权限,即使该用户后来又加入了具有该项权限的工作组或角色,该用户依然无法使用该项权限。,4.3 视图机制,例14.建立计算机系学生的视图,把对该视图的select 权限授予U1,把对该视图的所有权限授予U2 create view cs_view as select * from student2 where sdept=计算机科学,4.3 视图机制,例14.建立计算机系学生的视图,把对该视

21、图的select 权限授予U1,把对该视图的所有权限授予U2,grant select on cs_view to u1,grant select,update,delete,insert on cs_view to u2,4.3 视图机制,对不同用户定义不同视图,把数据对象限制在一定的范围,即把要保密的数据对无权存取的用户隐藏起来,从而对数据实施保护。 视图机制间接地实现支持存取谓词的用户权限定义。 例如:王平老师只能检索计算机系学生的信息,系主任张明拥有检索和增删改计算机系学生信息的所有权限。 这就要求系统能支持存取谓词的用户权限定义。在不直接支持存取谓词的系统中,可以先建立计算机系学生的

22、视图,然后在视图上进一步定义存取权限。,4.3 视图机制,例14:建立计算机科学系学生视图,把对该视图的SELECT权限授予U1,把对该视图的所有权限授予U2,grant select on cs_student to u1,grant select,update,insert,delete,references on cs_student to U2,应用程序角色是一个数据库主体,它使应用程序能够用其自身的、类似用户的特权来运行。使用应用程序角色,可以只允许通过特定应用程序连接的用户访问特定数据。与数据库角色不同的是,应用程序角色默认情况下不包含任何成员,而且是非活动的。可以使用 sp_se

23、tapprole 来激活,并且需要密码。,应用程序角色,应用程序角色切换安全上下文的过程包括以下步骤: 1)用户执行客户端应用程序。2)客户端应用程序作为用户连接到 SQL Server。3)然后应用程序用一个只有它才知道的密码执行 sp_setapprole 存储过程。4)如果应用程序角色名称和密码都有效,将激活应用程序角色。5)此时,连接将失去用户权限,而获得应用程序角色权限。 6)通过应用程序角色获得的权限在连接期间始终有效。,应用程序角色,1.系统管理员登录,在学生课程数据库中建立一个名为arole的应用程序角色,密码123456,默认架构dbo,安全对象中选择表,student表的s

24、elect权限,应用程序角色示例,2. create login jack with password=123456,use 学生课程数据库 go create user jacku for login jack,use 学生课程数据库 go exec sp_addrolemember db_denydatareader,jacku,3. jack的登录查询窗口中输入: use 学生课程数据库 go select * from student 失败,4.在当前jack的登录中激活应用程序角色 use 学生课程数据库 go exec sp_setapprole arole,123456,5.在当

25、前窗口中再次输入: use 学生课程数据库 go select * from student 成功,表,视图,存储过程,函数,数据库对象、架构与用户关系图,.,包含在,架构,被拥有,用户,映射,登录名,如果你看一下adventureworks样例数据库,你会发现表是按照部门或者功能组织起来的,比如“HumanResources”或者“Production”(图一)。 这看起来有点像老的拥有者概念,但却拥有许多益处。首先,因为对象不再绑定到用户账号上,所以你根本不用担心当一个账号被删除时需要变换对象的拥有者。 另一个好处是使用架构可以简化表和其他的对象的权限管理。,架构的含义,每个架构都有其所有

26、者,但是所有者和架构名是不绑定的。所有当一个用户拥有一个架构,并且这个用户必须从数据库中删除时,可以不用破坏任何代码而仅仅是将架构的所有者变一下。 如果你不希望用架构来组织数据库中的对象,只用dbo架构就行了。,用户与架构分离: 数据库对象(基本表、视图、存储过程)等属于某一架构,用户、角色可赋予访问架构的权限,即每一个架构属于一个用户。用户是架构对象的拥有者。SQL SERVER 2012中引入架构,使得需改变架构拥有者时,不需要去更改应用程序编码。,用户与架构分离: 用户与架构(schema)分开,让数据库内各对象不再绑在某个用户账号上,可以解决之前版本“用户离开公司问题,也就是在拥有该对

27、象的用户离开公司,或离开该职务时,不必要大费周章地更改该用户所有的对象属于新的用户所有。另外,也可让 DBA 在安装某个套装软件时,设置该套装软件所用的数据库对象都属于某个特定的架构,容易区别。也就是说,在单一数据库内,不同部门或目的的对象,可以通过架构区分不同的对象命名原则与权限。,用户与架构关系: 一个架构有且只有一个所有者Owner。 一个用户可以拥有多个架构。 Sql Server是采用一对多的关系。这反而比较像是银行账户。一个人可以有多个存折,但是一个存折只有一个用户。,use 学生课程数据库 go insert into 教学库.mys.sdept_gkfs select sdep

28、t,avg(gkfs) from student group by sdept,L2登录 use 教学库 go select * from mys.sdept_gkfs,L2登录时:,create login L1 with password=123456 use 教学库 go create login u1 for login L1 同样方法创建用户u2(L2),u3(L3),以下示例可以说明用户与架构是分离的,系统管理员登录: use 教学库 go grant select on mys.sdept_gkfs to u1,L1登录 use 教学库 go select * from mys.

29、sdept_gkfs,use 教学库 go create schema msa authorization u1 create table sdept_gkfs (sdept varchar(30), agkfs smallint),use 学生课程数据库 go insert into 教学库.msa.sdept_gkfs select sdept,avg(gkfs) from student group by sdept,以L1登录: 可以对msa.sdept_gkfs增加,删除,修改数据。 可以删除该表。,以L2登录: 无权访问。同一数据库的两个用户对msa.sdept_gkfs的权限却不

30、同。用户与架构是分离的。,以系统管理员身份登录: use 教学库 go grant select on msa.sdept_gkfs to u2,L2登录 use 教学库 go select * from msa.sdept_gkfs,use 教学库 go create schema msc authorization u3,use 教学库 go alter schema msc transfer msa.sdept_gkfs 说明:系统管理员转移。,示例:改变架构的拥有者,use 教学库 go create schema msd authorization u3 create table t

31、1 (tno char(4), tname varchar(6) create view v1 as select tno,tname from t1,示例:创建有表及视图的架构,删除架构 use 教学库 go drop table msc.sdept_gkfs use 教学库 go drop schema msc 说明:由系统管理员或架构的所有者来删除,说明: 删除用户时,若该用户拥有架构,则该用户不能删除。将架构转移后可删除。 删除架构时,若该架构不为空,则不能删除,要先删除其中数据库对象。,use 教学库 go grant create table to u2 use 教学库 go create schema mys authorization u2 use 教学库 go create table mys.t1 (sno char(10), cno char(4), grade tinyint),语句授权,Thank you very much!,本章到此结束, 谢谢您的光临!,返回本章首页,结束放映,

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

当前位置:首页 > 教育专区 > 高中资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com