数据库系统表相关学习
一、 如何利用数据库的功能读写文件,需要什么样的条件才可以读写
我一直以为数据库只能读写数据呢,原来还可以读写文件。那接下来就看看mysql数据库、Oracle数据库等比较常用的数据库是如何读写文件的吧。
mysql如何读写文件
1、 load_file()或load data infile
原理:
新建一个表,将文件内容以字符串形式插入表中,然后读出表中数据。
需要的条件:
① 拥有file权限
② secure_file_priv不为NULL
以前复现过mysql的UDF漏洞,就是先将文件内容以字符串形式插入,然后再读出数据的。
在MySQL5.7中,secure_file_priv的值为某个文件夹:
2、 5.x的版本中,可以使用system cat命令读取文件
需要的条件:
① 拥有文件权限
② 本地读取
参考文章:
https://www.cnblogs.com/c1e4r/articles/8618692.html
https://blog.csdn.net/caiqiiqi/article/details/84673007
Oracle如何读写文件
1、 使用提供的create directory功能
先创建目录,再将读写权限授予特定用户
参考文章:
https://blog.csdn.net/fax5201314/article/details/6688598
https://www.jb51.net/article/34712.htm
二、学习数据库系统表的功能,如何利用 sql 语句查询库名、表名、字段名、内容以及当前用户等基本信息,将学习过程中关键部分整理成报告
MySQL的常见命令
1.查看当前所有的数据库
show databases;
2.打开指定的库
use 库名
3.查看当前库的所有表
show tables;
4.查看其它库的所有表
show tables from 库名;
5.创建表
create table 表名(
列名 列类型,
列名 列类型,
。。。
);
6.查看表结构
desc 表名;
7.查看服务器的版本
方式一:登录到mysql服务端
select version();
方式二:没有登录到mysql服务端
mysql --version
或
mysql --V
SQL的常见命令
show databases; 查看所有的数据库
use 库名; 打开指定 的库
s