SECL020011配置MySQL数据库进行主动防御Word文件下载.docx
《SECL020011配置MySQL数据库进行主动防御Word文件下载.docx》由会员分享,可在线阅读,更多相关《SECL020011配置MySQL数据库进行主动防御Word文件下载.docx(20页珍藏版)》请在冰点文库上搜索。
Mysql的操作
Mysql的权限管理
实验步骤指导
MYSQL的远程登录
目的:
允许MySql数据库的用户sandbox使用客户端远程登录MYSQL数据库。
1.MySQL数据库客户端(mysql-5.0.22-win32.exe),并进行程序安装。
【注释】
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
在学生实验计算机上安装部署MySql数据库客户端,如果已经安装客户端程序,请从下面开始实验操作。
建议学生将MySql客户端程序安装在C盘系统目录下面,方便后续的实验操作。
2.生PC上,打开CMD命令行窗口。
MD命令窗口中,将当前路径切换到MySQL安装目录的“bin”
命令:
cdC:
\ProgramFiles\MySQL\MySQL5.0.22\bin
使用MySql数据库的客户端登录MySql数据库时,必须在CMD命令行中切换到MySql客户端的安装路径。
如果MySql数据库客户端安装在其他目录下,请按要求切换到指定目录位置。
3.MD命令窗口中输入“mysql–hxx.xx.xx.xx–usandbox”并执行(注:
xx.xx.xx.xx代表实验目标机IP),尝试使客户端登录数据库,结果失败并返回失败信息。
如下图所示
【知识重点】
让学生了解如何使用MySql数据库客户端远程登录MySql数据库,对应命令格式mysql–hxx.xx.xx.xx【数据库IP地址】–usandbox【数据库的用户名称】。
4.SSH工具(如putty等)并安装(某些工具如putty等不需安装可直接使用)。
SSH工具登录服务器。
以putty为例说明:
双击putty工具。
5.开窗口界面的hostname处输入实验目标机IP地址,端口选择22,并选择ssh,点击“open“,如下图所示。
6.随后出现的窗口依次输入Linux系统的用户和密码(本例中linux系统用户使用“root”且root用户的密码为“sandbox”),将出现以下界面,说明使用该root用户登录成功。
7.inux系统上,进入Mysql数据库操作命令行,(本例中数据库管理员”root“的密码为”sandbox“)。
命令:
[root@CW009~]#mysql-uroot-p
如下图所示,提示输入数据库用户root的密码:
sandbox并回车。
如果没有linux中进行路径的诠释,需要在使用上述命令前,将目录切换到Mysql数据库的bin目录下才能执行此命令。
8.系统提示已经使用root用户成功登录mysql数据库。
让学生了解如何在Linux系统中登录MySql数据库,对应命令格式mysql–uroot【数据库的用户名称】-p【需要在随后输入数据库用户的密码】。
9.器上更新mysql.user表,把原表中User为sandbox的Host项更新为“%”并退出程序,
mysql>
updatemysql.usersetHost='
%'
whereUser='
sandbox'
;
系统提示对sandbox用户的更新设置操作成功。
exit;
退出mysql数据库命令行操作,返回到linux系统命令行。
[root@CW009~]#
如下图所示:
让学生了解如何在Linux系统中MySql数据库更新操作,以及数据库维护,详细的数据维护操作命令请参考后面的附录。
更新Mysql.user表,使得表中用户sandbox的Host项更新为“%”,使得用户sandbox能够通过客户端远程登录数据库。
mysql服务(需要输入管理员密码),
停止mysql服务命令:
[root@CW009~]#mysqladmin-uroot-pshutdown
在密码输入提示信息后面输入root的密码:
sandbox,回车。
启动mysql服务命令:
[root@CW009~]#mysqld_safe-user=mysql&
让学生了解如何在Linux系统中MySql数据库服务的停止/启动,使得对MySql数据库的更新维护生效。
10.如下图所示
11.步骤3和步骤4,再次在学生PC上使用客户端登录mysql,成功登录并进入MySQL命令行
12.实验结束,请关闭所有的实验窗口、或远程登录的mysql数据库命令行。
。
在Mysql数据库中的维护操作命令,必须以“;
”结尾,否则将无法执行输入命令,如mysql>
中的“exit;
”。
MYSQL密码设置
在上一步骤的基础上使学生必须使用密码登录数据库。
通过SSH工具在服务器上给用户sandbox设置密码保护,密码为sandbox;
修改前,在学生PC上使用客户端通过以下命令访问mysql数据库,密码为空,系统显示登录成功。
C:
\ProgramFiles\MySQL\MySQLServer5.0\bin>
mysql–hxxx.xxx.xxx.xxx【目标机IP地址】–usandbox【MySql数据库用户】
在Mysql数据库未启动密码保护时,用户使用空密码【用户未设置密码】可以成功登录Mysql数据库。
【巩固上个实验内容的知识重点】
在Mysql数据启动密码保护后,用户必须使用密码才能登录Mysql数据库,不能在使用空密码登录【用户未设置密码】。
使用SSH工具在服务器上使用以下命令给用户sandbox设置密码保护,密码为“sandbox”。
setpasswordfor'
@'
=password('
);
让学生了解如何在Mysql数据库中,为Mysql数据库的用户设置密码保护,并为用户设置初始密码。
在学生实验机PC上使用客户端访问mysql数据库,用空密码尝试登录不成功,并在反馈信息中提示需要密码。
在学生PC上使用客户端访问mysql数据库,使用用户sandbox,且密码为sandbox,
mysql-hxxx.xxx.xxx.xxx-usandbox-psandbox
【数据库IP地址】【数据库用户】【用户密码】
提示用户使用mysql客户端远程登录成功。
本部分实验结束,请关闭所有的实验窗口、或退出mysql程序。
让学生了解如何使用用户以及密码登录Mysql数据库,增加对Mysql数据库的了解,认识。
设置MYSQL的读权限
容许用户sandbox对数据库kitto有读权限,但无其它权限
修改前,在学生PC上使用客户端访问mysql数据库,密码为“sandbox”
让学生增加对MySql数据库的了解,使用客户端远程登录到Mysql数据库上【巩固上个实验内容的知识重点】。
查询kitto.demo上的数据,
select*fromkitto.demo;
服务器返回错误信息
ERROR1142(42000):
SELECTcommanddeniedtouser'
fortable'
demo'
让学生增加对MySql数据库的了解,如何在Mysql数据库中数据表进行数据查询。
通过SSH工具登录服务器更改用户“sandbox“的权限,使其对数据库kitto有读权限,但无其它权限,
grantselectonkitto.*to‘sandbox’@’%’identifiedby'
让学生了解Mysql数据库的用户对数据库的权限需要设置,以及根据需求制定。
让学生在MySql数据库中如何为用户修改不同数据库的数据表读权限。
再次查询kitto.demo上的数据,服务器成功返回demo表的数据(这是一个简单的学生资料数据表,共三列,分别为学生id、姓名、生日,每一行代表一个学生的资料)
本部分实验结束,请关闭所有的实验窗口、或退出。
设置MYSQL的读、写权限
设置用户sandbox对数据库kitto拥有读、写权限:
修改前,在学生PC使用客户端访问mysql数据库,密码为“sandbox“查询kitto.demo上的数据,,服务器返回demo表的数据(同上一步骤)
学生的客户端上在kitto.demo上把名为“4Li”的人生日修改为“1983-11-29”;
并插入一行,添加id为3,名为“5Wang”,生日为“1981-10-10”的一个记录。
以上的命令分别为:
updatekitto.demosetbirthday='
1983-11-29'
wherename='
4Li'
insertintokitto.demo(id,name,birthday)values(3,'
5Wang'
'
1981-10-10'
服务器返回错误信息
ERROR1044(42000):
Accessdeniedforuser'
todatabase'
kitto'
以及
让学生增加对MySql数据库的了解,如何在Mysql数据库中数据表进行数据插入,更新。
通过SSH工具登录服务器更改用户“sandbox“的权限,使其对数据库kitto有读、写、插入权限。
grantselect,insert,updateonkitto.*to'
identifiedby'
让学生在MySql数据库中,如何为用户修改不同数据库的数据表读/写权限。
重复步骤2的操作,对数据表kitto进行数据插入以及更新操作,操作成功。
重新查询kitto.demo,返回更新后的数据
设置MYSQL的创建数据表的权限
设置用户“sandbox“对数据库kitto拥有读、写权限,以及用户创建数据表权限,并在新创建的数据表上写入数据:
修改前,在学生PC上使用客户端访问mysql数据库;
mysql–hxxx.xxx.xxx.xxx–usandbox–psandbox
并使用Mysql数据库客户端成功登录数据库。
在数据库kitto上创建一个名为bat、只有一个字段(text)的数据表。
mysql>
usekitto;
createtablebat(cmdtext);
让学生增加对MySql数据库的了解,如何在Mysql数据库中,对指定的数据库进行新数据表的创建。
通过SSH工具登录服务器更改用户“sandbox“的权限,使其对数据库kitto有读、写、插入、创建数据表权限,
grantselect,insert,update,createonkitto.*to‘sandbox’@’%’identifiedby'
提示对用户sandbox权限修改设置成功。
让学生在MySql数据库中,如何为用户设置不同数据库的数据表创建权限。
在学生PC的MySQL命令行下上输”exit;
”退出该次登录,
因已经在数据库服务器上修改Mysql数据库权限设置,需要在学生实验pc上退出上次的数据库登录,并重新进行远程登录数据库操作。
并重新登录进去;
在数据库kitto上,重新进行创建一个名为bat、只有一个字段(text)的数据表。
提示在数据库kitto上成功创建数据表bat。
往数据表bat里插入数据,
insertintobatsetcmd='
@echooff\r'
delc:
\\system.txt\r'
让学生了解Mysql数据库中,用户如何创建数据库的数据表,已经为数据表进行数据插入,更新。
使用select命令查询数据表bat,返回的结果表明已成功往表里插入数据,如下图所示
select*fromkitto.bat;
本次实验结束,请关闭所有的实验窗口和程序。
附:
Mysql常用命令解释
create:
【创建】创建数据库和创建表。
命令格式:
createdatabasedatabase-name;
createtabletable-name(field-name-1field-type-1,field-name-2field-type-2,…,field-name-nfield-type-n);
其中的斜体字分别为相应的数据库名、表名、字段名和字段类型
select:
【查询】查询某个数据表。
select*fromdatabase-name.table-name;
其中的斜体字分别为相应的数据库名和表名
insert:
【添加记录】在某个数据表里添加一行记录。
insertintotable-name(field-name-1,field-name-2,…,field-name-n)values(value-1,value-2,…,value-n);
其中的斜体字分别为相应的表名、字段名和具体记录值
update:
【更新记录】即改变表中已存在的值。
updatetable-namesetfield-name=newvalue;
其中的斜体字分别为相应的表名、字段名和更新后的具体记录值
grant/revoke:
MySQL授权表中为用户设置访问权限建议使用的的方法是grant和revoke命令,这些命令是专门针对这种任务设计的。
GRANTpriv_type[(column_list)][,priv_type[(column_list)]]...
ON[object_type]{tbl_name|*|*.*|db_name.*}
TOuser[IDENTIFIEDBY[PASSWORD]'
password'
]
[,user[IDENTIFIEDBY[PASSWORD]'
]]...
[REQUIRE
NONE|
[{SSL|X509}]
[CIPHER'
cipher'
[AND]]
[ISSUER'
issuer'
[SUBJECT'
subject'
]]
[WITHwith_option[with_option]...]object_type=
TABLE
|FUNCTION
|PROCEDUREwith_option=
GRANTOPTION
|MAX_QUERIES_PER_HOURcount|MAX_UPDATES_PER_HOURcount|MAX_CONNECTIONS_PER_HOURcount|MAX_USER_CONNECTIONScount
REVOKEpriv_type[(column_list)][,priv_type[(column_list)]]...
FROMuser[,user]...
只有grant命令中指定的命令才允许该用户使用,其它所有命令都被拒绝。
Revoke命令是grant命令的反义,它可以撤销赋予用户的权限。