收藏 分享(赏)

07数据库的安全性.ppt

上传人:gnk289057 文档编号:9900758 上传时间:2019-09-17 格式:PPT 页数:35 大小:708KB
下载 相关 举报
07数据库的安全性.ppt_第1页
第1页 / 共35页
07数据库的安全性.ppt_第2页
第2页 / 共35页
07数据库的安全性.ppt_第3页
第3页 / 共35页
07数据库的安全性.ppt_第4页
第4页 / 共35页
07数据库的安全性.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、1,数据库系统中,DBMS提供统一的数据保护功能: 保证数据的正确、一致数据的完整性 防范对象:不合语义的、不正确的数据 保证数据的安全可靠数据的安全性 防范对象:非法用户和非法操作,Page 2,第8章 数据库的安全性,3,1、用户管理 2、角色划分 3、权限管理 4、数据的导入/导出和备份,4,1. SQL Server的安全机制,网络,登录,登录,用户,数据库 服务器,学生库,教师库,财务库,表1,表2,表3,表4,是否可以操作数据库?,有相应操作权限?,是合法服务器用户?,SQL Server 2005的安全机制: 用户访问数据库必须经过两级安全性检查,即用户身份检查、用户操作权限检查

2、。 - 用户身份检查:DBMS对连接数据库服务器的用户进行身份检查; -操作权限检查:对已经连接到服务器的用户,检查其是否可以操作指定数据库及其对象,是否有相应的操作权限。,5,支持Windows身份验证模式和混合模式两种身份验证模式。Windows身份验证模式: SQL Server利用其操作系统平台的管理登录、验证用户合法性的能力,用户只需要通过Windows的身份验证,就可以连接到SQL Server, SQL Server本身不需要管理一套登录数据。混合模式: 允许用户选择使用其Windows账户或其SQL Server账户登录到SQL Server系统。 对于后者,SQL Serve

3、r自己设置和管理SQL Server登录账户,并对登录用户进行身份验证。,(1) SQL SERVER2005的身份验证模式,说明:在安装SQLServer2005服务器时,曾要求选择身份验证模式,通常选择混合模式,同时设置了系统登录账户sa的登录密码。安装后也可随时更改身份验证模式。,6,设置SQL Server的身份认证模式,在SSMS中右击服务器,选择“属性”,修改后重新启动SQL Server才生效,7,用户登录到服务器后,对某数据库及其对象进行操作时,系统还要检查: 该登录账户是否在该数据库中有数据库帐号; 有无对该数据库对象相应的操作权限。,(2) SQL SERVER2005的权

4、限验证机制,8,2. SQL Server2005系统的安全管理,包括用户管理、角色管理和权限管理三方面。,用户:分为登录用户和数据库用户。 登录用户又分为Windows管理的用户和SQL Server服务器管理的用户。 数据库用户:登录用户只有在相应的数据库中映射(设置)为其合法的用户,才允许访问该数据库。默认新建立的数据库都自动添加了一个由sa登录帐号映射得到的数据库用户dbo。权限:用户登录后,能对服务器、数据库及其对象执行什么样的操作,称之为用户的权限。登录用户的权限:对服务器的安装、配置、备份、文件、进程、安全性和批量数据导入等管理工作。 数据库用户的权限:权限分三个层次:创建数据库

5、对象及进行数据库备份的权限、对数据库对象的操作权限以及对指定表字段的操作权限。,9,角色:对权限的一种集中管理方式,通过角色将用户分类,同类用户统一进行权限管理,简化了用户的权限管理工作。,固定服务器角色:Sysadmin:可以在SQL Server中执行任何操作 Serveradmin:可以设置服务器范围的配置选项,关闭服务器 Setupadmin:可以管理链接服务器和启动过程 Securityadmin:可以管理登录和CREATE DATABASE权限,可以读取错误日志和更改密码 Processadmin:可以管理在SQL Server中运行的进程 Dbcreator:可以创建、更改和除去

6、数据库 Diskadmin:可以管理磁盘文件 Bulkadmin:可以执行BULK INSERT(大容量数据插入)语句,10,固定数据库角色:Public:每个数据库用户都属于public角色db_owner:在数据库中有全部权限db_accessadmin:可以增加或者删除数据库用户db_securityadmin:管理数据库角色和成员,并管理数据库的语句和对象权限db_ddladmin:可以添加、修改或除去数据库中的对象(运行所有DDL)db_backupoperator:可以备份和恢复数据库db_datareader:可以读取数据库内任何用户表中的所有数据db_datawriter:可以

7、更改数据库内任何用户表中的所有数据db_denydatareader:不能读取数据库内任何用户表中的任何数据db_denydatawriter:不能更改数据库内任何用户表中的任何数据 自定义数据库角色,通过在角色中添加用户成员, 使其获得相应的管理和操作权限;或者在添加用户时,可以指定该用户属于哪一个角色,也会使其自动获取相应权限。,11,(1)用户管理,指添加、修改、查看、删除用户以及用户授权。包括登录用户管理和数据库用户管理。,登录用户管理 1)添加登录用户 Windows用户:首先在服务器操作系统中建立该用户,然后将其添加到SQL Server的登录用户中。 Windwos用户的名称:计

