WEB安全—mysql进阶
方法一:
mysql版本是MYSQL5.7.26
update user set authentication_string=password('dadadada') where user='root';
如下示例表示指定用户与其所在的host,修改用户的密码。
root@localhost
root@127.0.0.1
update mysql.user set password = password('111111') where user='xxx' and host='xxxx';
修改完成后,最好刷新权限。
flush privileges;
在mysql5.7中,mysql.user表的password字段已经被更改为authentication_string字段,也就是说,
mysql5.7中,将使用authentication_string字段保存用户的密码。
所以,如果想要在mysql5.7中使用上述方法修改用户的密码,则需要使用如下语句。
update mysql.user set authentication_string = password(‘密码’) where user=’用户名’;
方法二:
若忘记mysql的root用户的密码,可以使用如下方法,重置root密码
1、停止当前mysql进程
2、mysql进程停止后,使用如下命令启动mysql,可以绕过用户验证
mysql_safe --skip-grant-tables &
3、完成上述步骤后,使用如下命令登录数据库
mysql -uroot
4、登录后使用之前方法,修改root用户密码即可
UPDATE mysql.user SET password=PASSWORD(“new password”) WHERE user = ‘root’;
5、刷新后退出
FLUSH PRIVILEGES;
6、停止数据库以后,按照正常的方式重启数据库,使用新密码登录。
常用授权语句语法
GRANT ALL [PRIVILEGES] ON db.tbl TO 'username'@'host' IDENTIFIED BY 'password' ; db表示数据库的名字,可以使用通配符,tbl为表的名称,可以使用通配符
例:给本地用户授权某个数据库的所有权限
grant 权限 on 数据库名.表名 to 用户名@”本地回环地址或localhost” identified by “密码”
首先新建两个用户
查看创建的用户
把roott数据库的权限给changan@localhost用户
验证
在roott数据库中创建表进一步验证
changan@localhost是否拥有roott的权限
使用root用户进入数据库使用roott数据库
使用roott数据库创建test2表
使用changan用户进入数据库使用roott数据库查看刚才在roott创建的test2
这里进入changan用户默认是changan@localhost
再验证增删改
现在的changan用户只能进入roott数据库,不可以进入其他数据库。
因为之前只给changan用户给予了roott数据库
grant 权限 on 数据库名.* to 用户名@’远程主机地址或对应的主机名’ identified by “密码”
不清楚为什么连上了??这不对
远程授权:
grant all privileges on roott.* to ‘changan’@’%’ identified by ‘root123’
授权用户某个数据库的某个权限
把security数据库的users表中的name属性的查询和插入授权给jinling@localhost
刷新权限
使用jinling用户登录数据库