23-系统安全03-数据库安全01-数据库基础_第1页
23-系统安全03-数据库安全01-数据库基础_第2页
23-系统安全03-数据库安全01-数据库基础_第3页
23-系统安全03-数据库安全01-数据库基础_第4页
23-系统安全03-数据库安全01-数据库基础_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

数据库基础了解数据库的概念及常见主流数据库产品熟悉识别数据库方法熟悉SQL语法,掌握常见SQL命令的使用教学目标数据库概述识别数据库SQL语法基础目录数据库概述数据库(DataBase,DB):存储在磁带、磁盘、光盘或其他外存介质上、按一定结构组织在一起的相关数据的集合。数据库管理系统(DataBase

Management

System,DBMS):一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。数据库系统(DataBase

System,DBS):通常由软件、数据库(DB)和数据库管理员组成。软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统(DBMS)。数据库(DB)由数据库管理系统(DBMS)统一管理,数据的插入、修改和检索均要通过数据库管理系统(DBMS)进行。数据库管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。典型的网站体系结构数据库概述数据库分类关系型数据库关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。通过SQL结构化查询语句存储数据,保持数据一致性,遵循ACID理论。关系型数据库的典型产品:MySQL、MicrosoftSQLServer、Oracle、PostgreSQL、IBMDB2、Access等。非关系型数据库非关系型数据库也被成为NOSQL数据库,NOSQL的本意是“NotOnlySQL”指的是非关系型数据库,而不是“NoSQL”的意思。因此,NOSQL的产生并不是要彻底地否定关系型数据库,而是作为传统关系型数据库的一个有效补充。NOSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。非关系型数据库的典型产品:Memcached、Redis、mongoDB等。数据库概述ACID理论原子性(Atomicity):事务是一个不可分割的单位,事务中的操作要么都发生,要么都不发生。一致性(Consistency):事务前后数据的完整性必须保持一致。隔离性(Isolation):多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。持久性(Durability):一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。数据库概述数据库概述Oracle甲骨文公司的一款关系型数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle是目前世界上功能最强大、最复杂、市场占比最高的商业数据库产品,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。从架构到运维,可以说是最难的数据库,学习和使用难度较高。数据库概述MySQLMySQL是当今最受欢迎的开源SQL数据库管理系统,它由瑞典MySQLAB开发、发布和支持。MySQLAB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是现在非常流行的关系型数据库管理系统,尤其在Web应用方面,是最好的关系型数据库管理系统应用软件之一。数据库概述MicrosoftSQLServer(MSSQL)SQLServer是Microsoft推出的关系型数据库管理系统,具有使用方便、可伸缩性好、与相关软件集成程度高等优点,从旧版本的个人电脑到运行MicrosoftWindowsserver的大型多处理器的服务器都可以使用。老版本只能在Windows上运行,从SQLServer2017版本起可以在Linux上运行。数据库概述PostgreSQLPostgreSQL是加州大学伯克利分校计算机系开发的开源对象关系型数据库管理系统(ORDBMS),稳定性极强,用于安全地存储数据。数据库概述MemcachedMemcached是一个开源的、高性能的、具有分布式内存对象的缓存系统。通过它可以减轻数据库负载,加速动态的Web应用。目前全球有非常多的用户都在使用它来架构主机的大负载网站或提升主机的高访问网站的响应速度。Memcached是一种纯内存缓存系统,把经常存取的对象或数据缓存在Memcached的内存中,这些缓存的数据被程序通过API的方式进行读取,Memcached里面的数据就像一张巨大的hash表,数据以key-value对的方式存在。Memcached之反射拒绝服务攻击技术数据库概述RedisRedis也是一个key-value型存储系统。但Redis支持的存储value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)等。这些数据类型都支持push/pop、add/remove及取交集、并集和差集及更丰富的操作。Redis未授权访问漏洞数据库概述mongoDBmongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为Web应用提供可扩展的高性能数据存储解决方案。mongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系型数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。mongoDB最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。MongoDB远程代码注入漏洞数据库概述国内自主研发的关系型数据库达梦(DM):由华中理工冯玉才教授创办,完全自主研发,以Oracle为参照、追赶对象。人大金仓(Kingbase):由人民大学王珊教授创办,自主研发。普通的关系型数据库。神舟通用(OSCAR):神舟集团与南大通用合作开发的关系型数据库,更多地用于数据分析领域。南大通用(GBase):南开大学的背景,2010年左右自主研发的基于列式存储、面向数据分析、数据仓库的数据库系统。数据库概述MySQL数据库连接方法数据库概述1.命令行连接:[root@host]#mysql-hX.X.X.X-uroot

-p2.PHP脚本连接:mysqli_connect(host,username,password,dbname,port,socket);3.第三方软件连接MySQL数据库连接方法数据库概述1.命令行连接:[root@host]#mysql-hX.X.X.X-uroot

-p2.PHP脚本连接:mysqli_connect(host,username,password,dbname,port,socket);3.第三方软件连接MySQL数据库连接方法数据库概述1.命令行连接:[root@host]#mysql-hX.X.X.X-uroot

-p2.PHP脚本连接:mysqli_connect(host,username,password,dbname,port,socket);3.第三方软件连接数据库概述识别数据库SQL语法基础目录识别数据库方法盲跟踪Web应用技术不同数据库SQL语句差异

