数据库ch04
ch04-活动目录的逻辑结构和物理结构

2019/12/13
第四章 活动目录的逻辑结构和物理结构
5
网络构建与管理
4.1.1 活动目录的基本概念
目录服务的由来 目录服务是基于X.500的规范的。用于存储、 分发和访问用户信息。 采用分布式信息存储。将物理位置分散的网络 资源集中起来进行管理。
2019/12/13
第四章 活动目录的逻辑结构和物理结构
15
网络建与管理
4.1.1 活动目录的基本概念
属性 属性用来描述对象。每一个属性都拥有它自己的
定义,定义则描述了特定于该属性的信息类型。架 构中的每一个属性都可以在“AttributeSchema”分类中指定,该分类决定了每一个属 性定义所必须包含的信息。
注意:每一个属性仅仅定义一次,但是可以在多 个分类中使用。
6
网络构建与管理
4.1.1 活动目录的基本概念
目录服务的特点 目录数据库是以树状的层次结构来描述数据信 息的。 由于与关系数据库相比,目录数据库更擅长查 询,且目录数据库中的数据读取和查询效率非 常高,比关系型数据库还要快得多,因此目录 数据库非常适合于管理网络中的资源。
2019/12/13
2019/12/13
第四章 活动目录的逻辑结构和物理结构
8
网络构建与管理
4.1.1 活动目录的基本概念
“活动”说明这个目录是动态的、可以扩展的, 具体体现如下:
活动目录中对象的数目是没有限制的。 活动目录中对象的属性是可以增加的。 可以方便地添加或删除域。
2019/12/13
第四章 活动目录的逻辑结构和物理结构
2019/12/13
第四章 活动目录的逻辑结构和物理结构
11
网络构建与管理
ch04决策支持系统(新)

Is
中国的陆地面积
960万平方公里
Is型语义网络
3 语义网络
基本的语义关系 (2)属性(类属)关系
Have :表示一个结点具有另一个结点所描述的属性
Have
鸟
翅膀
Have属性关系语义网络
3 语义网络
基本的语义关系 (2)属性(类属)关系
A-Kind-of :表示一个事物是另一个事物的一 种类型,表示隶属关系。
❖ 按此规则前提的判断得出结论的判断,由此回溯到上一 个规则的推理,一直回溯到目标的判断。
(2)逆向推理
V V
1、A B->G 2、C D->A 3、E->D
产生式规则库
推理过程:
G
A
B
B、C、E
事实库
D
E
C
3 语义网络
由J.R.Quilian于1968年在研究人类联想记忆时提出 的一种心理学模型。 基本思想: ❖ 用结点表示概念,用弧线表示概念之间的关系,将领
弧是有方向和标注的,方向体现了结点所代表的实体的 主次关系,即结点1为主,结点2为辅;
标注表示所连接的两个实体之间的语义联系。
3 语义网络
试用语义网络表示命题“某学校小学生坐车去春 游”。
某学校
属于 小学生 动作目的 春游
动作方式
坐车
3 语义网络
基本的语义关系
(1)Is-a和Part-of型关系 Is-a:表示一个事物是另一个事物的实例,表示 具体与抽象关系,此关系的一个最主要的特点是 属性的继承关系。
系统工程专业本科学员必修课
决策支持系统
第四章 智能决策支持系 统和智能技术的决策支持
本章内容
➢智能决策支持系统概述 ➢人工智能基本原理 ➢专家系统与智能决策支持系统 ➢神经网络的决策支持 ➢遗传算法的决策支持 ➢机器学习的决策支持
04数据库——数据库表单查询(where,分组,聚合函数,筛选,去重,排序)、多表查询、子查询

