用户授权控制数据库远程维护综合应用案例(代码片段)

author author     2022-12-18     289

关键词:

案例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所示。
技术图片

企业级应用,如何实现服务化五(dubbo综合案例)(代码片段)

...境准备)中。已经准备好了zookeeper注册中心,和dubbo管理控制台。这一篇通过一个综合案例,看一看在企业级应用中,如何将dubbo整合应用起来。1.案例架构项目模块说明:#描述项目模块:1.父/聚合项目:spring-dubbo-master统一管理... 查看详情

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

一、创建项目二、目录结构三、配置常用中间件3.1解析请求体express.json()express.urlencoded()3.2日志输出morgan()3.3为客户端提供跨域资源请求cors()四、路由设计本项目的接口设计参考:https... 查看详情

shiro授权(代码片段)

...)、权限(Permission)、资源(Resource)主体即访问应用的用户,在Shiro中使用Subject代表该用户。角色代表了操作集合,可以理解为权限的集合,一般情况下我们会赋予用户角色而不是权限,即这样用户可以拥有一组权限,赋予权... 查看详情

202302-踏马逐尘实验四软件开发案例团队作业(代码片段)

...目标1.完成简单的项目软件开发2.实现开发环境部署、mysql数据库创建和连接访问技术3.掌握数据库应用程序开发技术4.自我提升,学习技能这个作业在哪些方面帮助团队实现学习目标1.进行团队建设2.了解成员擅长的技术3.明确团... 查看详情

微信小程序云开发—“增删改查综合案例(用户输入数据并动态添加到数据库)”(代码片段)

...时弹窗提醒用户)4.通过按钮的add方法将数据传入到数据库中1.demo.wxml商品名:<inputtype="text"bindinput="g 查看详情

华为防火墙实现远程管理的方式及配置详解(代码片段)

...进行审计;AAA服务器通常同网络访问控制、网关服务器、数据库及用户信息目录等协同工作。若要访问网络资源,首先要进行用户的入网认证,这样才能访问网络资源。鉴别的过程就是验证用户身份的合法性;鉴别完成后,才能... 查看详情

mysql创建用户授权允许客户端远程登录命令(代码片段)

创建用户以下代码创建的用户只能在本地登录和访问:createuser'wiki'@'localhost'identifiedby'123456';这里wiki是数据库名。可以远程访问createuser'wiki'@'%'identifiedby'123456';记得刷新一 查看详情

mysql创建用户授权允许客户端远程登录命令(代码片段)

创建用户以下代码创建的用户只能在本地登录和访问:createuser'wiki'@'localhost'identifiedby'123456';这里wiki是数据库名。可以远程访问createuser'wiki'@'%'identifiedby'123456';记得刷新一 查看详情

综合案例:使用express开发接口服务(续)(代码片段)

目录⑦用户登录开发1.获取请求体数据2.数据验证3.生成token4.发送成功响应(包含token的用户信息)基于JWT的身份验证 https://blog.csdn.net/YINZHE__/article/details/120080256config/config.default.js中的jwtSecret可以用UUID保证唯一性 http://www.uuid.online/... 查看详情

shiro认证和授权(代码片段)

...Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储;WebSupport:Web支持,可以非常容易的集成到Web环境;Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高... 查看详情

记一次某应用虚拟化系统远程代码执行(代码片段)

...拟化系统是基于服务器计算架构的应用虚拟化平台,它将用户各种应用软件集中部署到瑞友天翼服务集群,客户端通过WEB即可访问经服务器上授权的应用软件,实现集中应用、远程接入、协同办公等。漏洞简介  微步在线漏洞... 查看详情

mysql用户远程访问授权(代码片段)

序经常会出现数据库搭建在云端的ECS上,需要在本地IDE中进行开发和调试,记录一下MySQL中的相关操作。核心SSH连接到服务器。使用root用户登入MySQL。对名为mysql的数据库进行操作,创建用户与用户权限。[root@iZ28lvy... 查看详情

linuxcentos8(http综合案例-用户登录)(代码片段)

LinuxCentOS8(HTTP-用户登录)当服务器端希望客户端以特定的用户进行访问访问时,可以运用HTTP的用户登录功能。HTTP有四种对用户身份验证的方式,分别为BASIC认证,DIGEST认证,SSL客户端认证和Web表单认证。... 查看详情

linuxcentos8(http综合案例-用户登录)(代码片段)

LinuxCentOS8(HTTP-用户登录)当服务器端希望客户端以特定的用户进行访问访问时,可以运用HTTP的用户登录功能。HTTP有四种对用户身份验证的方式,分别为BASIC认证,DIGEST认证,SSL客户端认证和Web表单认证。... 查看详情

shiro之授权访问控制(代码片段)

...),其中包括如下对象:1.主体即访问应用的用户,在Shiro中使用Subject代表该用户。用户只有在授权后才允许访问相应的资源。2.资源在应用中用户可以访问的任何东西,比如访问JSP页面、查看/编辑某些数据、... 查看详情

hadoop综合案例-聊天软件数据(代码片段)

...件数据分析案例需求MR速度慢—引入hive背景:大量的用户在线,通过对聊天数据的分析,构建用户画像,为用户提供更好的服务、以及实现高ROI的平台运营推广,给公司的发展决策提供精确的数据支撑。目标&#... 查看详情

mysql创建用户授权允许客户端远程登录命令(代码片段)

...wiki'@'localhost'identifiedby'123456';这里wiki是数据库名。可以远程访问createuser'wiki'@'%'identifiedby'123456';记得刷新一下:flushprivileges;授权只允许本地grantallprivilegesonwiki.*to'wiki'@'localhos... 查看详情

图解大数据|综合案例-使用spark分析挖掘音乐专辑数据(代码片段)

文娱影音是目前大数据与AI应用最广泛的场景之一,本案例以音乐专辑发行数据为背景,讲解使用pyspark对HDFS存储的数据进行处理数据分析的过程,并且对分析结果做了可视化呈现。作者:韩信子@ShowMeAI教程地址:http://www.showmeai.... 查看详情