32

用户授权控制、数据库远程维护、综合应用案例-吗、

 4 years ago
source link: https://blog.51cto.com/14315231/2407557
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

用户授权控制、数据库远程维护、综合应用案例

案例1:授权数据库用户
案例2:查看及撤销授权
案例3:重置数据库管理密码
案例4:远程维护数据库
案例5:企业OA系统部署
案例6:企业OA系统迁移

1 案例1:授权数据库用户
1.1 问题

本例要求掌握MariaDB数据库中用户账号的授权操作,完成下列任务:

1)为OA系统建立专库 oadb,并授权用户

允许用户 runoa 从本机访问,对库 oadb 有全部权限
访问密码为 pwd@123
测试用户runoa的数据库访问权限

2)新建名为tarzan的管理员

允许从任何客户机('%')访问,对所有库有全部权限
访问密码为 tedu.cn1234
测试用户tarzan的数据库访问权限

1.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:为OA系统建立专库 oadb,并授权用户

1)创建数据库oadb

MariaDB [(none)]> CREATE  DATABASE  oadb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]>

2)授权用户 runoa 从本机访问,对库 oadb 有全部权限,访问密码为 pwd@123

MariaDB [(none)]> GRANT  all  ON  oadb.*   TO  runoa@localhost  IDENTIFIED  BY  'pwd@123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>

3)测试runoa的数据库访问权限

另开一个命令行终端,以runoa用户连接本机数据库,测试删除及重建oadb库。

[root@zbx ~]# mysql  -urunoa  -ppwd@123
.. ..
MariaDB [(none)]> DROP  DATABASE  oadb;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> CREATE  DATABASE  oadb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> QUIT;
Bye
[root@zbx ~]#

步骤二:新建名为tarzan的管理员

1)增加管理员用户

允许从其他任何客户机('%')访问,对所有库有全部权限,访问密码为 tedu.cn1234。

管理员用户有权限通过GRANT授权用户。

MariaDB [(none)]> GRANT  all  ON  *.*  to  tarzan@'%'  IDENTIFIED  BY  'tedu.cn1234'  WITH  GRANT  OPTION;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>

2)以新管理员用户连接,测试数据库访问权限

使用mysql命令连接其他主机的数据库时,需要添加 –h主机地址 选项,比如从客户机svr8上访问位于192.168.10.7的MariaDB数据库。

[root@svr8 ~]# mysql  -utarzan  -ptedu.cn1234  -h192.168.10.7
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2797
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> 

测试新建数据库zhdb:

MariaDB [(none)]> CREATE  DATABASE  zhdb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]>

测试授权数据库用户zhwuji:

MariaDB [(none)]> GRANT  all  ON zhdb.*  TO  zhwuji@localhost  IDENTIFIED  BY  'pwd@123';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
MariaDB [(none)]> QUIT;
Bye
[root@zbx ~]#

2 案例2:查看及撤销授权
2.1 问题

本例要求学会在MariaDB数据库中查看及撤销指定用户的授权,完成下列任务:

1)查看用户tarzan访问本机数据库的权限

2)撤销用户tarzan从任何客户机来访对所有库的所有权限

3)再次查看用户tarzan访问本机数据库的权限
2.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:查看用户tarzan访问本机数据库的权限

MariaDB [(none)]> SHOW  GRANTS  FOR  tarzan@'%';
+----------------------------------------------------------------------------------------------------------------------------------+
| Grants for tarzan@%                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'tarzan'@'%' IDENTIFIED BY PASSWORD '*8AB2CB3B8352A05A9C4AB822AAF421001382BD5E' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
MariaDB [(none)]>

步骤二:撤销用户tarzan从任何客户机来访对所有库的所有权限

MariaDB [(none)]> REVOKE  all  ON  *.*  FROM  tarzan@'%';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> 

步骤三:再次查看用户tarzan访问本机数据库的权限

