数据库在安全方面实用基础学习

文章目录

  • 数据库
    • 关系型数据库
    • 数据库的创建
    • Mysql的数据类型
    • 表结构的操作
    • 增删改查
    • 常用函数
      • database() user() version()
      • LOAD_FILE
        • windows 下mysql loadfile 返回NULL的解决
      • dumpfile
      • outfile
      • 关于dumpfile与outfile的共性异性
    • TIPS(一定要关注Mysql不同版本的特性!!!)

数据库

关系型数据库

关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
当前主流的关系型数据库有Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL、浪潮K-DB等。

SQL(Structured Query Language)语言是1974年由Boyce和Chamberlin提出的一种介于关系代数与关系演算之间的结构化查询语言,是一个通用的、功能极强的关系性数据库语言。

数据库的创建

1.mysql –h localhost –u root -p
-h是指定主机名或IP
-u 指定用户
-p 指定要输入密码
2.我们可以使用show databases查看原本有哪些数据库避免重复
3.创建数据库CREATE DATABASE 数据库名;
4.删除数据库DROP DATABASE 数据库名;
5.打开数据库USE 数据库名;
6.查看当前所用的数据库select database();
7.查看当前数据库想表名:show tables;
8.查看指定表结构: desc 表名

Mysql的数据类型

很清楚,可以直接看看
来自菜鸟教程

表结构的操作

创建数据表
CREATE TABLE [表名]([字段名] [字段类型]([字段要求]) [字段参数], ......);
更改数据表 
ALTER TABLE [表名] ADD COLUMN [字段名] DATATYPE
ALTER TABLE [表名] ADD PRIMARY KEY ([字段名])
说明:更改表的定义把某个栏位设为主键。
TABLE [表名] DROP PRIMARY KEY ([字段名])
显示ALTER当前表字段:show columns from tablename;

修改字段名:alter table user change name username varchar(50);
Add:id是主键也是自增类型
1.
数据库在安全方面实用基础学习_第1张图片
2.
数据库在安全方面实用基础学习_第2张图片

3.数据库在安全方面实用基础学习_第3张图片

增删改查

添加:INSERT INTO [表名] VALUES('','',......顺序排列的数据);
查询: SELECT * FROM [表名] WHERE ([条件]);
删除:DELETE FROM [表名] WHERE ([条件]);
修改:UPDATE [表名] SET [修改内容如name = 'chabug'] WHERE [条件];

常用函数

database() user() version()

数据库在安全方面实用基础学习_第4张图片

LOAD_FILE

windows 下mysql loadfile 返回NULL的解决

ADD:windows 下mysql loadfile 返回NULL的解决
数据库在安全方面实用基础学习_第5张图片

dumpfile

select unhex(‘十六进制字符串’) into dumpfile ‘路径’
select “字符串” into dumpfile ‘路径’
数据库在安全方面实用基础学习_第6张图片

outfile

select’'INTO OUTFILE '路径’
在这里插入图片描述

关于dumpfile与outfile的共性异性

限制条件:
1)需要知道Web目录的绝对路径。
2)需要mysql用户有file权限,file权限限制在MySQL服务器上读写文件。grant file on . to root@localhost;
3)因为执行时以mysql用户去执行,所以mysql用户需要有Web目录的写权限。

限制条件:
dumpfile只能导出一行。
可执行2进制文件用into outfile函数导出,导出后就会被破坏

TIPS(一定要关注Mysql不同版本的特性!!!)

MySQL不能写入文件原因,可能是MYSQL新特性secure_file_priv对读写文件的影响:
查看配置项:SHOW VARIABLES LIKE "secure_file_priv“
如果查到了secure_file_priv的值,再执行下列命令就可以写入文件了:
select 123 into outfile '/var/lib/mysql-files/test1.txt ’
限制mysqld 不允许导入 | 导出:
mysqld --secure_file_prive=null
限制mysqld 的导入 | 导出 只能发生在/tmp/目录下:
mysqld --secure_file_priv= “/tmp/”
不对mysqld 的导入 | 导出做限制:
[mysqld]
secure_file_priv=

你可能感兴趣的:(安全学习,#,Web)