04数据库——数据库表单查询(where ,分组,聚合函数,筛选,去重,排序)、多表查询、⼦查询前期表准备('tank','male',73,'20140701','teacher',3500,401,1),('owen','male',28,'20121101','teacher',2100,401,1),('jerry','female',18,'20110211','teacher',9000,401,1),('nick','male',18,'19000301','teacher',30000,401,1),('sean','male',48,'20101111','teacher',10000,401,1),('歪歪','female',48,'20150311','sale',3000.13,402,2),#以下是销售部门('丫丫','female',38,'20101101','sale',2000.35,402,2),('丁丁','female',18,'20110312','sale',1000.37,402,2),('星星','female',18,'20160513','sale',3000.29,402,2),('格格','female',28,'20170127','sale',4000.33,402,2),('张野','male',28,'20160311','operation',10000.13,403,3), #以下是运营部门('程咬⾦','male',18,'19970312','operation',20000,403,3),('程咬银','female',18,'20130311','operation',19000,403,3),('程咬铜','male',18,'20150411','operation',18000,403,3),('程咬铁','female',18,'20140512','operation',17000,403,3);#ps :如果在windows 系统中,插⼊中⽂字符,select 的结果为空⽩,可以将所有字符编码统⼀设置成gbk 创建表,插⼊数据⼀、语法的执⾏顺序select * from emp\G;当表字段特别多的时候 结果的排版可能会出现混乱的现象 你可以在查询语句加\G 来规范查询结果# 语法顺序select fromwhere group by (having)# 再识执⾏顺序from wheregroup by (having)select#完整版sql 语句的查询select distinct post,avg(salary)from table1 where id > 1group by posthaving avg(salary) > 1000order by avg(salary)limit 5,5⼆、where 约束条件"""模糊匹配 like%:匹配多个任意字符 _:匹配⼀个任意字符三、group by 分组1.分组前戏 ——设置严格模式select * from emp group by post; # 报错select id,name,sex from emp group by post; # 报错select post from emp group by post; # 获取部门信息#查询详细信息报错,只能查询到分组的信息,说明设置成功强调:只要分组了,就不能够再“直接”查找到单个数据信息了,只能获取到组名2.聚合函数 max min avg sum count 以组为单位统计组内数据>>>聚合查询(聚集到⼀起合成为⼀个结果)如果⼀张表没有写group by 默认所有的数据就是⼀组#在分组后,即select 后⾯或者having 后⾯才能使⽤# 每个部门的最⾼⼯资select post,max(salary) from emp group by post;PS:给字段取别名(as 也可以省略,但是⼀般不要这样⼲)select post as 部门,max(salary) as 最⾼⼯资 from emp group by post;# 每个部门的最低⼯资select post,min(salary) from emp group by post;# 每个部门的平均⼯资select post,avg(salary) from emp group by post;# 每个部门的⼯资总和select post,sum(salary) from emp group by post;# 每个部门的⼈数总数select post,count(id) from emp group by post;在统计分组内个数的时候,填写任意⾮空字段都可以完成计数,推荐使⽤能够⾮空且唯⼀标识数据的字段,⽐如id 字段# 聚合函数max min sum count avg 只能在分组之后才能使⽤,也就是紧跟着select ⽤或者紧跟着having (分组后的⼆次where )select id,name,age from emp where max(salary) > 3000; # 报错!select max(salary) from emp;# 正常运⾏,不分组意味着每⼀个⼈都是⼀组,等运⾏到max(salary)的时候已经经过where,group by操作了,只不过我们都没有写这些条件3.group_concat 和 concatgroup_concat(分组之后⽤)不仅可以⽤来显⽰除分组外字段还有拼接字符串的作⽤1.group_concat 显⽰分组外字符 拼接字符串#查询分组之后的部门名称和每个部门下所有⼈的姓名select post,group_concat(name) from emp group by post;#在每个⼈的名字前后拼接字符select post,group_concat('D_',name,"_SB") from emp group by post;#group_concat()能够拿到分组后每⼀个数据指定字段(可以是多个)对应的值select post,group_concat(name,": ",salary) from emp group by post;2.concat拼接 as语法使⽤(不分组时⽤)就是⽤来拼接字符串达到更好的显⽰效果select name as 姓名,salary as 薪资from emp;select concat("NAME: ",name) as 姓名,concat("SAL: ",salary) as 薪资from emp;# 如果拼接的符号是统⼀的可以⽤ concat_wsselect concat_ws(':',name,age,sex) as info from emp;⼩技巧:concat就是⽤来帮你拼接数据,不分组情况下使⽤group_concat 分组之后使⽤,可以拼接数据也可以⽤来显⽰其他字段信息# 补充as语法既可以给字段起别名也可以给表起select emp.id, from emp as t1; # 报错因为表名已经被你改成了t1select t1.id, from emp as t1;3.查询四则运算# 查询每个⼈的年薪select name,salary*12 as annual_salary from emp;select name,salary*12 annual_salary from emp; # as可以省略4.练习题"""View Code8、统计各部门年龄在30岁以上的员⼯平均⼯资四、having 筛选跟where是⼀模⼀样的也是⽤来筛选数据但是having是跟在group by之后的where是对整体数据做⼀个初步的筛选⽽having是对分组之后的数据再进⾏⼀次针对性的筛选1、统计各部门年龄在30岁以上的员⼯平均⼯资,并且保留平均⼯资⼤于10000的部门select post,avg(salary) from emp where age > 30 group by post where avg(salary) > 10000; # 报错select post,avg(salary) from empwhere age >= 30group by posthaving avg(salary) > 10000;强调:having必须在group by后⾯使⽤select * from emp having avg(salary) > 10000; # 报错五、distinct 去重# 对有重复的展⽰数据进⾏去重操作#去重⼀定要满⾜数据是⼀模⼀样的情况下才能达到去重的效果#如果你查询出来的数据中包含主键字段,那么不可能去重成功#只要有⼀个不⼀样都不能算是的重复的数select distinct id,age from emp; #去重失败,id不⼀样,即使age⼀样也没⽑⽤select distinct post from emp; #成功六、limit 限制条数# 限制展⽰条数select * from emp limit 5; # 只展⽰数据的五条# 分页显⽰select * from emp limit 5,5; #第6条开始,往后展⽰5条当limit只有⼀个参数的时候表⽰的是只展⽰⼏条当limit有两个参数的时候第⼀个参数表⽰的起始位置,是索引第⼆个参数表⽰从起始位置开始往后展⽰的条数# 查询⼯资最⾼的⼈的详细信息select * from emp order by salary desc limit 1;七、regexp 正则# 在编程中只要看到reg开头的基本上都是跟正则相关select * from emp where name regexp '^j.*(n|y)$';re模块中findall:分组优先会将括号内正则匹配到的优先返回match:从头开始匹配匹配到⼀个就直接返回res = match('^j.*n$','jason')print(res.group())search:整体匹配匹配到⼀个就直接返回⼋、order by 排序select * from emp order by salary asc; #默认升序排select * from emp order by salary desc; #降序排select * from emp order by age desc; #降序排#先按照age 降序排,在年纪相同的情况下再按照薪资升序排select * from emp order by age desc,salary asc;# 统计各部门年龄在10岁以上的员⼯平均⼯资,并且保留平均⼯资⼤于1000的部门,然后对平均⼯资进⾏排序select post,avg(salary) from empwhere age > 10group by posthaving avg(salary) > 1000order by avg(salary);九、多表查询(203,'运营');insert into emp(name,sex,age,dep_id) values('jason','male',18,200),('egon','female',48,201),('kevin','male',38,201),('nick','female',28,202),('owen','male',18,200),('jerry','female',18,204);# 当初为什么我们要分表,就是为了⽅便管理,在硬盘上确实是多张表,但是到了内存中我们应该把他们再拼成⼀张表进⾏查询才合理创建表当初为什么我们要分表,就是为了⽅便管理,在硬盘上确实是多张表,但是到了内存中我们应该把他们再拼成⼀张表进⾏查询才合理#笛卡尔积select * from emp,dep; # 左表⼀条记录与右表所有记录都对应⼀遍,即10*4=40条 >>>笛卡尔积# 将所有的数据都对应了⼀遍,虽然不合理但是其中有合理的数据,现在我们需要做的就是找出合理的数据# 查询员⼯及所在部门的信息select * from emp,dep where emp.dep_id = dep.id;#查询部门为技术部的员⼯及部门信息select * from emp,dep where emp.dep_id = dep.id and = '技术';其实将两张表关联到⼀起的操作,有专门对应的⽅法:内连接、左连接、右链接、全连接# 1、内连接:只链接两张表有对应关系的记录select * from emp inner join dep on emp.dep_id = dep.id;select * from emp inner join dep on emp.dep_id = dep.idwhere = "技术";# 2、左连接: 在内连接的基础上保留左表没有对应关系的记录,没有部门信息null 补全select * from emp left join dep on emp.dep_id = dep.id;# 3、右连接: 在内连接的基础上保留右表没有对应关系的记录,没有员⼯信息null 补全select * from emp right join dep on emp.dep_id = dep.id;# 4、全连接:在内连接的基础上保留左、右⾯表没有对应关系的的记录,空⽩全⽤null 补全# 只要将左连接和右连接的sql 语句中间加⼀个union 连起来就变成全连接select * from emp left join dep on emp.dep_id = dep.idunionselect * from emp right join dep on emp.dep_id = dep.id;⼗、⼦查询就是将⼀个查询语句的结果⽤括号括起来当作另外⼀个查询语句的条件去⽤,括号⾥⾯语句末尾不能加分号#最新⽇期作为条件select name,hire_date,post from emp where hire_date in (select max(hire_date) from emp group by post) ;# 查询平均年轻在25岁以上的部门名⽅法⼀:⼦查询select name from dep where id in(select dep_id from emp group by dep_id having avg(age)>25);⽅法⼆:连表查询select from emp inner join dep on emp.dep_id = dep.idgroup by having avg(age) > 25;"""记住⼀个规律,表的查询结果可以作为其他表的查询条件,也可以通过其别名的⽅式把它作为⼀张虚拟表去跟其他表做关联查询"""select * from emp inner join dep on emp.dep_id = dep.id;⼗⼀、exist(了解)EXISTS关字键字表⽰存在。
mis11e_ch04_chs

