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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户授权控制数据库远程维护综合应用案例相关的知识,希望对你有一定的参考价值。

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

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

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

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

允许用户 runoa 从本机访问,对库 oadb 有全部权限
访问密码为 [email protected]
测试用户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 有全部权限,访问密码为 [email protected]

MariaDB [(none)]> GRANT  all  ON  oadb.*   TO  [email protected]  IDENTIFIED  BY  ‘[email protected]‘;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>

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

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

[[email protected] ~]# mysql  -urunoa  [email protected]
.. ..
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
[[email protected] ~]#

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

1)增加管理员用户

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

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

MariaDB [(none)]> GRANT  all  ON  *.*  to  [email protected]‘%‘  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数据库。

[[email protected] ~]# 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  [email protected]  IDENTIFIED  BY  ‘[email protected]‘;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>

退出:

MariaDB [(none)]> QUIT;
Bye
[[email protected] ~]#

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

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

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

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

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

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

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

MariaDB [(none)]> SHOW  GRANTS  FOR  [email protected]‘%‘;
+----------------------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]%                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------+
| 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  [email protected]‘%‘;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> 

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

MariaDB [(none)]> SHOW  GRANTS  FOR  [email protected]‘%‘;
+-------------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]%                                                                                                     |
+-------------------------------------------------------------------------------------------------------------------------+
| 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服务

[[email protected] ~]# systemctl  stop  mariadb                      //停服务

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

[[email protected] ~]# mysqld_safe  --skip-grant-tables  &             //直起进程
[1] 105799
[[email protected] ~]#

步骤三:重设管理密码

1)免密码登入数据库

[[email protected] ~]# mysql  -uroot                                  //免密码登入
.. ..
MariaDB [(none)]>

2)设置新密码

MariaDB [(none)]> UPDATE  mysql.user  SET  Password=password(‘[email protected]‘)  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进程

[[email protected] ~]# pkill  -9  mysqld_safe                          //强关mysqld_safe
[1]+  已杀死               mysqld_safe --skip-grant-tables

2)正常启动mariadb服务

[[email protected] ~]# systemctl  restart  mariadb                     //起正常服务

步骤五:验证新密码

[[email protected] ~]# mysql  -uroot  [email protected]                      //验证新密码登入
.. ..
MariaDB [(none)]> QUIT
Bye
[[email protected] ~]#

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

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

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

允许root从任何IP地址访问本机,密码为 [email protected]

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

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

4.2 步骤

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

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

允许root从任何IP地址访问本机,密码为 [email protected]

[[email protected] ~]# mysql  -uroot  [email protected]
.. ..
MariaDB [(none)]> GRANT  all  ON  *.*  to  [email protected]‘%‘  IDENTIFIED  BY  ‘[email protected]‘  WITH  GRANT  OPTION;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> QUIT
Bye
[[email protected] ~]#

步骤二:从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网站平台

[[email protected] ~]# yum  -y  install  httpd  mariadb-server  maria  php  php-mysql
[[email protected] ~]# systemctl  restart  httpd  mariadb
[[email protected] ~]# systemctl  enable  httpd  mariadb

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

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

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

1)解包及部署

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

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

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

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

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

[[email protected] ~]# mysql  -uroot  [email protected]                 //连接
MariaDB [(none)]> CREATE  DATABASE  oadb;                 //建库
MariaDB [(none)]> GRANT  all  ON  oadb.*  to  [email protected]  IDENTIFIED  BY  ‘[email protected]‘;                                                 //授权用户
MariaDB [(none)]> QUIT;                                 //退出
[[email protected] ~]# 

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

[[email protected] ~]# chown  -R  apache  /var/www/oa/
[[email protected] ~]# 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服务:

[[email protected] ~]# systemctl  stop  httpd 

执行备份:

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

2)备份数据库

执行备份:

[[email protected] ~]# mysqldump  -uroot  [email protected]  --databases  oadb  >  /root/oa_database.sql                             //按多库方式备份

确认备份文件:

[[email protected] ~]# 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网站平台

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

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

[[email protected] ~]# vim  /etc/hosts
192.168.10.8    oa.tedu.cn

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

1)上传备份资料

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

[[email protected] ~]# 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    
[[email protected] ~]#

2)在svr8上确认备份资料

[[email protected] ~]# 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)恢复网站、数据库

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

4)准备数据库用户

[[email protected] ~]# mysql  -uroot                             //新数据库服务器无密码
MariaDB [(none)]> GRANT  all  ON  oadb.*  to  [email protected]  IDENTIFIED  BY  ‘[email protected]‘;                                                 //授权用户
MariaDB [(none)]> QUIT;                                 //退出
[[email protected] ~]# 

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

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

以上是关于用户授权控制数据库远程维护综合应用案例的主要内容,如果未能解决你的问题,请参考以下文章

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

RPA 案例:银行综合对账系统权限更改中的难点解决

头歌(Educoder)实践教学平台——Hive综合应用案例

Squid代理服务器综合应用案例

Express接口综合案例(创建项目配置常用中间件路由设计提取控制器模块配置错误统一处理中间件用户注册的数据验证,密码加密)

Mysql授权root用户使用远程客户端连接