MariaDB [(none)]> SHOW  GRANTS  FOR  tarzan@'%';
+-------------------------------------------------------------------------------------------------------------------------+
| Grants for tarzan@%                                                                                                     |
+-------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'tarzan'@'%' IDENTIFIED BY PASSWORD '*8AB2CB3B8352A05A9C4AB822AAF421001382BD5E' WITH GRANT OPTION |
+-------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
MariaDB [(none)]>

3 案例3:重置数据库管理密码
3.1 问题

本例要求学会重置数据库管理密码的基本方法,以便在忘记或无法获知MariaDB数据库管理密码的情况下取得管理权限,完成下列任务:

1)停止mariadb服务

2)跳过授权启动数据库进程mysqld_safe

3)重设管理密码

4)关闭mysqld_safe进程,正常启动mariadb服务

5)验证新密码
3.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:停止mariadb服务

[root@svr7 ~]# systemctl  stop  mariadb                      //停服务

步骤二:跳过授权启动数据库进程mysqld_safe

[root@svr7 ~]# mysqld_safe  --skip-grant-tables  &             //直起进程
[1] 105799
[root@svr7 ~]#

步骤三:重设管理密码

1)免密码登入数据库

[root@svr7 ~]# mysql  -uroot                                  //免密码登入
.. ..
MariaDB [(none)]>

2)设置新密码

MariaDB [(none)]> UPDATE  mysql.user  SET  Password=password('pwd@123')  WHERE  User='root'  AND  Host='localhost';                             //设置新密码
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0
MariaDB [(none)]> FLUSH  PRIVILEGES;                         //刷新授权
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> 

3)退出连接

MariaDB [(none)]> QUIT                                     //退出
Bye

步骤四:关闭mysqld_safe进程,正常启动mariadb服务

1)关闭mysqld_safe进程

[root@svr7 ~]# pkill  -9  mysqld_safe                          //强关mysqld_safe
[1]+  已杀死               mysqld_safe --skip-grant-tables

2)正常启动mariadb服务

[root@svr7 ~]# systemctl  restart  mariadb                     //起正常服务

步骤五:验证新密码

[root@svr7 ~]# mysql  -uroot  -ppwd@123                      //验证新密码登入
.. ..
MariaDB [(none)]> QUIT
Bye
[root@svr7 ~]#

4 案例4:远程维护数据库
4.1 问题

本例要求学会通过MySQL-Front图形软件远程维护MariaDB数据库服务器系统,完成下列任务:

1)在MariaDB服务端授权管理用户

允许root从任何IP地址访问本机,密码为 pwd@123

2)从Win客户机远程管理MariaDB服务器

安装MySQL-Front管理软件
运行MySQL-Front程序,远程连接MariaDB服务器
查看studb库stuinfo表的数据内容
备份studb库

4.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:在MariaDB服务端授权管理用户

允许root从任何IP地址访问本机,密码为 pwd@123

[root@svr7 ~]# mysql  -uroot  -ppwd@123
.. ..
MariaDB [(none)]> GRANT  all  ON  *.*  to  root@'%'  IDENTIFIED  BY  'pwd@123'  WITH  GRANT  OPTION;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> QUIT
Bye
[root@zbx ~]#

步骤二:从Win客户机远程管理MariaDB服务器

1)安装MySQL-Front管理软件

双击安装程序MySQL-Front_Setup.exe,如图-1所示,然后根据界面提示完成安装

用户授权控制、数据库远程维护、综合应用案例

2)运行MySQL-Front程序,远程连接MariaDB服务器

双击桌面的MySQL-Front快捷图标,可以打开此软件程序。在初次启动界面中,可以根据提示正确填写数据库服务器信息,如图-2所示,确定后可以添加数据库连接。

用户授权控制、数据库远程维护、综合应用案例

然后选中刚建立的连接,如图-3所示,单击“打开”。

用户授权控制、数据库远程维护、综合应用案例

接下来会成功连接至目标数据库服务器,如图-4所示,默认会列出此用户有权限看到的所有库。

用户授权控制、数据库远程维护、综合应用案例

3)查看studb库stuinfo表的数据内容

