Linux运维:mysql视图,用户及远程登录,用户密码的修改和破解

目   录

一、视图

二、用户

2.1 新建用户

三、创建远程登录用户test

3.1 远程登录mysql​编辑

3.1 7-1需要赋予权限

3.3 修改远程登录用户的密码

3.4 修改远程登录的用户名

3.5 删除用户:drop user 'lisi'@'192.168.114.%';

四、修改用户密码

4.1 修改当前本地密码

4.2 修改远端密码

五、破解密码

5.1 无密码登录

5.2 关闭端口号

5.3 修改新密码


视图:虚表,保存有实表的查询结果,相当于表明。

利用视图,可以隐藏表的真实结构,在程序中利用视图进行查询,可以避免表结构的变化,而修改程序,降低程序和数据库之间的耦合度。

现有一张students表。

一、视图

视图是根据用户的应用需求,从一个或多个表中导出的虚表,这里“虚”的意思是视图中并没有真正存储数据,数据存储在对应的表中。

语法:create view 视图名称 as 查询语句;

创建视图:create view v1 as select * from students where stuid=5;

 显示视图:show create view v1;

看视图结构:show table status like "v1";

删除视图:drop view 视图名称;

二、用户

数据库的用户有两个部分组成:用户名user和主机名host组成,root@localhost,root@192.168.114.10

在数据库中有一个数据库叫mysql,其中user表就是用来存放用户的相关信息的表。

通过查看表:select * from myql.user;

其中我们关注的三个字段是User用户名,Host位置(主机名本地或远端),authentication_string密码。这里的密码不叫password! 

2.1 新建用户

格式:create user '用户名'@'来源地址' [indentified by [password] '密码'];   后面跟密码,可以不跟,直接建立。在虚拟中使用编译安装的mysql实验。前面博客有讲解编译安装。

启动数据库,登录数据库!

进入数据库hellodb;use hellodb;

如果想登录在其他主机上,如:mysql -uroot -pabc123 -h192.168.114.10

是登录不上去的。

因为在Node1主机上的mysql.user表中,只有本地登录的记录。

把这两条命令打上去,取消复杂度和长度的限制

mysql> set global validate_password_policy=0;

mysql> set global validate_password_length=1;

三、创建远程登录用户test

可以创建一个远程登录的用户。这里用%代替,指在这个网段的任意主机都可以登录。

 在另一台主机192.168.114.20上安装mariadb:

[root@Node2 ~]#:yum install -y mariadb-server
[root@Node2 ~]#:systemctl start mariadb.service
[root@Node2 ~]#:mysql_secure_installation

#回车
Set root password? [Y/n] y

#设置密码,确认密码
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
[root@Node1 ~]#:mysql -uroot -pabc123   #进到了数据库里面,分为客户端指令和数据库服务端指令
MariaDB [(none)]>

ctrl + D退出

3.1 远程登录mysql

登录上之后,显示数据库,看是否能够显示远端192.168.114.10的数据库。

show databases;

看不到7-1中的数据库,是因为权限问题。

3.1 7-1需要赋予权限

grant all on *.* to 'test'@'192.168.114.%';

7-2使用ctrl+D退出mysql,再重新登录一下。 此时再看就显示出了远端192.168.114.10的数据库了。

3.3 修改远程登录用户的密码

使用7-2尝试进入远端数据库,看是否进入:

3.4 修改远程登录的用户名

现在的用户名是test。查看:select user,host,authentication_string from mysql.user;

我本地的root用户密码是abc123,test用户的密码也是abc123。两者加密后的密码一样。

我们把test用户改成lisi用户:rename user 'test'@'192.168.114.%' to 'lisi'@'192.168.114.%';

3.5 删除用户:drop user 'lisi'@'192.168.114.%';

四、修改用户密码

set password = 'abcabc';                  #这个没有指定用户名,默认是修改当前用户

set password for 'lisi'@'192.168.114.%' = 'aaabbb';            #给指定用户修改密码

4.1 修改当前本地密码

ctrl + D 退出数据库重新登录,使用密码abcabc登录。先试试原密码abc123。

4.2 修改远端密码

先创建一个用户:create user 'test'@'192.168.%.%' identified by 'abc123';

加密后的密码是C18A

修改密码:set password for 'test'@'192.168.%.%' = 'abcabc';   我们修改的密码是abcabc与本地root的密码相同。那么加密后的密码也相同。

加密后的数据也相同:

五、破解密码

5.1 无密码登录

当密码忘记或者需要破解密码的情况下,需要进入服务器中。

修改/etc/下的my.cnf文件。在[mysqld]中添加配置。

数据库的单用户模式,此模式下权限受到限制,很多功能无法使用,除了破解密码不要加此项。

重启systemctl restart mysqld

登录不再需要密码了

由于登录不再需要密码,那么在这个网段的主机都能登录进来,显然是不安全的。

5.2 关闭端口号

那么我们破解自己的密码的同时,最好把端口号也一并关闭。还是在/etc/my.cnf中。

在下方添加skip-networking配置,关闭端口号。

重启一下:systemctl restart mysqld就能保证其他用户不能登录本地数据库了。让自己登录

既然是破解密码,可以在数据库中把用户密码字段的数据通过updata清空。

然后重新设置set password = '密码';

5.3 修改新密码

我们在本地登录数据库:清空本地用户密码。

update mysql.user set authentication_string = '' where user='root' and host='localhost';

然后退出,把/etc/my.cnf中的两条配置删除或注释掉。

重启:systemctl restart mysqld

无密码登录进去。需要重新取消密码复杂度(两条命令)。修该密码:set password = 'abc123';

 此时密码成为了我们自己设置的密码!  abc123

---end---

  • 19
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值