8、算机名称用户名 SQL Server用户: 在SSMS对象资源管理器中单击“新建登录名” (a)输入登录用户名称, 并设置登录密码; (b)指定默认数据库; (c)选择用户的服务器角色,使其具有相应的服务器管理权限; (d)选择映射成为指定数据库的用户,同时使该数据库用户添加为指定数据库角色的成员,以获得相应操作权限。注意默认数据库必须选中。,2)查看、修改和删除登录用户 右击该登录用户,选择“属性”或“删除”。,12,数据库用户管理 主要指将登录用户映射为指定数据库的用户,并通过角色分配授予该数据库用户相应的操作权限。 在SSMS对象资源管理器中单击展开指定数据库的安全性分支,右击“用户”,

9、选“新建用户” (a)输入或搜索要映射的登录用户名称; (b)输入映射成的数据库用户名,一般与 登录用户同名; (c)指定该用户加入的角色以及其拥有的 架构(二者选择一致); (d)最后单击“确定”。 同样,可以随时查看、修改、删除数据库用户。,13,(2)权限管理,权限是指用户对服务器可以执行的管理任务、对访问的数据库和对该数据库对象可以执行的相关操作。 权限分三级层次管理:服务器权限、数据库权限、数据库对象权限。 服务器权限: 允许执行服务器管理 任务,权限被定义在 固定服务器角色中。 在服务器属性对话框 的“权限”页可以为登 录用户授予权限。,14,数据库权限:允许创建、管理数据库对象。

10、在指定数据库的属性对话框中为数据库用户授予权限。,15,数据库对象权限:对特定的数据库对象(表、视图、存储过程、函数等)的操作权限。主要有6种: SELECT:查询权限 INSERT:插入数据权限 UPDATE:修改权限(必须同时具有SELECT权限) DELETE:删除数据权限 REFERENCE:引用对象的权限 ALTER:更改对象的权限在具体的数据库对象的属性对话框中的“权限”页面中添加数据库用户,并授予他对该对象的相应操作权限。数据库的创建者可以查看、添加或删除数据,更改表定义、或控制允许其他用户对表进行操作的权限。,16,学生基本信息表的“表属性”对话框,添加数据库用户、角色, 并对

11、他授予相应权限。,17,(3)角色管理,角色是对权限的一种集中管理机制,是为了简化对用户权限管理工作而设置的一种对象。,管理服务器角色:对指定的固定服务器角色添加或删除成员。 管理数据库角色:对指定的固定数据库角色添加或删除成员。,18,自定义数据库角色:,本数据库用户、角色中谁是该角色的拥有者,他可以在角色中添加或删除角色成员。,此角色拥有的架构,例如dbo,添加或删除角色成员。,19,“安全对象”页面设置该角色可以访问的对象,并进行授权。,对指定列的操作权限,添加特定的对象,如“表”,并指定具体的表,如“学生基本信息”表。,拒绝:拒绝授予该对象该权限,也防止对象通过角色成员身份继承权限;

12、具有授予权限:可以将此权限授予其他用户。 若未授予也未拒绝,则可以使用从角色继承来的权限; 拒绝覆盖其他权限。,20,(1)用户管理相关命令 可以使用系统存储过程添加、修改、删除登录用户和数据库用户,修改登录密码、修改默认数据库 例1:将Windows用户LEEpublic映射到SQL Server登录账户。exec sp_grantlogin LEEpublic 例2:创建SQL Server登录账户lee,密码为111111,默认数据库为“学生管理”。exec sp_addlogin lee, 111111, 学生管理 例3:为登录账户lee创建数据库用户。exec sp_grantdba

13、ccess lee如果没有指定数据库用户名,则默认为与“登录名”相同。 例4:删除数据库用户lee 。exec sp_revokedbaccess lee,3. 使用SQL命令进行安全管理,21,(2)权限管理相关命令 设置数据库对象权限包括:授予权限(Grant):授予用户或角色相应的对象权限。拒绝权限(Deny):可用于防止该用户或角色通过 GRANT 获得特定权限 ,包括删除以前授予用户、组或角色的权限,停用从其他角色继承的权限,确保用户、组或角色将来不继承更高级别的组或角色的权限。 废除权限(Revoke):废除权限是删除已授予的权限,并不妨碍用户、组或角色从更高级别继承已授予的权限。

14、,22,基本语法如下:GRANT ALL | 权限 ,.n ( 列名 ,.n ) ON 表 | 视图 | ON 表 | 视图 ( 列名 ,.n ) | ON 存储过程| ON用户自定义函数 TO 安全账户 ,.n WITH GRANT OPTION AS 组 | 角色 ,在表、视图上可授予SELECT、INSERT、DELETE、UPDATE、 REFERENCES权限。,数据库用户或角色,使被授权用户或角色可以将该权限再授予其他用户,授予对象权限GRANT,23,授予对象权限举例,【例1】使用GRANT语句对角色newrole授予对表“学生”的INSERT、UPDATE和DELETE的权限。