在MySQL-Front连入数据库服务器的管理界面中,可以对指定的库、表进行操作。

比如,展开studb库、选中stuinfo表,可以通过右侧的“对象浏览器”来查看或修改表的结构,如图-5所示。

用户授权控制、数据库远程维护、综合应用案例

单击右侧的“数据浏览器”可以查看或修改表格的数据内容,如图-6所示。

用户授权控制、数据库远程维护、综合应用案例

4)备份studb库

在MySQL-Front界面中,右击左侧的某个库,选择“导出”-->“SQL文件”,可以选择存放位置、备份方式,如图-7所示,单击“运行”即可执行备份。

用户授权控制、数据库远程维护、综合应用案例

5 案例5:企业OA系统部署
5.1 问题

本例要求在虚拟机192.168.10.7上快速部署“信呼协同办公”系统,为下一个迁移案例做好环境准备,完成下列任务:

1)准备LAMP环境,注册本地域名 oa.tedu.cn

2)配置虚拟主机 oa.tedu.cn ,使用“信呼协同办公”代码

3)准备专用数据库 oadb,授权用户 runoa 全权访问

4)调整 /var/www/oa 目录的归属,使Web服务有写入权限

5)访问 http://oa.tedu.cn/ ,按提示安装OA系统
5.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:准备LAMP环境,注册本地域名 oa.tedu.cn

1)确保启动LAMP网站平台

[root@svr7 ~]# yum  -y  install  httpd  mariadb-server  maria  php  php-mysql
[root@svr7 ~]# systemctl  restart  httpd  mariadb
[root@svr7 ~]# systemctl  enable  httpd  mariadb

2)注册本地域名 oa.tedu.cn

[root@svr7 ~]# vim  /etc/hosts                         //注册本地域名
.. ..
192.168.10.7    svr7.tedu.cn  oa.tedu.cn

步骤二:配置虚拟主机 oa.tedu.cn ,使用“信呼协同办公”代码

1)解包及部署

[root@svr7 ~]# unzip  /root/信呼协同办公_v1.8.1.zip  -d  /var/www/
.. ..                                                   //解包并部署到位

2)为oa.tedu.cn添加虚拟主机

[root@svr7 ~]# vim  /etc/httpd/conf.d/vhosts.conf         //配置虚拟主机
<VirtualHost    *:80>
    ServerName    oa.tedu.cn
    DocumentRoot    /var/www/oa
</VirtualHost>
[root@svr7 ~]# systemctl  restart  httpd                 //重启Web服务

步骤三:准备专用数据库oadb,授权用户runoa全权访问

如果之前已经执行过此操作,则此处可跳过。

[root@svr7 ~]# mysql  -uroot  -ppwd@123                 //连接
MariaDB [(none)]> CREATE  DATABASE  oadb;                 //建库
MariaDB [(none)]> GRANT  all  ON  oadb.*  to  runoa@localhost  IDENTIFIED  BY  'pwd@123';                                                 //授权用户
MariaDB [(none)]> QUIT;                                 //退出
[root@svr7 ~]# 

步骤五:调整/var/www/oa目录的归属,使Web服务有写入权限

[root@svr7 ~]# chown  -R  apache  /var/www/oa/
[root@svr7 ~]# ls  -ld  /var/www/oa/
drwxr-xr-x. 10 apache root 231 9月  24 22:27 /var/www/oa/

步骤五:访问http://oa.tedu.cn/,按提示安装OA系统

在svr7主机上启动Firefox火狐浏览器,访问http://oa.tedu.cn/,可以看到信呼协同系统的安装页面,如图-8所示。

用户授权控制、数据库远程维护、综合应用案例

单击“知道了”,在下一个页面中正确填写数据库连接信息,如图-9所示,确定无误后单击“提交安装”即可。

用户授权控制、数据库远程维护、综合应用案例

注意:若提示“无法写入文件夹Webmain”,请检查SELinux安全机制是否关闭。

完成安装后,请根据页面提示删除安装目录、记录默认管理用户(admin)及密码(123456),如图-10所示,然后单击“前去登录页面”。