4.11
© 2010 by Prentice Hall
管理信息系统 第4章 信息系统中的伦理和社会问题
理解与系统相关的伦理和社会问题
信息社会中,伦理、社会和政治文的相互关系
信息的权利和义务
财产权利和义务 政治问题
社会问题
伦理问题
信息技术和系统
个人
问责制和控制
社会 政治
系统质量
新信息技术的引入有涟漪效应,提出新的伦理、社会、政治问题,必须在 图4-1 个人、社会和政治层面上处理问题。这些问题有五个方面的道德:信息的 4.12权利和义务,财产权利和义务,系统质量,生活质量,问责制和控制。 © 2010 by Prentice Hall
4.33
© 2010 by Prentice Hall
管理信息系统 第4章 信息系统中的伦理和社会问题
信息系统的道德方面
网站宣布他们的隐私政策让访客去做检讨。TRUSTe印章指定的网站已经同意遵守TRUSTe建立的披露、选择、访问和安全的隐私原则。
4.34
© 2010 by Prentice Hall
管理信息系统 第4章 信息系统中的伦理和社会问题
信息系统的道德方面
• 信息权利和义务
• 隐私 • 个人债权独处,免受其他个人、组织或国家 的干预或监视。 • 自我控制信息的能力 • 在美国,隐私保护由 • 第一条修正案(言论自由) • 第四修正案(不合理搜查和扣押)
4.32
© 2010 by Prentice Hall
信息社会的伦理
• 负责(Responsibility):接受对你所 做决策的潜在成本、责任和义务 • 问责制(Accountability):存在一个 机制,确定谁对行为负责
(完整版)数据库原理及应用教程第4版习题参考答案

习题参考答案第1章习题参考答案三、简答题1、简述数据库管理技术发展的三个阶段。
各阶段的特点是什么?答:数据库管理技术经历了人工管理阶段、文件系统阶段和数据库系统阶段。
(1)、人工管理数据的特点:A、数据不保存。
B、系统没有专用的软件对数据进行管理。
C、数据不共享。
D、数据不具有独立性。
(2)、文件系统阶段的特点:A、数据以文件的形式长期保存。
B、由文件系统管理数据。
C、程序与数据之间有一定的独立性。
D、文件的形式已经多样化E、数据具有一定的共享性(3)、数据库系统管理阶段特点:A、数据结构化。
B、数据共享性高、冗余度底。
C、数据独立性高。
D、有统一的数据控制功能。
2、从程序和数据之间的关系来分析文件系统和数据库系统之间的区别和联系答:数据管理的规模日趋增大,数据量急剧增加,文件管理系统已不能适应要求,数据库管理技术为用户提供了更广泛的数据共享和更高的数据独立性,进一步减少了数据的余度,并为用户提供了方便的操作使用接口。
数据库系统对数据的管理方式与文件管理系统不同,它把所有应用程序中使用的数据汇集起来,以记录为单位存储,在数据库管理系统的监督和管理下使用,因此数据库中的数据是集成的,每个用户享用其中的一部分。
3、简述数据库、数据库管理系统、数据库系统三个概念的含义和联系。
答:数据库是指存储在计算机内、有组织的、可共享的数据集合。
数据库管理系统是软件系统的一个重要组成部分,它通过借助操作系统完成对硬件的访问,并对数据库的数据进行存取、维护和管理。
数据库系统是指计算机系统中引入数据库后的系统构成。
它主要由数据库、数据库用户、计算机硬件系统和计算机软件系统几部分组成。
三者的联系是:数据库系统包括数据库和数据库管理系统。
数据库系统主要通过数据库管理系统对数据库进行管理的。
4、数据库系统包括哪几个主要组成部分?各部分的功能是什么?画出整个数据库系统的层次结构图。
答:数据库系统包括:数据库、数据库用户、软件系统和硬件系统。
JasperReports_3.5_ch04