15、GRANT INSERT, UPDATE, DELETE ON 学生 TO newrole 【例2】使用GRANT语句授予用户Mary、John和Tom对pubs数据库的authors表的插入、修改、删除权限。USE pubsGRANT INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom,24,授予对象权限举例,【例3】使用GRANT语句授予用户Log1对pubs数据库的Titles表的Title_id和Title列具有修改权限。USE PubsGRANT UPDATE(Title_id , Title) ON Titles TO Log1

16、也可以写成:USE PubsGRANT UPDATE ON Titles(Title_id , Title) TO Log1,25,授予对象权限举例,【例4】使用GRANT语句将对Market数据库的Custumers表的SELECT、INSERT权限授予用户Zhang,并允许用户Zhang再将该权限授予其他用户或角色。USE MarketGRANT SELECT , INSERT ON CustumersTO ZhangWITH GRANT OPTION,26,授予对象权限举例,【例5】用户Tom将对表Table1的SELECT权限授予Role1角色,指定WITH GRANT OPTION子

17、句。GRANT SELECT ON Table1 TO Role1 WITH GRANT OPTION 设用户Jerry是Role1的成员,他要将表Table1上的SELECT权限授予用户Jack(设Jack不是Role1的成员)。相应的GRANT语句如下:GRANT SELECT ON Table1 TO Jack AS role1因为对表Table1的WITH GRANT OPTION权限是授予Role1角色,而不是显式地授予Jerry,因此,Jerry必须用AS子句来获得role1角色的这种权限。,27,废除对象权限REVOKE,基本语法如下:REVOKE GRANT OPTION FO

18、R ALL | 权限 ,.n ( 列名 ,.n ) ON 表 | 视图 | ON 表 | 视图 ( 列名 ,.n ) | ON 存储过程 | 用户自定义函数 TO | FROM 安全账户 ,.n CASCADE AS 组 | 角色 ,28,废除对象权限,参数说明: GRANT OPTION FOR:指定要收回WITH GRANT OPTION权限。用户仍然具有指定的权限,但是不能将该权限授予其他用户。 CASCADE:收回指定安全账户的权限时,也将收回由其授权的任何其他安全账户的权限。如果要收回的权限原先是通过WITH GRANT OPTION设置授予的,需指定CASCADE和GRANT OP

19、TION FOR 子句,否则将返回一个错误。 AS 组 | 角色:说明要管理的用户从哪个角色或组继承权限。,29,废除对象权限,【例7】使用REVOKE语句废除角色newrole对“学生”表的INSERT、UPDATE和DELETE的权限。REVOKE INSERT, UPDATE, DELETEON 学生 TO newrole 【例8】废除用户yuan对publishers表的pub_id列的修改权限。REVOKE UPDATE(pub_id) ON publishers FROM yuan,30,废除对象权限,【例9】CASCADE选项的作用。 设管理员使用以下GRANT语句对Liu进行授

20、权,使用户Liu具有对Sales表的SELECT权限。GRANT SELECT ON Sales TO Liu WITH GRANT OPTION 因此,用户Liu具有了将sales对象的SELECT权限授予其他用户的权限,于是用户Liu执行以下授权:GRANT SELECT ON Sales TO Gao,31,废除对象权限,这时,管理员执行以下语句可废除用户Liu的WITH GRANT OPTION权限,以及用户Gao所获得的对Sales表的SELECT权限,但Liu仍具有对Sales表的SELECT权限。REVOKE GRANT OPTION FOR SELECT ON sales FR

21、OM Liu CASCADE,32,废除对象权限,【例11】设用户Tom执行以下语句对角色Role1进行了授权:GRANT SELECT ON Table1 TO Role1 WITH GRANT OPTION 用户Jerry是角色Role1中的成员,于是Jerry作为角色Role1的成员执行以下授权:GRANT SELECT ON Table1 TO Jack AS role1 现在,用户Jerry要废除用户Jack所获得的对Table1表的SELECT权限,可以使用以下语句:REVOKE SELECT ON Table1 FROM Jack AS Role1,33,一般数据库系统的安全性控

22、制措施,(1)用户标识和鉴别:用用户名或用户标识号标识用户身份,系统鉴别其是否为合法用户。 (2)存取控制:确保合法用户拥有合法权限,防止未被授权用户操作数据。 (3)视图机制 (4)审计 (5)数据加密,34,一般数据库系统的安全性控制措施,(1)用户标识和鉴别 (2)存取控制 (3)视图机制,可以对部分数据映射为一个“视图”,可以为不同的用户定义不同的视图,再将相应权限授予给相应用户。从而将要保密的数据对这些用户隐藏起来。例如:为计算机学院学生办人员建立一个用户user1,只允许user1操作计算机系学生信息: (1)创建计算机学院学生视图:create view 学生_cs_viewasselect * from 学生 where 所属院系=6 (2)将对该视图的查询权限授予wangminggrant select on 学生_cs_view to wangming,35,小结:数据库系统的安全性控制机制,(1)用户标识和鉴别 (2)存取控制 (3)视图机制,可把用户对数据库的所有操作自动记录下来放入审计日志中,DBA利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。,(4)审计 (5)数据加密,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报