用户授权控制、数据库远程维护、综合应用案例

成功登录即可看到信息系统的管理界面,如图-11所示。

用户授权控制、数据库远程维护、综合应用案例

6 案例6:企业OA系统迁移
6.1 问题

本例要求通过LAMP网站平台的离线迁移过程,进一步熟悉网站和数据库的备份、恢复相关操作,完成下列任务:

1)备份 svr7.tedu.cn 上的OA系统网站和数据库资料

2)准备一台新虚拟机(svr8.tedu.cn-->192.168.10.8)

安装并启动LAMP网站平台
注册本地域名 oa.tedu.cn-->192.168.10.8

3)通过备份将OA系统迁移到 svr8.tedu.cn 上

4)在svr8上访问http://oa.tedu.cn/,验证结果
6.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:备份 svr7.tedu.cn 上的OA系统网站和数据库资料

1)备份网站

停Web服务:

[root@svr7 ~]# systemctl  stop  httpd 

执行备份:

[root@svr7 ~]# tar  -zcPf  /root/oa_web.tgz  /etc/httpd/conf.d/vhosts.conf  /var/www/oa/                                       //注意选项P是大写的

2)备份数据库

执行备份:

[root@svr7 ~]# mysqldump  -uroot  -ppwd@123  --databases  oadb  >  /root/oa_database.sql                             //按多库方式备份

确认备份文件:

[root@svr7 ~]# ls  -lh  /root/oa_* 
-rw-r--r--. 1 root root 1021K 9月  25 02:12 /root/oa_database.sql
-rw-r--r--. 1 root root  2.0M 9月  25 02:06 /root/oa_web.tgz

步骤二:准备一台新虚拟机(svr8.tedu.cn  192.168.10.8)

1)安装并启动LAMP网站平台

[root@svr8 ~]# yum  -y  install  httpd  mariadb-server  maria  php  php-mysql
[root@svr8 ~]# systemctl  restart  httpd  mariadb         //开启网站和数据库服务
[root@svr8 ~]# systemctl  enable  httpd  mariadb

2)注册本地域名 oa.tedu.cn,对应IP地址192.168.10.8

[root@svr8 ~]# vim  /etc/hosts
192.168.10.8    oa.tedu.cn

步骤三:通过备份将OA系统迁移到 svr8.tedu.cn 上

1)上传备份资料

注意提前将svr7上的网站、数据库资料备份文件上传到svr8上。比如,在svr7上可以使用scp直接上传备份文件。

[root@svr7 ~]# scp  /root/oa_*  [email protected]:/root 
[email protected]'s password: 
oa_database.sql               100%  518KB  51.1MB/s   00:00    
oa_web.tgz                    100% 1947KB  65.4MB/s   00:00    
[root@svr7 ~]#

2)在svr8上确认备份资料

[root@svr8 ~]# ls  -lh  /root/oa_*
-rw-r--r--. 1 root root 518K 1月  15 18:11 /root/oa_database.sql
-rw-r--r--. 1 root root 2.0M 1月  15 18:11 /root/oa_web.tgz

3)恢复网站、数据库

[root@svr8 ~]# tar  -xPf  /root/oa_web.tgz                       //导入网站文档
[root@svr8 ~]# mysql  -uroot  <  /root/oa_database.sql              //导入数据库

4)准备数据库用户

[root@svr8 ~]# mysql  -uroot                             //新数据库服务器无密码
MariaDB [(none)]> GRANT  all  ON  oadb.*  to  runoa@localhost  IDENTIFIED  BY  'pwd@123';                                                 //授权用户
MariaDB [(none)]> QUIT;                                 //退出
[root@svr8 ~]# 

步骤四:在svr8上访问http://oa.tedu.cn/ ,验证结果

迁移完毕后,可以在svr8上访问http://oa.tedu.cn/ ,直接获得原来运行在svr7上的OA平台。通过管理员admin可以直接登录,数据资料都完好无损,如图-12所示。

用户授权控制、数据库远程维护、综合应用案例

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK