数据库安全技术讲课(第2章)_第1页
数据库安全技术讲课(第2章)_第2页
数据库安全技术讲课(第2章)_第3页
数据库安全技术讲课(第2章)_第4页
数据库安全技术讲课(第2章)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库安全技术主讲人:周杰1、数据库的基本操作2、数据表的基本操作3、SQL注入4、SQL注入防范第二章数据库和数据表1、创建数据库(1)起名字,最好不要用中文。(2)数据存储的物理路径,不要放在C盘(系统盘)数据文件和日志文件可以放在一个路径下,也可以放在不同的路径下。(3)大小的自动增长。按M或者按百分比增长。(4)可添加辅助数据文件,建议一般不要用,除非数据很大。1、数据库的基本操作2、收缩数据库。日志文件收缩。简单恢复模式。3、分离和附加数据库。先分离,再附加。不停服务,无法分离。下面演示创建数据库。(1)按向导模式创建(2)按SQL语句创建(create database)(3)删除

2、数据库(drop database)(4)重命名数据库(alter database)(5)收缩数据库日志(6)分离和附加数据库1、数据库的基本操作1、创建表命名:(1)必须遵守标识符的规定(英文开头)(2)表的名称在数据库中唯一(3)表名字代表一定的意义2、数据表的基本操作数据类型(根据实际需要设置)Int 整型Float浮点型Char字符型Varchar可变长度的字符型Datetime日期型备注:一个汉字需要2个字节2、数据表的基本操作表属性(1)是否为空(null)(2)自增(3)计算列(4)默认值(5)主键(或组合主键)2、数据表的基本操作其他操作(1)索引(2)外键约束(3)chec

3、k约束(4)唯一约束静态约束列完整性域完整性约束表完整性关系完整性约束动态约束触发器2、数据表的基本操作利用SQl语句创建表Create table Student(Xh char(15),-长度固定,但每个学号唯一,主键Xm varchar(20),-可变长的字符串Xb char(2),-长度固定,但只能取男或者女两个值Age int,-整型数据,但必须是-150内的数字Zymc varchar(100),-可变长的字符串Bj varchar(100), -可变长的字符串Sfzh char(18)-身份证是固定的位,且唯一)SQL语句创建表Create table Student1(Xh c

4、har(15) primary key,-学号唯一,主键Xm varchar(20) not null,-可变长的字符串Xb char(2) check (xb=男 or xb=女),-或者xb in(男,女)Age int check(age between 0 and 150),Zymc varchar(100) not null,Bj varchar(100) not null,Sfzh char(18) not null unique-身份证是固定的位,且唯一)SQL语句创建表(添加了约束)Create table 创建表Alter table 修改表(1)增加列alter table

5、 student add csrq datetime(2)增加约束 alter table student add check(csrq is not null)(3)删除列 alter table student drop column csrqDrop table 删除表(物理删除)表结构的操作1、单条数据的插入Insert into 表(列1,列2,)values(值1,值2)2、多条数据的插入Insert into 表(列1,列2,) values(值1,值2), values(值1,值2) , values(值1,值2) 3、批量数据的插入Insert into 表(列1,列2,)

6、select列1,列2,from 表2数据表的基本操作插入数据修改关键字update通常与where配合使用,否则修改所有数据例如:update student set age=22 where xh=1001update student set zymc=网络安全 where xh=1001update student set age=22 ,zymc=网络安全 where xh=1001-多列更新数据表的基本操作修改删除关键字delete通常与where配合使用,否则删除所有数据例如:delete from student where xh=1001清空表truncate table st

7、udentDelete truncate drop三者的区别:1、drop 物理删除表,表结构不在了2、delete 记录日志,删除速度慢,表结构还在3、truncate table 不记录日期,删除快,表结构还在数据表的基本操作删除1、select * from student-全部查询2、select xh,xm,xb from student-指定列查询3、select xh 学号,xm 姓名,xb 性别 from student-指定列重命名4、select distinct zymc from student-去掉重复项5、select top5 * from student-前5条

8、记录6、select year(getdate()-year(csrq) as 年龄 from student-计算列数据表的基本操作查询17、select *from student where xh=1001-条件查询8、select *from student where xh=1001 and xb=男-逻辑条件查询9、select *from student where age between 20 and 25-bwteen 条件查询10、select *from student where age in(20,25)-in 条件查询数据表的基本操作查询211、select * f

9、rom student where xm like 张%查询姓张的所有学生12、select * from student where xm like %强%查询姓名中包含强字的所有学生13、select * from student where zymc is null -Null查询14、select * from student order by xh desc降序排序,默认是升序15、select left(sfzh,2) where len(xh)=10带函数的查询数据表的基本操作查询31、统计所有记录数Select count(*) from student2、按性别统计Selec

10、t xb 性别,count(*) 人数 from student group by xb3、求平均年龄Select avg(age) from student4、统计结果筛选Select xb 性别,count(*) 人数 from student group by xb having count(*)25、其他聚合函数,max,min,sum数据表的基本操作统计41、Select * from 表1,表2 where 表1.xh=表2.xh2、Select 表1.* from 表1,表2 where 表1.xh=表2.xh3、Select a.* from 表1 a,表2 b where a

11、.xh=b.xh4、Select a.* from 表1 a inner join表2 b on a.xh=b.xh5、除inner join内链接外,还有left join左连接,right join右连接等数据表的基本操作多表查询51、查询结果形成新表Select xb 性别,count(*) 人数 into 性别统计表 from student group by xb2、in 子查询Select * from 表1 where xh in(select xh from 表2)3、exists子查询Select * from 表1 where exists (select xh from

12、表2)4、多值子查询 Select * from 表1 where xh =some(select xh from 表2)数据表的基本操作查询6定义:通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将恶意的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。3、SQL注入原理例如:当我们在网站上输入用户名和密码登陆时,系统会在后台产生一个SQL语句。Select * from Users w

13、here Username=”&UserName&” and Password=”&Password&”正常情况下:UserName=abc ,Password=123语句产生如下:select * from Users where UserName=abc and Password=123SQL注入演示1若我在用户名中输入 or 1=1 ,密码随意输入3,则语句如下:select * from Users where Username= or 1=1 -and password=3说明下:1、两个单引号说明用户名为空2、1=1说明永远成立3、or 只要有一个成立即可4、-将密码判断注释掉了5

14、、意义:绕过输入真实的用户名,密码任意填写,即可登录系统。SQL注入演示1举例2:搜索Select * from Users where UserName like %”&Keywords&”%当我们输入关键词hack;Drop table Users;-则SQL语句变为Select * from Users where UserName like %hack;Drop table Users;-语句中出现了删除表的情况,相当危险。SQL注入演示2http:/website/url.asp?id=1http:/website/url.asp?id=1;select top 10 * from Users;参数容易被利用如果执行Xp_cmdshell则可以执行更多的命令。SQL注入演示3利用SQL语句本身问题,将原有的SQL语句改变。并不是每次注入都能够成功。总结:攻击通过什么呢?(1)空格 , - ;(2)or(3)delete、drop、update等关键词(4)xp_shell3、SQL注入攻击总结用户权限控制坚持最小权限原则,特别是truncate、drop等权限。4、 SQL注入防范数据库防范

温馨提示

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

评论

0/150

提交评论