非盲跟踪报错、直接查询识别数据库识别数据库默认端口号Oracle:1521MySQL:3306SQLServer:1433PostgreSQL:5432mongoDB:27017Redis:6379MemcacheDB:11211识别数据库报错信息MySQL报错信息:MSSQL(MicrosoftSQLServer)报错信息:Oracle报错信息:识别数据库各数据库的版本查询方法区别MSSQLselect@@versionMySQLselectversion()/select@@versionOracleselectbannerfromv$versionPostgreSQLselectversion()识别数据库各数据库在字符串处理时的区别识别数据库各数据库与网页编程语言的搭配常见的搭配:ASP和.NET:MicrosoftSQLServerPHP:MySQL、PostgreSQLJava:Oracle、MySQL数据库概述识别数据库SQL语法基础目录SQL语法基础库、表、列/字段、值的定义数据库名:data.mdb表:gmadmin(2)、news(14)、评论(40)…….表gmadmin字段或列:id、gmadmin、gmpass每个对应的字段都有对应的数值SQL语法基础用于与关系型数据库交互的标准SQL命令有CREATE、SELECT、INSERT、UPDATE、DELETE和DROP分为三组数据定义(Create、Drop)数据操纵(Select、Insert、Update、Delete)数据控制(Grant、Revoke)SQL语法基础命令描述CREATE创建新的表、视图或其他数据库中的对象ALTER修改现存数据库对象,比如一张表DROP删除表、视图或者数据库中的其他对象命令描述SELECT从一张或者多张表中检索特定的数据INSERT创建一条新记录UPDATE修改记录DELETE删除记录命令描述GRANT赋予用户特权REVOKE收回赋予用户的特权SQL语法基础SQL基本操作:CUDC=Create创建CREATEDATABASEtestdb;

CREATETABLEtable_name(column_namecolumn_type);U=Update更改UPDATEtable_nameSETfield1=new-value1,field2=new-value2[WHEREClause]D=Delete删除DELETEFROMtable_name[WHEREClause]SQL语法基础SQL基本操作创建数据库college创建数据库college中的表officesSQL语法基础SQL基本操作向数据库college中的表offices中添加数据SQL语法基础SQL基本操作修改表offices中的某一行的数据SQL语法基础SQL基本操作删除表offices中的某一行数据SQL语法基础SQL高级操作:排序,分组,限定条数排序orderbySELECT*FROMtest_tableORDERBYuserid;分组groupbySELECTname,COUNT(*)FROMtest_tableGROUPBYname;限定条数limitSELECT*FROMtest_tablelimit0,10;SELECT*FROMtest_tablelimit1,5;联合查询unionselectSELECT*FROMtest_tableUNIONSELECT1,2,3;SQL语法基础(1)orderbySQL语法基础orderby:当后面跟着的数字超出了字段数时,就会报错!通过这个可以确定字段数。(1)orderbySQL语法基础select*fromtablelimitm,n其中m是指记录开始的index,从0开始;n是指从第m+1条开始,取n条两个参数:第一个是偏移量,第二个是数目select*fromemployeelimit3,7;//返回4-10行select*fromemployeelimit3,1;//返回第4行一个参数select*fromemployeelimit3;//返回前3行(2)limitSQL语法基础groupby语句:根据(by)一定的规则进行分组(Group)。

作用:通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。

注意:groupby是先排序后分组;groupby必须有“聚合函数”sum()、count()、avg()来配合才能使用。(3)groupbySQL语法基础(3)groupbySQL语法基础错误查询语句:selectproduct,pricefromordersgroupbyproduct正确查询语句:selectproduct,sum(price)fromordersGROUPBYproduct(3)groupbySQL语法基础(3)groupbySQL语法基础当查询语句同时出现了where,groupby,having,orderby的时候,执行顺序和编写顺序是:1.执行wherexx对全表数据做筛选,返回第1个结果集。2.针对第1个结果集使用groupby分组,返回第2个结果集。3.针对第2个结果集中的每1组数据执行selectxx,有几组就执行几次,返回第3个结果集。4.针对第3个结集执行havingxx进行筛选,返回第4个结果集。5.针对第4个结果集排序。SQL语法基础selectproduct,sum(price)fromordersGROUPBYproductHAVINGsum(price)>100ORDERBYsum(price);SQL语法基础(4)联合查询union因为查询语句构造问题,可直接否认掉之前的查询,构造一个全新的语句来执行,需要注意的是查询的列应当和之前对应。SQL语法基础用and...unionselect1,2,3,4,5,6...;来猜解列数(字段数),只有列数相等了,才能返回True(4)联合查询unionSQL语法基础知道列名后,把列名至于其中任意位置,就能在那个位置暴出列的内容来。联合查询正常查询(4)联合查询unionSQL语法基础(5)结合其他函数结合exists()函数猜解表名andexists(select...)exists()函数用于检查子查询是否至少会返回一行数据。实际上不返回任何数据,而是返回True或者False。存在offices_second表不存在offices_s表SQL语法基础unionselect结合系统函数暴数据库信息MySQL5.5以上版本自带information_schema数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息,如数据库名、数据库的表、表栏的数据类型与访问权限等。information_schemaschematatablescolumnsschema_nametable_nametable_schemacolumn_nametable_name库表列(字段)(5)结合其他函数SQL语法基础union结合系统函数暴数据库信息information_schema.TABLES表中的TABLE_NAME和TABLE_SCHEMA查看所有的表名和所在的数据库:

selectTABLE_NAME,TABLE_SCHEMAfrominformation_schema.TABLESwhere

温馨提示

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

最新文档

评论

0/150

提交评论