4从数据库创建动态报表在前面的章节中,我们学习了如何创建第一份报表。
在那个简单的报表中,没有包含动态数据。
在本章中,我们将介绍怎样用数据库中的数据来创建报表。
本章主要内容包括:•怎样在定义的报表中嵌入SQL查询•怎样通过数据源来传递SQL查询返回的数据行•怎样使用报表域在报表中显示来自数据库的数据•怎样通过JRXML模板的<textField>元素显示来自数据库的数据数据源数据源被JasperReports用来获取生成报表的数据。
数据可以是存放在数据库、XML文件、对象数组、对象集合中。
本章主要讨论数据库相关的数据源,其它类型的数据源将在下一章中介绍。
生成报表的数据库我们将用MySQL数据库来存放生成报表用的数据,从 可以下载到本文中使用的MySQL数据文件。
这份数据是公用的,其原始大小为1.3G。
所以,我们删除了其中许多数据表和大量的数据,以使其尺寸变得适合下载。
裁剪后的MySQL数据备份文件,也是本书的随书代码的一部分。
可以从/files/code/8082_Code.zip下载得到它。
此flightstats数据库中包含了下列数据表:•Aircraft•aircraft_models•aircraft_types•aircraft_engines•aircraft_engine_types下图给出了数据库的结构:FlightStats数据库使用MySQL数据库缺省的MyISAM 存储引擎,它不支持外键引用,这也正是我们在上图的表和表这间看不到任何表示数据表之间依赖关系的箭头的原因。
下面,让我们来创建一份报表,显示数据库中1000马力以上的大型飞机。
报表将显示飞机的尾数(tail number)、序号(serial number)、飞机型号(model)和飞机引擎型号(engine model)。
下面的查询用于获取这些结果:SELECT a.tail_num, a.aircraft_serial, am.model as aircraft_model,ae.model AS engine_modelFROM aircraft a, aircraft_models am, aircraft_engines aeWHERE a.aircraft_engine_code in (select aircraft_engine_codefrom aircraft_engineswhere horsepower >= 1000)and am.aircraft_model_code = a.aircraft_model_codeand ae.aircraft_engine_code = a.aircraft_engine_code以上查询从数据库获取的数据如下所示:生成数据库报表有两种方法来生成数据库报表,把SQL查询嵌入到JRXML报表模板中,或者通过数据源从数据库传递数据到编译后的报表中。
(完整版)数据库系统概论第四版课后习题答案

第1 章绪论1 .试述数据、数据库、数据库系统、数据库管理系统的概念。
答:( l )数据(Data ):描述事物的符号记录称为数据。
数据的种类有数字、文字、图形、图像、声音、正文等。
数据与其语义是不可分的。
解析在现代计算机系统中数据的概念是广义的。
早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。
现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。
数据与其语义是不可分的。
500 这个数字可以表示一件物品的价格是500 元,也可以表示一个学术会议参加的人数有500 人,还可以表示一袋奶粉重500 克。
( 2 )数据库(DataBase ,简称DB ):数据库是长期储存在计算机内的、有组织的、可共享的数据集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
( 3 )数据库系统(DataBas 。
Sytem ,简称DBS ):数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。
解析数据库系统和数据库是两个概念。
数据库系统是一个人一机系统,数据库是数据库系统的一个组成部分。
但是在日常工作中人们常常把数据库系统简称为数据库。
希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库” ,不要引起混淆。
( 4 )数据库管理系统(DataBase Management sytem ,简称DBMs ):数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。
DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。
解析DBMS 是一个大型的复杂的软件系统,是计算机中的基础软件。
目前,专门研制DBMS 的厂商及其研制的DBMS 产品很多。
离散数学ch04图论根树(课件)

04
根树的性质与算法
根树的性质
根树的定义
根树的性质1
根树的性质2
根树的性质3
根树是一种有向无环图,其中 有一个节点被指定为根节点, 其他节点按层次结构排列,从 根节点出发,每个节点恰好有 一条有向边指向其子节点。
根树的节点数等于其子树的节 点数之和加一。
根树的深度等于其最深叶子节 点的深度加一。
路径与回路
总结词
路径与回路是图论中重要的概念,路径是指一系列连续的边和顶点,回路是指起点和终点相同的路径 。
详细描述
在图论中,路径是指从起始顶点到终止顶点的一系列连续的边和顶点。每个顶点和边在路径中只出现 一次,且顺序必须一致。回路则是指起点和终点相同的路径,即路径中存在一个顶点,通过一系列的 边回到该顶点。回路在图论中具有重要意义,如在欧拉路径。
图论的重要性
图论在计算机科学、电子工程、 交通运输、生物信息学等领域有
广泛应用。
图论为复杂系统提供了统一的数 学框架,使得可以运用数学方法 和计算机技术来分析和优化这些
系统。
图论在解决实际问题中发挥了关 键作用,如路由优化、社交网络 分析、蛋白质相互作用网络等。
算法效率和复杂性的优化
在解决实际问题时,算法的效率和复杂性是关键因素。如 何优化图论和根树的算法,提高其计算效率和降低其计算 复杂性,是一个具有挑战性的问题。
THANKS
感谢观看
低运输成本。
交通控制
03
根树可以用于构建交通信号灯的控制逻辑,提高道路的通行效
率。
06
总结与展望
图论与根树的重要性和发展前景
重要应用领域
图论和根树在计算机科学、电子 工程、交通运输、生物信息学等 领域有广泛的应用,对解决实际 问题具有重要意义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三类计算机系统安全性问题
技术安全类——计算机系统中采用具有一定安全性的硬件、软件来实现对计 算机系统及其所存数据的安全保护,当计算机系统受到无意或恶意攻击 时,仍能保证系统正常运行,保证系统内数据不增加、不丢失、不泄露。 管理安全类——由于管理不善导致的计算机设备和数据介质的物理破坏、丢 失等软硬件意外故障以及场地的意外事故等安全问题。 政策法律类——政府部门建立的有关计算机犯罪、数据安全保密的法律道德 准则和政策法规、法令。
DBA 数据库对象创建者(即属主Owner) 拥有该权限的用户
按受权限的用户
一个或多个具体用户 Public(全体用户)
With Grant Option子句
指定:可以再授予 没有指定:不能传播 不允许循环授权
14
授权例子( ) 授权例子(1)
[例1] 把查询 例 查询Student表权限授给用户 表权限授给用户U1 表权限授给用户
[例3] 把对表 的查询权限授予所有用户 例 把对表SC的查询权限授予 的查询权限授予所有用户
Grant Select On Table SC To Public;
15
授权例子( ) 授权例子(2)
[例4] 把查询 例 把查询Student表和修改学生学号的权限授给用户 表和修改学生学号的权限授给用户U4 表和修改学生学号的权限授给用户
16
用户权限定义示例表1 用户权限定义示例表
下表是执行了[例1]到[例7]的语句后,学生-课程数据库中的用户权限定义 表 授权用户名 DBA DBA DBA DBA DBA DBA DBA DBA DBA U5 U6 被授权用户名 U1 U2 U2 U3 U3 Public U4 U4 U5 U6 U7 数据库对象名 关系Student 关系 关系Student 关系 关系Course 关系 关系Student 关系 关系Course 关系 关系SC 关系 关系Student 关系 属性列Student.Sno 属性列 关系SC 关系 关系SC 关系 关系SC 关系 允许的操作类型 能否转授权 Select 不能 All 不能 All 不能 All 不能 All 不能 Select 不能 Select 不能 Update 不能 Insert 能 Insert 能 Insert 不能
B1级 严格
12
4.2.3 自主存取控制方法
通过 SQL 的 Grant 语句和 Revoke 语句实现 用户权限组成
数据对象 操作类型
定义用户存取权限:定义用户可以在哪些数据库对象上进行哪些类 型的操作 定义存取权限称为授权
关系数据库系统中存取权限 关系数据库系统中存取权限 对象类型 数据库 模式 数据 数据 对象 模式 基本表 视图 索引 基本表和视 图 属性列 操作类型 Create Schema Create Table, Alter Table Create View Create Index Select, Insert, Update, Delete, References, All Privileges Select, Insert, Update, References, All Privileges
7
CC简介
提出国际公认的表述信息技术安全性的结构 把信息产品的安全要求分为——安全功能要求、安全保证要求 CC文本组成——简介和一般模型、安全功能要求、安全保证要求
CC评估保证级划分 评估保证级划分
评估 保证级 EAL1
定
义
TCSEC安全级别 安全级别 (近似相当) 近似相当) 授权与回收
一、授权 授权
Grant <权限> [, <权限> ]... On <对象类型> <对象名> [, <对象类型> <对象名> ] To <用户> [, <用户> ]... [ With Grant Option ];
语义:将对指定操作对象的指定操作权限授予指定的用户
发出Grant
19
SQL灵活的授权机制 SQL灵活的授权机制
DBA:拥有所有对象的所有权限
不同的权限授予不同的用户
用户:拥有自己建立的对象的全部的操作权限
Grant:授予其他用户 Grant
被授权的用户
“继续授权”许可:再授予
所有授予出去的权力在必要时又都可用Revoke语句收回
20
三、创建数据库模式的权限
DBA在创建用户时实现,Create User语句格式 在创建用户时实现, 在创建用户时实现 语句格式
第四章 数据库安全性
4.1 计算机安全性概述 4.2 数据库安全性控制 4.3 视图机制 4.4 审计 4.5 数据加密 4.6 统计数据库安全性 4.7 小结
1
数据库安全性
问题的提出
数据库的一大特点是数据可以共享 数据共享必然带来数据库的安全性问题 数据库系统中的数据共享不能是无条件的共享
例: 军事秘密、国家机密、新产品实验数据、 市场需求分析、市场营销策略、销售计划、 客户档案、医疗档案、银行储蓄数据
EAL2 EAL3 EAL4 EAL5 EAL6 EAL7
功能测试(functionally tested) 功能测试( ) 结构测试( 结构测试(structurally tested) ) 系统地测试和检查( 系统地测试和检查(methodically tested and checked) ) 系统地设计、测试和复查( 系统地设计、测试和复查(methodically designed, tested, and reviewed) ) 半形式化设计和测试( 半形式化设计和测试(semiformally designed and tested) ) 半形式化验证的设计和测试( 半形式化验证的设计和测试(semiformally verified design and tested) ) 形式化验证的设计和测试( 形式化验证的设计和测试(formally verified design and tested) )
系统提供的最外层安全保护措施
用户标识
用一个用户名(UserName)或者用户标识号(UID)来标明 用户身份
口令
为进一步核实用户,系统常常要求用户输入口令
用户名和口令易被窃取
每个用户预先约定好一个计算过程或者函数
11
4.2.2 存取控制
存取控制机制组成
定义用户权限:将用户权限登记到数据字典中 合法权限检查:若用户请求超出了权限,则拒绝执行此操作
[例9] 收回所有用户对表 的查询权限 例 收回所有用户对表SC的查询权限
Revoke Select On Table SC From Public;
[例10] 把用户 对SC表的 例 把用户U5对 表的 表的Insert权限收回 权限收回
Revoke Insert On Table SC From U5 Cascade;
Grant Select On Table Student To U1;
[例2] 把对 例 把对Student表和 表和Course表的全部权限授予用户 和U3 表的全部权限授予用户U2和 表和 表的全部权限授予用户
Grant All Privileges On Table Student, Course To U2, U3;
数据库安全性
2
4.1 计算机安全性概述
4.1.1 计算机系统的三类安全性问题 4.1.2 安全标准简介
3
4.1.1 计算机系统的三类安全性问题
计算机系统安全性——为计算机系统建立和采取的各种安全保护措施,以保 护计算机系统中的硬件、软件及数据,防止其因偶然或恶意的原因使系 统遭到破坏,数据遭到更改或泄露等。
4.2 数据库安全性控制
4.2.1 用户标识与鉴别 4.2.2 存取控制 4.2.3 自主存取控制方法 4.2.4 授权与回收 4.2.5 数据库角色 4.2.6 强制存取控制方法
9
数据库安全性控制概述
非法使用数据库的情况
编写合法程序绕过DBMS及其授权机制 直接或编写应用程序执行非授权操作 通过多次合法查询数据库从中推导出一些保密数据
Grant Update (Sno), Select On Table Student To U4; /*对属性列的授权时必须明确指出相应属性列名*/
[例5] 把对表SC的Insert权限授予 用户,并允许他再将此权限授予 例 把对表 的 权限授予U5用户, 权限授予 用户 其他用户
Grant Insert On Table SC To U5 /*执行例5后,U5不仅拥有了对表SC*/ With Grant Option; /*的Insert权限,还可以传播此权限*/ [例6] Grant Insert On Table SC To U6 With Grant Option; /* 同样,U6还可以将此权限授予U7*/ [例7] Grant Insert On Table SC To U7; /*但U7不能再传播此权限*/
常用存取控制方法
自主存取控制(Discretionary Access Control ,简称DAC):用户对不同数 据库对象有不同存取权限,不同用户对同一数据对象也有不同权限,且 用户可以将拥有的权限转授他人
C2级 灵活
强制存取控制(Mandatory Access Control,简称 MAC):每一数据库对象 被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任 意一个对象,只有具有合法许可证的用户才可以存取
Create User <username> [ With ] [ DBA | Resource | Connect ]
•权限与可执行的操作对照表 权限与可执行的操作对照表
拥有的 权限 DBA Resource Connect 可否执行的操作 Create User 可以 不可以 不可以 Create Schema 可以 不可以 不可以 Create Table 可以 可以 不可以 登录数据库, 登录数据库,执行 数据查询和操纵 可以 可以 可以,但必须拥有 可以, 相应权限