0% found this document useful (0 votes)
26 views87 pages

Asset Management System For Database Management Systems

assest management

Uploaded by

raguvarman.a
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views87 pages

Asset Management System For Database Management Systems

assest management

Uploaded by

raguvarman.a
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 87

UNIVERSITY OF THE PHILIPPINES

OPEN UNIVERSITY

MASTER OF INFORMATION AND COMMUNICATION STUDIES

Rey Lawrence L. Torrecampo

Asset Management System for Database Management Systems

Thesis Adviser:

Ria Borromeo
Faculty of Information and Communication Studies

30 May 2022

Permission of the classification of this academic work access is subject to the provisions of
applicable laws, the provisions of the UP IPR policy and any contractual obligations:

Invention (I) Yes or X No


Publication (P) Yes or No
Confidential (C) Yes or No
Free (F) Yes or No

Student's signature:

Thesis adviser signature:

Asset Management System for Database Management Systems … i


University Permission Page

Asset Management System for Database Management Systems

“I hereby grant the University of the Philippines a non-exclusive, worldwide, royalty-


free license to reproduce, publish and publicly distribute copies of this Academic
Work in whatever form subject to the provisions of applicable laws, the provisions
of the UP IPR policy and any contractual obligations, as well as more specific
permission marking on the Title Page.”

“I specifically allow the University to:

Specifically, I grant the following rights to the University:

a. Upload a copy of the work in the theses database of the


college/school/institute/department and in any other databases available on the
public internet

b. Publish the work in the college/school/institute/department journal, both in print and


electronic or digital format and online; and

c. Give open access to the work, thus allowing “fair use” of the work in accordance
with the provision of the Intellectual Property Code of the Philippines (Republic Act
No. 8293), especially for teaching, scholarly and research purposes.

Rey Lawrence L. Torrecampo May 30, 2022

Signature over Student Name and Date

Asset Management System for Database Management Systems … ii


Acceptance Page:

This paper prepared by REY LAWRENCE L. TORRECAMPO with the title: “Asset
Management System for Database Management Systems” is hereby accepted by the
Faculty of Information and Communication Studies, U.P. Open University, in partial fulfillment
of the requirements for the degree Course.

14 July 2023
Ria Mae H. Borromeo, Ph.D.
Adviser (Date)

14 July 2023
Roberto B. Figueroa Jr., Ph D.
Program Chair (Date)

Diego S. Maranan, Ph.D.


Dean
Faculty of Information and Communication Studies

July 20, 2023


_____________________
(Date)

Asset Management System for Database Management Systems … iii


Biographical Sketch

Born and raised in Cainta, Rizal, Philippines, Rey Lawrence Torrecampo is a licensed

electronics engineer who pursued Data Analytics. After graduating in Electronics and

Communication Engineering from the Ateneo De Manila University, he spent most of his

early career as an IT professional delving into multiple industries from healthcare to logistics.

His core competencies range from software and system development to data

analytics, and database administration. His knowledge of multiple database platforms (MS

SQL Server, MySQL, Postgres, and Prestosql) has contributed to adapting to any task that

involves data migration, ETL data pipelines, and dashboard development for companies he

worked with. With his passion for learning, he spent most of his leisure time learning new

skills. In October 2021, he earned his pathway certification from DAP’s SPARTA program. In

the following year, he completed his master’s degree from the University of the Philippines

Open University.

Rey Lawrence is not just an office worker and individual contributor to his team; he

also shares his expertise in data analytics to fifth-year students in his alma mater.

Asset Management System for Database Management Systems … iv


Acknowledgement

I am deeply grateful to all those who supported me with this journey. First and

foremost, I would like to thank the faculty and staff of the University of the Philippines Open

University for giving me the opportunity to learn from your institution. Second, I would like to

thank my former employer, dbWatch for providing me the resources to make this project a

success. Finally, I would like to thank my family for the never-ending support they provided.

Asset Management System for Database Management Systems … v


TABLE OF CONTENTS

Title Page ......................................................................................................................... i


University Permission Page ............................................................................................. ii
Acceptance Page ........................................................................................................... iii
Biographical Sketch ........................................................................................................ iv
Acknowledgement ........................................................................................................... v
TABLE OF CONTENTS ................................................................................................. vi
LIST OF TABLES ............................................................................................................ x
LIST OF FIGURES ......................................................................................................... xi
ABSTRACT ................................................................................................................... xii
Chapter I THE PROBLEM DOMAIN ............................................................................... 1
Statement of the Problem ...................................................................................... 1
Background and Objectives of the Project ............................................................. 1
Significance and Scope of the Project ................................................................... 2
Documentation of Existence and Seriousness of the Problem............................... 2
1. Web based intelligent inventory management system. .............................. 2
2. An inquiry into machine learning-based automatic configuration tuning
services on real-world database management systems ........................... 3
Chapter II REVIEW OF EXISTING ALTERNATIVES ...................................................... 4
A. Site 24x7......................................................................................................... 4
B. PRTG Network Monitoring .............................................................................. 4
C. Icinga .............................................................................................................. 5
D. dbWatch Control Center ................................................................................. 5
Chapter III APPROACH TO BE TAKEN IN THIS PROJECT ........................................... 7
Overview ................................................................................................................ 7
Theoretical Framework .......................................................................................... 7
Rational of Framework ........................................................................................... 7
A. System Architecture ............................................................................... 7
B. Database Design.................................................................................... 8
C. Use Case Models ................................................................................... 9
D. Sequence Diagrams............................................................................. 10
E. Waterfall Methodology ......................................................................... 10
Technologies you plan to consider or use ............................................................ 11
1. Host Server .............................................................................................. 12
2. Web Services ........................................................................................... 12

Asset Management System for Database Management Systems … vi


3. Client-Server Interface ............................................................................. 13
4. Server-side Scripting ................................................................................ 13
5. Local Database........................................................................................ 14
6. Database Connection ............................................................................... 14
7. Native SQL ............................................................................................... 14
Chapter IV CHAPTER PLAN ........................................................................................ 17
CONCEPT .......................................................................................................... 17
A. Input and Output .................................................................................. 17
B. Web Interface ....................................................................................... 17
C. Server Side Script ................................................................................ 17
D. Database Connection ........................................................................... 17
E. Native SQL ........................................................................................... 18
F. Machine Learning................................................................................. 18
G. System Features .................................................................................. 18
METHODS .......................................................................................................... 19
Plan for User Testing and Project Assessment ................................................... 20
A. Scheduling and Implementation ........................................................... 20
B. Project Assessment and User Testing ................................................. 21
Chapter V RESULTS AND DISCUSSION ..................................................................... 28
A. What I learned from this project .................................................................... 28
B. Maintenance Plan ......................................................................................... 31
Chapter VI CONCLUSION ............................................................................................ 32
Chapter VII RECOMMENDATIONS .............................................................................. 34
REFERENCES .............................................................................................................. 35
APPENDICES ............................................................................................................... 37
Appendix A: System Architecture .................................................................................. 37
Appendix B: Entity Relationship Diagram ...................................................................... 38
Appendix C: Webpages ................................................................................................. 39
C.1: Home Page................................................................................................... 39
C.2: Project Page ................................................................................................. 39
C.3: Sign Up / Login Page .................................................................................... 40
C.4: Change Password ........................................................................................ 40
C.5: Dashboard .................................................................................................... 40
C.6: Configuration > ADD..................................................................................... 41
C.7: Configuration > Edit ...................................................................................... 43
C.8: Configuration > Remove ............................................................................... 43
C.9: MONITOR > [CONNECTION] ...................................................................... 44

Asset Management System for Database Management Systems … vii


C.10: INVENTORY ........................................................................................ 44
C.11: ANALYZE > Environment .................................................................... 45
C.12: Analyze > [CONNECTION] .................................................................. 45
C.13: LOGS ................................................................................................... 45
C.14: Notification ........................................................................................... 46
C.15: Search Bar ........................................................................................... 47
C.16: My Profile Page ................................................................................... 47
C.17: Log Out ................................................................................................ 48
Appendix D: Actual Project Progress............................................................................. 49
Appendix E: User Case Model ...................................................................................... 50
Appendix F: Sequence Diagrams .................................................................................. 51
F.1: Account Creation, Log In and Change Password .......................................... 51
F.2: Recover Password and Connect to database ............................................... 52
F.3: Edit Connection and Remove Connection..................................................... 53
F.4: Monitor database, logging, and refresh database connection ....................... 54
Appendix G: List of Databases ...................................................................................... 55
G.1: List of Database for Integration Testing ........................................................ 55
G.2: List of Database for Staging Area Testing .................................................... 55
Appendix H: Test Scenarios .......................................................................................... 57
H.1: All test cases ................................................................................................ 57
H.2: All test cases and scenarios ......................................................................... 57
H.3: Severity Criteria ............................................................................................ 60
Appendix I: Test Scenarios ............................................................................................ 61
I.1: Create an Account ......................................................................................... 61
I.2: Duplicate Email Address ................................................................................ 61
I.3: Recover Password ......................................................................................... 61
I.4: Add Database Connection ............................................................................. 62
I.5: View Environment .......................................................................................... 62
Appendix J: Testing Results .......................................................................................... 63
J.1: Integration Testing – First Attempt................................................................. 63
J.2: Integration Testing – First Attempt (Database ConnectionResults) ............... 63
J.3: Integration Testing – Second Attempt ........................................................... 63
J.4: Integration Testing – Second Attempt (Database ConnectionResults) .......... 64
J.5: Staging Environment Testing ........................................................................ 64
J.6: Staging Environment Testing (Database Connection Results) ...................... 65
Appendix K: Code .......................................................................................................... 66
Appendix L: ZAP Alerts.................................................................................................. 67

Asset Management System for Database Management Systems … viii


Appendix L: List of Files................................................................................................. 71
M.1: List of Stored Procedures............................................................................. 71
M.2: List of Views ................................................................................................ 74

Asset Management System for Database Management Systems … ix


LIST OF TABLES

TABLE 1: LIST OF CORRESPONDING TECHNOLOGIES TO BE USED ............................ 11

TABLE 2: LIST OF SECURITY VULNERABILITIES .............................................................. 25

TABLE 3: LIST OF DATABASE AND ACCESS INFORMATION FOR INTEGRATION

TESTING ......................................................................................................................... 55

TABLE 4: LIST OF DATABASES AND ACCESS INFORMATION FOR STAGING AREA

TESTING ......................................................................................................................... 56

TABLE 5: BUG TRIAGE - SEVERITY CRITERIA .................................................................. 60

Asset Management System for Database Management Systems … x


LIST OF FIGURES
FIGURE 1: WEB-BASED INTELLIGENT INVENTORY MANAGEMENT SYSTEM: CLIENT

SERVER ARCHITECTURE ..................................................................................................... 3

FIGURE 2: DNN TUNING PIPELINE ....................................................................................... 3

FIGURE 3: ALL TECHNOLOGIES TO BE USED .................................................................. 12

FIGURE 4: DATA DISPLAY AND DATA INPUT .................................................................... 13

FIGURE 5: DATA EXTRACTION, TRANSFORMATION AND LOAD TO SERVER AND

DISPLAYING OF DATA TO SERVER ................................................................................... 15

FIGURE 6: WATERFALL METHODOLOGY OF PROJECT .................................................. 19

FIGURE 7: NETWORK TESTING RESULTS ........................................................................ 24

FIGURE 8: SYSTEM ARCHITECTURE ................................................................................. 37

FIGURE 9: ENTITY RELATIONSHIP DIAGRAM ................................................................... 38

FIGURE 10: GANTT CHART FOR PROJECT IMPLEMENTATION ...................................... 49

FIGURE 11: USE CASE MODEL........................................................................................... 50

Asset Management System for Database Management Systems … xi


ABSTRACT

Databases hold critical data that is valuable for both consumers and businesses. As abusiness

expands, the reliance on a healthy and working database becomes imperative for its business

operations. Hence, it is essential to maintain and monitor relational databases as they are the

backbone for business longevity and growth.

This project aims to retrofit the concept of an inventory management system to database

systems. The scope and result of this project are to (1) host the system in awebserver, (2)

capability to connect to any of the popular relational database systems(SQL Server, Postgres,

Oracle, or MySQL), (3) monitor a database’s availability and capacity, and (4) aggregate and

display historical data into graphs and tables.

The resulting system satisfied the requirements mentioned above. The system is hosted on

AWS EC2 Windows 2019. Through the web interface, you can monitor andanalyze historical

data. With the pyodbc library, it can Extract-Transform-Load data from the target database and

then load it to the local database. This method is possiblewith the help of SQLs native for each

target database.

Even though numerous database monitoring tools are on the market, this system is alow-cost

alternative. Also, the system is still in its infancy. It suffered from project ailments that hindered

the progress of this project, such as underestimating tasks, shortage of time, and delayed

testing. In essence, the system still satisfies the benchmarks for testing, and it is subjected to

future improvements.

Keywords: Databases, Database Monitoring Tools, ETL, Database Systems

Asset Management System for Database Management Systems … xii


Chapter I

THE PROBLEM DOMAIN

Statement of the Problem

Daily business operations and business intelligence rely on the availability of database

management systems. Since databases hold critical data that is valuable to both the

consumer and the business, they are the backbone of the modern business.

However, as modern businesses continue to expand and meet their customer's needs,

relational database management systems also grow in scale. Companies are struggling to

track and monitor the databases properly. Plus, businesses also need the tools to cope in

maintaining and auditing their database systems.

In that regard, the problem for this research centers on tracking and auditing database

management systems. As they are the most critical assets, we want to find alternative

monitoring and tracing them.

Background and Objectives of the Project

The purpose of this research is to retrofit and repurpose inventory management

systems to monitor and track RDBMS precisely and the servers where they are hosted.

There are four questions we want to address:

1. How do we transform the existing Inventory Management System to monitor and audit

RDBMS primarily?

2. Is there any related literature on inventory management that needs to be considered?

3. What best practices should we consider transforming an existing inventory system?

Asset Management System for Database Management Systems … 1


4. What essential RDBMS properties are relevant in tracking and auditing?

Significance and Scope of the Project

This document will only include the software specifications for an Inventory

Management System specifically designed for database and server monitoring.

As stated previously, a management inventory system explicitly designed for databases

is the goal of this project. It can connect to any major brands (MySQL, Oracle. MS SQL

Server, and Postgres).

The proposed product is akin to a database monitoring tool that monitors and tracks

database availability and capacity. The product will be named RDB IMS. However, this is

where the similarity ends. The product will be hosted on a web server as a centralize The

development will include features such as:

● capacity auditing

● network traffic analysis

● server availability

● real-time analytics

● Machine Learning Algorithm for automated and consistent uptime monitoring

Documentation of Existence and Seriousness of the Problem

There are two relevant studies that are relevant for this project.

1. Web based intelligent inventory management system.

The web-based intelligent inventory management system follows perfectly the proposed

client-server architecture of the system. In the architecture seen below (Figure 1), it has an

input and Output Module, Web Services, Database and Intelligent System.

Asset Management System for Database Management Systems … 2


Figure 1: Web-based Intelligent Inventory Management System: Client Server Architecture

The input module provides a user login for different privileges and access restrictions while

the Output Module enables users to view and monitor activity. The database, on the other

hand, is a repository to store transactions and status of remaining stocks. Similarly, it has

the intelligent system using fuzzy logic.All of the above are hosted in a web service for

centralization and faster communication with other users. [1]

2. An inquiry into machine learning-based automatic configuration tuning services on real-

world database management systems

In a paper written by Aken and company, database performance tuning and optimization

was done using machine learning. In their study, it resulted in a 45% increase in db time

compared to the default settings.

Figure 2: DNN Tuning Pipeline

Asset Management System for Database Management Systems … 3


Chapter II

REVIEW OF EXISTING ALTERNATIVES

All the existing systems are monitoring tools. For a detailed list, you can find it in the link

provided. Below are the brief overview of the related systems, the similarity and differences

to the proposed system and the rationale why the proposed system is a better alternative.

A. Site 24x7

Site 24x7 is a web hosted server that measures web traffic and server resources. It is

marketed as an all-in-one monitoring solution that monitors web server, web site, network,

and application. However, this monitoring solution does not include database monitoring

which is an essential and main component of the proposed system. The goal of the proposed

system is to have portability and easy connection to a centralized server. In that regard, it

burrows the concept of a web server from Site 24 x7 with the added features of network and

server resource monitoring.

B. PRTG Network Monitoring

PRTG Network Monitoring is a premium monitoring solution that tracks performance, load

and services for Cloud application, Databases, Hardware and Network. For databases, it

includes all four major platforms (MS SQL Server, MySQL, Postgres and Oracle). It also

has monitoring features for Operating System cloud monitoring, service, and performance.

The monitoring tool is an application where it will be installed to your machine. Similar to

the proposed system, it will need the network and server monitoring features but only the

basics. However, the differences between the proposed system and this alternative

Asset Management System for Database Management Systems … 4


system is the cost and scope. It has comprehensive features that are outside the main

features proposed earlier. Subsequently, the idea to use open-source software to minimize

costs is another consideration for this project. The goal is to democratize database

monitoring hence costing is a priority for this project without affecting the main the

objectives.

C. Icinga

Icinga is a open-source monitoring tool that is only available for desktop. It can monitor

servers and databases with minimum hardware requirement. It features Infrastructure

Monitoring, Monitoring Automation, Cloud Monitoring, Metrics and Logs, Analytics and

Notifications.

Similarly, the proposed system is in line with the philosophies and features of this product.

As it is an open-source product then cost is the main selling point for it. Next, it monitors

cloud servers and databases which is another key component of the proposed system.

Finally, it has the added option for configurability since most the technologies used will

have an open-source software.

The difference with Icinga is that it is community driven. Being heavily reliant to a

community of developers has its pros and cons. But most likely, there is less control over

the final product and a blurry vision from the initial specifications. This is a risk not worth

taking.

D. dbWatch Control Center

dbWatch is a database-centric monitoring and management solution that covers

multiple database platforms. It has the following features:

Asset Management System for Database Management Systems … 5


1. Database Monitoring

2. Database Management

3. Advanced Reporting

4. Database Maintenance Automation for SQL Server

5. Cluster support

6. Security package

7. Autodiscovery

8. Customization support package

9. Performance Management

10. Integrations

11. CLI scripting package

12. Multi-Site/Multi-Server support

13. Database Farm Management

14. Web dashboards

15. Auto-update

For similarities with the proposed system, it will only include the basics of database

monitoring and management. The other modules will not be included such as reports,

multi-server support and database cluster support. Furthermore, it will only limit it to

database availability such as uptime and downtime statistics and database capacity such

as growth rate and table space.

Another similarity is the seamlessness and non-intrusive nature to the operations of

the targeted database. However, the software is installed in a machine. For the proposed

system, it will be hosted on a server.

Asset Management System for Database Management Systems … 6


Chapter III

APPROACH TO BE TAKEN IN THIS PROJECT

Overview

A database Inventory Management System or DB IMS responds to the growingdemand to

track and monitor relational databases. As a business today relies heavily on database

management systems and operations, DB IMS aids in helping them keep track of all their

database environments.

The system will use open-source technology and be hosted on a web server while

monitoring relational databases. This is ideal for professionals who prefer an on-the-go type of

monitoring. You log in, put in your database credentials, and the software will monitor your

database availability and capacity.

Theoretical Framework

In this project, we will use the following theoretical framework for a functioning

system:

▪ System Architecture - see Appendix A

▪ Entity Relationship Diagram - see Appendix B

▪ Use Case Model - see Appendix E

▪ Sequence Diagrams - see Appendix F

The default methodology for this project is a Waterfall Model Methodology.

Rational of Framework

A. System Architecture

The system architecture serves as the backbone for the proposed information system.
Asset Management System for Database Management Systems … 7
Appendix A shows the interaction with all the components inside the host server, user, and

targeted databases.

Firstly, Input and Output are directly linked to the web interface. The web interface acts

as the User Interface, and it displays the graphs, information, and connection details to the

end-user. This serves as the output of the web interface. While the commands and

interactions done by the user are the inputs. (See AppendixC for the list of web pages)

Similarly, two buffer scripts (Server Side Scripts and Database Connection) are

connected between the local database to the web interface and the targeted database.The

server-side script displays information from the local database to the webinterface. While

the database connection script connects and interacts with thetargeted database and loads

data to the local database. The database connection script will perform ETL on the database

instance and load it to the local database.

It uses a stored procedure that will be installed inside the targeted database

environment. This design was chosen to have little impact on the targeted database server.

B. Database Design

The Entity-Relationship Diagram (ERD, see Appendix B) intends to preserve data

integrity and structure in the relational database management system (RDMS). This, in turn,

prevents orphan records from being stored and normalizes data. Similarly,this acts as a filter

when displaying data to the web interface.

First, a unique identifier is a primary key for the first two tables (users and

Asset Management System for Database Management Systems … 8


db_connection_details). A unique identifier is a more straightforward way to enhance

security and join tables more accurately. Plus, adding a unique identifier will restrict access

to other information in the system.

Next, each platform has separate tables allocated for them. Due to the nature of

different database information, it is more convenient to separate data into different tables

rather than consolidate them in one table and separate the information afterward.

Then, you have configuration tables and generic tables. Configuration tables are

reference tables to know when to run a db ims job or track their status automatically. Generic

tables contain all general values that can be used for the entire system.

Similarly, you also have the uptime table, which holds the uptime statistics. You also

have the db_connection_logs, which holds status if the connection is ONLINE or OFFLINE.

Aside from those, the database has functions and stored procedures (Appendix M.1)

to verify the integrity of the input data. SPs and functions are also used to store data in the

local database. As for extracting data from the database, view tables are used. (See

appendix M.2)

C. Use Case Models

The use case model shows the interactions between the user and the system. In

Appendix E, it shows the multiple actions of the user and the corresponding resulting action

of the system.

Asset Management System for Database Management Systems … 9


D. Sequence Diagrams

The sequence diagrams map out the from and to for each entity (user, web server,

local database, and target database server). It defines how the data will be inputted and

stored into the database. Not only that, but it also shows how data will travel between two

entities.

For each scenario, the arrows points from the source entity (one doing the action)

and target entity (one receiving the action). For each column, there is a duration

represented by line bar for the action.

E. Waterfall Methodology

In choosing a methodology, the following questions should be answered: "who," "what,"

"when," "why," and "how." "Who" focuses on responsible teams and individualson activities

that need to be done. "What" answers project elements that need to be achieved for the

system to complete and work. "When" answers the timeline of deliverables so that the

system will reach the target date based on the client and team's date of release. "Why"

refers to activity dependencies, objectives of the project,and reasons for continuing the

project. Finally, "How" describes the process ofimplementing the theoretical frameworks

above.

When discussing methodologies, two models come into mind – waterfall or agile. The

waterfall is more traditional, wherein it follows a linear software development approach in

sequential order and moves on to the next phase when development is complete. On the

other hand, agile is a continuous and iterative development process wherein concurrent

development and testing. The client has nearly negligible participation in the project in the

Asset Management System for Database Management Systems … 10


former, while the other has more exposure to the client.

Upon considering the project timeline (Appendix D), a more traditional approach like a

waterfall should be implemented for this project due to the following points:

▪ minor changes to be done during the product life cycle

▪ smaller uncertainties and unknown variables are expected

▪ simplified system requirement means a more linear approach is morecompatible

Technologies you plan to consider or use

Listed below are the technologies used:

Components Technologies/ Languages

Host Server AWS EC2: Windows 10 (2019),


64bit, 30Gigabyte of ROM, 2.4
GHz
Web Services Apache running in Xampp

Client-Server Interface HTML, CSS, and Javascript

Server-side Scripting PHP 8.0

Local Database MySQL

Database Connection and Data Python 3.8


Extraction
Database data extraction Native SQL (Oracle, MySQL,
Postgres, and MS SQL Server)
Machine Learning Python
Table 1: List of Corresponding technologies to be used

** Machine Learning was not implemented in this project due to the lack of data, time,and resources.

Asset Management System for Database Management Systems … 11


Figure 3: All Technologies to be used

1. Host Server

The web server is hosted in AWS EC2. AWS was chosen to accommodate theproposed

testing plan, VPN connection to the dbWatch’s network, and seamless transition between

the integration environment (local pc) and the staging environment(AWS hosted). We are

using a free tier to utilize the full capacity of AWS EC2, especially its high availability.

Since we are working with a windows server, it’s more natural to lean to AWS EC2.In

addition, EC2 has an elastic IP and security group to whitelist all network connections. We

can set the security group to limit root access only to my IP Address.

2. Web Services

Web services are still running on an Apache engine. The difference is that we are using

Xampp to moderate the web server and database services. Both integration and staging

environment will be running on Xampp. When accessing the website, it’s seamless. For

deployment purposes, xampp is much faster to deploy, and overwriting codes is more

manageable by opening an FTP connection between the server and the local pc. Also,

Xampp’s UI is much easier than killing and restarting services.

Asset Management System for Database Management Systems … 12


3. Client-Server Interface

The Client-Server interface uses Javascript, CSS, and HTML. By default, HTMLis the display

format for the web interface. All HTML codes will be displayed on the client-side of the

server. CSS is for formatting and stylizing HTML contents. Finally, Javascript is one of the

most utilized programming languages used in the project. From animations, adding HTML

contents, graphs, and java queries, javascript has become the backbone to smoothening

user experience.

4. Server-side Scripting

PHP is the go-to server-side scripting to access the local database and store them as

variables for HTML. This style was used to reduce the strain in Javascript anddisplay pages

statically. At most, PHP is used in sessions and local database queries.

Although it can query in the local database, the credentials set are only for the db_ims

database.

Figure 4: Data Display and Data Input

In addition, select statements are limited to views, while insert, delete and update statements

are executed via a stored procedure.

Asset Management System for Database Management Systems … 13


5. Local Database

A MySQL database is hosted in the AWS EC2 instance. The database is running through

XAMPP. MySQL was chosen as the database of due to the following reasons:

1) MySQL is an open-source platform that has been relatively long in the market. This

project aims not to create a complex database system but to act as a storage unit for

the local database. MySQL suffices in this aspect.

2) MySQL has all the functions, views, and stored procedures available even for a

standard license. It is easier to restrict all transactions using View Tables, functions,

and stored procedures for security purposes. Similarly, it is easier to do this on the

command line.

3) Configuring MySQL databases is available on the internet. Since this projectaims to use

open-source resources, it will be easier to implement it with a non-enterprise database

such as MS SQL Server or a community-driven database system such as Postgres. It

is also straightforward compared to the likes of Oracle.

6. Database Connection

Python is the most suitable program language to establish, maintain, and closeconnections

to a database. Pyodbc uses the drivers available in windows. Later, we will discuss the

implications of this structure. Python ODBC is better than JDBC because it is easy to

implement, and it only requires a single library, making it platform-independent.

7. Native SQL

It uses an agentless monitoring procedure to capture database capacity and the remaining

availability components. Stored procedures stores database data and information locally. A

Asset Management System for Database Management Systems … 14


python script from the server triggers this. Once data needs to be retrieved for analysis, it

extracts the aggregated data back to the server.

Figure 5: Data extraction, transformation and load to server and displaying of data to server

Several problems with using this process during implementation will be discussed later in

the discussion section.

Asset Management System for Database Management Systems … 15


Asset Management System for Database Management Systems … 16
Chapter IV

CHAPTER PLAN

CONCEPT

The system architecture design will follow that in Appendix A. As discussed in the

Technologies you plan to use section, the system architecture will be discussed with the

following components:

A. Input and Output

The input describes the command interactions done by the user while output are the

graphs, information and connection details displayed in the web interface for the end user.

B. Web Interface

The web interface acts as the user interface between the system local database and

scripts running behind the host server. To see the initial web pages for the project, check

appendix C for the Mockup of the web pages. This will be discussed later.

C. Server Side Script

This is the connecting script between the local database and the web interface. It provides

information for database availability, error logs and aggregated data extracted from the

targeted database.

D. Database Connection

The database connection captures availability and errors, maintains connection and loads

information to the local database. It employs the ODBC library in Python. Similarly, when

the database establishes its first connection, it will install several stored procedure.

Asset Management System for Database Management Systems … 17


E. Native SQL

In the same diagram, the targeted database will capture capacity information such as

memory, table space check, log file statistics and growth rate. Using a stored procedure

that will be installed inside the targeted database environment along with creating a

database and schema, it will store capacity data locally. The reason for this setup is to

lessen burden and storage for the web server.

F. Machine Learning

Machine learning algorithm will act as the database administrator for the database

management system. Using one of the performance tuning algorithms defined by Aken

and company, the implementation of machine learning will help in doing performance

tuning for a single database system. The machine learning algorithm is also in charge of

executing the stored procedures found in the target database. Due to time constraints, this

was not implemented in the final design.

G. System Features

The sequence diagrams map out the connection for each entity (user, web server, local

database, and target database server). It defines how the data will be inputted and stored

into the database. Not only that, but it also shows how data will travel between two entities.

In Appendix C, the web pages are shown. These are:

• Home Page - displays the home screen when accessing the website. It provides
information on the project.
• Project Page – illustrates how the system works.
• Sign Up / Login Page – access the system by creating an account or accessing your
account through Email or Username and your Password
• Change Password – password recovery page; accessed by clicking “forgot password”
and opening the recovery email. Afterward, the userwill be redirected to the password
Asset Management System for Database Management Systems … 18
recovery page.
• Home Page – Once logged in, the user will be redirected to the home page. This shows
the notification widget, inventory graph, and quick access information tables.
• CONFIGURE > ADD – step-by-step process in connecting to a database. First, fill out
the connection form; then, the summary will be prompted. After confirming, the system
will connect to the database. After establishing a connection, it will ask for a
“connection name.” Once all are done, it will save the connection details in the
database.
• CONFIGURE > EDIT – displays the list of connections. You can change the connection
name or database details on this page. After refreshing the page, the changes will be
re-displayed.
• CONFIGURE > REMOVE – removes a database connection from the list of database
connections.

• MONITOR > [CONNECTION] – displays DB IMS jobs and installation status of DB IMS
jobs. You can run jobs manually on this page. Db IMSjobs will differ with the platform.
• INVENTORY – shows the list of active databases currently being monitored.
• Analyze > Environment – displays an inventory graph and version details of the
database you are currently monitoring.
• Analyze > [CONNECTION] – shows data extracted from the database you are
monitoring. Data displayed will differ per platform.
• LOGS – shows python script logs thru iframe
• Notification – shows user notifications
• Search Bar – queries for connection names and list them
• My Profile Page – shows an editable form for user name and Password
• Log Out – destroys current session and redirects to index page

METHODS

Figure 6: Waterfall Methodology of Project

Asset Management System for Database Management Systems … 19


This project will observe the above straightforward methodology. For the Development

Phase, it will include each component: ODBC connector, Data Collector Script, Stored

Procedure Scripting, PHP Scripting, Machine Learning Algorithm and Web Page

Development. For every component developed, then component testing will be done. In

addition, for every component completed then it will be uploaded in github with a

corresponding version. This is to have reliable backup during the development process and

with a version control.

Once all components are complete, it will be integrated and an end-to-end testing will

ensue. If the system is stable and no potential errors can be found then it will be deployed to

the web server. Otherwise, it will remain in the local environment until all bugs and fixes are

done.

When the system is deployed in the web server, another testing phase will commence

- Prod Testing. The prod testing will be a high-level testing where potential bugs should be

intercepted and negate the probability of failure. In essence, only two environments are

available: local environment and server environment.

Plan for User Testing and Project Assessment

A. Scheduling and Implementation

Since this project will only involve two environments, then the test and deployment

will be limited to only the local environment and web server environment. For the full

breakdown, It follows the Gantt chart shown in Appendix D.Source code for the system

can be found in Appendix K. The breakdown of files can be found in Appendix M.

Asset Management System for Database Management Systems … 20


For the implementation of the system, the first three months were dedicated to

developing the system. Afterward, two weeks were allotted for testing. Then, the last week

was devoted to documentation.

B. Project Assessment and User Testing

1. Test Plan

As discussed in the test plan, testing is done in two environments composed of Ui

Testing, White-box testing, and functional testing. The first environment involves the local

environment with databases within my machine (local database 127.0.0.1) and other

approved database instances. All instances for testing can be found in Appendix G.1

The local environment is running in Xampp, and it is accessed using Google Chrome and

Microsoft Edge. I connected to the company's network through a VPN toconnect to each

approved database. Approved databases are the databases green-litby the owner for

testing purposes, while those with Local databases are databases running on my local

machine.

Testing includes all the following scenarios, as seen in Appendix H.1. For a complete list of

test scenarios, click on the link.

Next, the staging server is used for staging environment testing. A staging environment is

provisioned and hosted in AWS. Similarly, it uses Xampp, but it’s hosted in a webserver

running on SSL. Twenty-four databases is used from dbWatch's testing environment, and

all of them are in the company’s network. It is ideal to have this many databases to see if

there will be a different response to different database versions. The list of databases for
Asset Management System for Database Management Systems … 21
the staging environment can be found in Appendix G.2.

Similarly, the same test scenario is applied to the second testing phase. (See Appendix

H.1 for details) In addition, all databases used are approved databases for this testing

phase.

2. Finding Bugs

The expected results list of test scenarios is used when tracking bugs. In appendix H.2, the

tabulated format of the test case shows the action, input data, and expected result. Any

deviation from the “expected result” is marked as a bug. The test scenarios are influenced

by Sequence Diagram (Appendix F) and the Use case diagram(Appendix E). Bug Severity

is categorized into low, medium, and high. Categorization of bug severity can be found in

Appendix H.3

3. Test Specifications

Test results can be found in Appendix J. There were two attempts when testing the

integration environment. The first one (Appendix J.1 and J.2) failed since there were a lot of

bugs uncovered during the testing phase. (See Appendix I) The second attempt was made

after fixing all the bugs. A re-test was done and produced more accurate results. (Appendix

J.3 and J.4)

Then, testing was done in the staging environment. All bug fixes were migrated to the EC2

machine before testing commenced. Like the integration environment’s second attempt,

most of the features were functioning. (See Appendix J.5 and J.6)

Asset Management System for Database Management Systems … 22


4. Bug Triage

There are 5 Major defects found. (See Appendix I).

Special characters are omitted for the first bug (Appendix I.1) when registering for a new

account. This was more on the problem with Mail gun rather than Python. I removed all

special characters in the Stored Procedure when generating a new password to fix this.

For the second bug (Appendix I.2), “Input Valid Email” returns inputting a duplicate email.

Bug fixes include adjusting the functions related to email validation and adding an indicator

that if the output code is 2, it produces a “duplicate email” message.

For the third bug (see Appendix I.3), below are the bugs found:

▪ Redirect to Login Page After submission

▪ Subject Line not found in the recovery email

▪ No Email Sent or Confirmation.

▪ Password Recovery should work; after submitting a newPassword, it does not save

in DB level

Upon checking, the problem was that the PHP file was invoking the wrong javascript and

python files. All the issues listed above were resolved by changing file pointers (of both JS

and Py files).

The fourth bug (Appendix I.4) requires adjusting the python script for initial installation.

Several functions were revised, and after that, it worked.

Finally, the javascript for inventory charts was adjusted in the last bug (Appendix I.5). So as

the select statements of the home page and analyze_inventory page. Also,two views were
Asset Management System for Database Management Systems … 23
added to accommodate the missing MySQL and Postgres tables.

5. Regression Testing

At the bare minimum, regression testing was done to verify if the system was notaffected by

any code changes. All parts are moving, and confirming if the system is working should be

a high priority during any code change before setting the bug fix asresolved.

6. Security Testing

Using the ZAP application, we were able to get the following alerts:

Figure 7: Network Testing Results

The complete list of Security Vulnerabilities can be found in Appendix J. But for

discussion, the table below summarizes the security vulnerabilities:

Security Vulnerability
1 Cross Site Scripting
2 Absence of Anti-CSRF Tokens
3 Application Error Disclosure
4 Content Security Policy (CSP) Header Not Set
5 Directory Browsing
6 Missing Anti-clickjacking Header
7 Parameter Tampering
8 Cookie No HttpOnly Flag
Asset Management System for Database Management Systems … 24
9 Cookie Without Secure Flag
10 Cookie without SameSite Attribute
11 Cross-Domain JavaScript Source File Inclusion
12 Server Leaks Information via "X-Powered-By" HTTP Response Header
Field(s)
13 Timestamp Disclosure - Unix
14 X-Content-Type-Options Header Missing
15 Information Disclosure - Sensitive Information in URL
16 Information Disclosure - Suspicious Comments
17 Re-examine Cache-control Directives
Table 2: List of Security Vulnerabilities

Below are the future tasks to address the security vulnerabilities:

1) Cross-Site Script involves adding a script at the exposed part of the system’s

URL. You can do this by starting with a script identifier (<script>) and appending

a JavaScript in between. Based on the check result, the exposed part is the

exposed query selector (qres). Mitigating the exposed part will create another

section and remove the query selector from the URL. All back-end processes

will be done using Javascript and removing the header location in the PHP query

file.

2) From what the evidence suggests and from research, implementing a

synchronizer token pattern prevents unwanted sessions from getting critical

information. [3] A redesign of the PHP files will be needed to accommodate the

token submission.

3) The system does not have any error handling for Javascript or PHP executions.

Adding that crucial try-catch statement will be necessary, so it does not disclose

any sensitive information.

4) This was missed during the development of the system. A content security

policy will be added in both the bg_background.php and bg_dashboard.php. [4]

Both PHP files display the contents as HTML.

5) Since the server is running in Apache in Xampp, the same process of disabling

the list of directories will be followed. This means changing httpd-vhosts.conf to


Asset Management System for Database Management Systems … 25
add the following Line [6]:

<Directory /{YOUR DIRECTORY}>


Options FollowSymLinks
</Directory>

6) Like number 5, the content security policy will be added. In addition, x-frame

options will be modified in the logs.php file.

7) Same as number 3, an error-handling statement will be implemented to redirect

pages to page 404.

8) ZAP suggests ensuring that the HTTP Only flag is set for all cookies. [7] This is

done by setting the cookie to accept HTTP requests, thus blocking javascript

from accessing the cookie. Cookies will be set in PHP files such as home.php,

etc.

setcookie($name, $value, [
'expires' => time() + 86400,
'path' => '/',
'domain' => 'domain.com',
'secure' => true,
'httponly' => true,
'samesite' => 'None’,
]);

9) Same as number 8.

10) Same as number 8.

11) This is caused by accessing untrusted javascript files. A solution to this is to

use sub source integrity [9]:

<script src="https://example.com/example-framework.js"
integrity="sha384oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl
1kPzQho1wx4JwY8wC"
crossorigin="anonymous">
</script>

12) Remove php exposure in php.ini file in xampp:


Asset Management System for Database Management Systems … 26
expose_php = off

13) Remove time-zone disclosure in files css/bootstrap.min.css and

lib/tempusdominus/js/moment-timezone.min.js

<meta content="text/html; charset=UTF-8; X-Content-Type-Options=nosniff" http-


equiv="Content-Type" />

14) Add the following to the HTML file [10] or add this in the Apache Web Server

<IfModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
Header always append X-Frame-Options SAMEORIGIN
Header set X-Content-Type-Options nosniff
</IfModule>

15) Alter Javascript and PHP so it does not return sensitive

information over theURL.

16) Alter Javascript so that it does not return sensitive or user

information over theconsole.

17) Adjust cache-control over the header [11]

<meta http-equiv="Cache-control" content="public">

Asset Management System for Database Management Systems … 27


Chapter V

RESULTS AND DISCUSSION

A. What I learned from this project

In this project, I learned several key lessons. First, overestimation is determinantal to a

project’s success. Before starting this project, I submitted a strict timeline and the system's

initial design. I failed to consider the actual man-hours, information, and resources necessary

for the system. I should have realized that building this system would need an entire team to

check and balance the software andmethodology. Doing it alone, I was clouded in my judgment

and had difficulty adjustingsome features.

Second, the timeline is too rigid. It did not consider the number of hours of research and

trial and error; this further pushed the development period much later. For instance, the initial

structure of the code is to install a stored procedure, trigger thesaid stored procedure, extract

data, and transfer it to the local database. There are several problems with this design that will

be expounded on later.

Another example, I forgot to factor in research, testing the script, and how the scripts will

function per version. Upon further investigation, there are different ways to do monitoring and

extract data. It takes a longer time to test and verify each suggestion. Not all SQL native

languages are universally similar. Getting the agent status in SQL Server 2019 may differ from

getting it in SQL Server 2005. Some databases are structured differently for each version. This

was not considered during development. Thus, legacy versions will need a different approach.

Third, although it’s logical to integrate Python, PHP, Native SQL, and Javascript for the

system's backbone, it was harder to develop. The approach is different for eachprogramming

language, and cross-applying one concept to the other is overwhelming.There are moments that
Asset Management System for Database Management Systems … 28
I’m stuck with Javascript or PHP, and it had to be remedied with overreliance on Python and

Native SQL. But since most are moving parts, I cannot pinpoint where the problem occurs.

Plus, the skillset for PHP and Javascript are different from my expertise.

There were times when working scripts and codes were also altered multiple times.

Regression testing was done in conjunction with adding different platforms to verify that the

script does not change the intended output of the program. In addition, many optimizations in

the python scripts were done to negate the slowness and confusion in reading the code.

Changes done were branching If-then statements wereconverted to one-line formats. Then,

Try-catch statements were also re-structured to avoid redundancy. Finally, database timeouts

were also added to the script, but later it was found out that these timeouts were not

implemented correctly. Since it will affectthe system, it was postponed and not fixed.

Finally, the ETL structure might have been a significant factor in system development.

Below are the major problems I found when using both the pyodbc library and developing the

database python and SQL scripts:

1) Pyodbc library has an inherent design flaw; it uses odbc drivers installed in your

windows machine. This is problematic since you must have a pre- installed version

of the drivers to function correctly; otherwise, you need to add new drivers.

2) Development was too focused on one specific version and configuration per

platform. This resulted in the following problems:

a. SQL Server

i. SQL Server drivers can only accommodate any SQL Server instance

2012 and after. Pyodbc cannot connect to earlier versions.

ii. Some parts of the SQL Server stored procedure are designed to run for

version 2014 and above. The SP will not run if the version extracts
Asset Management System for Database Management Systems … 29
information from an earlier version. Affected states are Agent Status.

iii. If the given credentials cannot access the master database or other

database information table, the sp_installation job will fail.The system can

still run the python file, but it will not produce any result. For example, if

the credentials have no access to information schema, it becomes a

significant blocker as the system will need those checks.

b. Postgres

i. Stored Procedures are only added after version 11. The earlierversion

only used functions. This is problematic for earlierversions of Postgres

as the system explicitly defines it as a “stored procedure” and not as a

“function.”

ii. If the given credentials cannot access the Postgres database or other

database information table, the sp_installation job will fail. The system

can still run the python file, but it will not produce any result. For

example, if the credentials have no access to information schema, it

becomes a significant blockeras the system will need those checks.

c. MySQL

i. If the given credentials cannot access the MySQL database or other

database information table, the sp_installation job will fail.The system can

still run the python file, but it will not produce any result. Most approved

databases have limited credentials, so accessing MySQL database is

quite impossible even when creating a new user. For example, if the

credentials have no access to information schema, it becomes a

significant blockeras the system will need those checks.

d. Oracle

i. A major problem with Oracle is that it connects to the local oracle


Asset Management System for Database Management Systems … 30
database before accessing the target database. This produced errors in

extracting information from Oracle.

ii. Oracle is also driver-sensitive. Connecting an Oracle 19 driver to an

Oracle 12 version fails. But, connecting the same driver oracle 19 driver

to Oracle version 19 also fails. An XE driver was considered, but it

produced the same error.

iii. Also, failing to verify this later forced the developer not to investigate why

these bugs are prevalent in the system.

B. Maintenance Plan

The system adopts the proposed maintenance plan found in the SRS. All codes will still

be backed up in GitHub, and there will be a constant backup of data on the serverevery week.

Asset Management System for Database Management Systems … 31


Chapter VI

CONCLUSION

With the growing need for database monitor, this project aims to develop and implement

a database inventory management system. As discussed earlier, the system should be hosted

in a webserver and hold RDBMS connection details. Once connected, they should

automatically monitor a database instance’s availability and capacity. The system should also

be readily available for the end-user to analyze. It should also neatly display historical data and

graphs in the web interface.

The developed system, named DB-IMS, fulfilled those requirements. In addition,this

project pushed the boundaries of developing a system that utilizes open-source technology.

First, HTML is the language for the web interface embedded in PHP files.Tables and

historical data are displayed in HTML format for the user to check and analyze their

database state quickly.

Next, PHP and JavaScript are server-side scripts that extract and manipulate data and

then display them in the web interface. PHP is used to extract, transform andload data in the

database and the web interface. On the other hand, Javascript contributed to validating input

data, web page animations, query data directly, and displaying graphs. Javascript and PHP

work in parallel to produce a color interaction between web pages and databases.

Then, Python accesses and performs ETL on the target databases. Python scripts mostly

do back-end processes. It installs stored procedures in the target databases, extracts database

data, transform it, and loads it into the local database. The python script is integral in the ETL

process as it’s the direct link between the system and the target database.

Asset Management System for Database Management Systems … 32


Finally, SQL is the database language to extract and manipulate data from the database

instance. SQL is the native language of databases. Both the local databaseand target database

utilize SQL to extract data. SQL is also the transactional language on the local database to

manipulate and extract data.

These technologies harmoniously work together to automate the extraction and display

them for the user's convenience. However, it’s not a perfect system. It is still under thorough

reevaluation and realignment. It encountered multiple security threats,UI enhancement, error-

handling improvements, database connection fixes, redesign of approach to legacy databases,

and expansion of features.

Although other systems out in the market can do more than the current system's

limitations, the system is still in its infancy. It’s also apparent that underestimating tasks,lack of

supporting cast, shortage of time, and late testing played a massive factor in completing this

project.

Even though the system has reached a good benchmark as the system has satisfied all

testing scenarios, the improvements mentioned above should also be considered for further

development.

Asset Management System for Database Management Systems … 33


Chapter VII

RECOMMENDATIONS

For future development, the priority is to fix all bugs, extend research ondatabase

functionality and address the security vulnerabilities. Improving the system'sfunctionality and

UI will be at the forefront of any future work. With a well-functioning system and smoother UI,

then it will entice users to use the system.

Next, when data is sufficient, adding the missing feature – Artificial Intelligence,will be

the next order of business. Artificial Intelligence requires a lot of data and time to develop,

verify and test. The system is already designed for Artificial Intelligence expansion as

response time is recorded for databases. With a month’s data and moretime, this feature will

be possible to implement.

Finally, the next logical step is to adjust the webpage to accommodate mobile users.

The system is currently designed for desktop applications. Expanding it to mobile will benefit

the philosophy of being on the go.

Asset Management System for Database Management Systems … 34


REFERENCES

[1] A. O. Madamidola, O. A. Daramola, and K. G. Akintola, "Web-based intelligent inventory management


system," International Journal of Trend in Scientific Research and Development, vol.1,no. 4, May 2017
[Online]. Available:https://www.researchgate.net/publication/317276986_WEB_-
_BASED_INTELLIGENT_INVENTORY_MANAGEMENT_SYSTEM. [Accessed: 12-Jan- 2022]

[2] D. V. Aken, D. Yang, S. Brillard, A. Fiorino, B. Zhang, C. Bilien, and A. Pavlo, "An inquiry into machine
learning-based automatic configuration tuning services on real-world database management systems,"
Carnegie Mellon Database Research Group, 01-Mar-2021. [Online]. Available:
https://db.cs.cmu.edu/papers/2021/p1241-aken.pdf. [Accessed: 12-Jan-2022].

[3] “Cross-site request forgery prevention cheat sheet,” Cross-Site Request Forgery Prevention -OWASP
Cheat Sheet Series. [Online]. Available: https://cheatsheetseries.owasp.org/cheatsheets/Cross-
Site_Request_Forgery_Prevention_Cheat_Sheet.html. [Accessed: 25-May-2022].

[4] “Content security policy (CSP) - http: MDN,” HTTP | MDN. [Online]. Available:
https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP. [Accessed: 25-May-2022].

[5] “X-Frame-Options - http: MDN,” HTTP | MDN. [Online]. Available: https://developer.mozilla.org/en-


US/docs/Web/HTTP/Headers/X-Frame-Options. [Accessed: 25-May-2022].

[6] Z. Banach, “How you can disable directory listing on Your web server – and why you should,”
How to disable directory listing on your web server | Netsparker, 14-Mar-2022. [Online].

Available: https://www.invicti.com/blog/web-security/disable-directory-listing-web-
servers/#apacheserver. [Accessed: 25-May-2022].

[7] T. A. Nidecki, “The httponly flag – protecting cookies against XSS,” Acunetix, 24-Aug-2020.[Online].
Available: https://www.acunetix.com/blog/web-security-zone/httponly-flag- protecting-cookies/.
[Accessed: 25-May-2022].

[8] “SameSite cookies - http: MDN,” HTTP | MDN. [Online]. Available: https://developer.mozilla.org/en-
US/docs/Web/HTTP/Headers/Set-Cookie/SameSite. [Accessed: 25-May-2022].

[9] “Subresource integrity - web security: MDN,” Web security | MDN. [Online]. Available:

Asset Management System for Database Management Systems … 35


https://developer.mozilla.org/en- US/docs/Web/Security/Subresource_Integrity#browser_compatibility.
[Accessed: 25-May- 2022].

[10] “X-content-type-options - http: MDN,” HTTP | MDN. [Online]. Available:


https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options. [Accessed: 25-
May-2022].

[11] “Cache-Control - http: MDN,” HTTP | MDN. [Online]. Available: https://developer.mozilla.org/en-


US/docs/Web/HTTP/Headers/Cache-Control. [Accessed: 25- May-2022].

Asset Management System for Database Management Systems … 36


APPENDICES

Appendix A: System Architecture

Figure 8: System Architecture

Asset Management System for Database Management Systems … 37


Appendix B: Entity Relationship Diagram

Figure 9: Entity Relationship Diagram

I. PNG File
II. HTML File
III. DrawIO

Asset Management System for Database Management Systems … 38


Appendix C: Webpages
C.1: Home Page

C.2: Project Page

Asset Management System for Database Management Systems … 39


C.3: Sign Up / Login Page

C.4: Change Password

C.5: Dashboard

Asset Management System for Database Management Systems … 40


C.6: Configuration > ADD

C.6.A: Connection Details – ADD

C.6.B: Connection Details – Confirm

Asset Management System for Database Management Systems … 41


C.6.C: Connection Details – Connect

C.6.D: Connection Details – Alias

Asset Management System for Database Management Systems … 42


C.7: Configuration > Edit

C.8: Configuration > Remove

Asset Management System for Database Management Systems … 43


C.9: MONITOR > [CONNECTION]

C.10: INVENTORY

Asset Management System for Database Management Systems … 44


C.11: ANALYZE > Environment

C.12: Analyze > [CONNECTION]

C.13: LOGS

Asset Management System for Database Management Systems … 45


C.14: Notification

C.14.A: Notification Bar

C.14.B: See All Notifications

Asset Management System for Database Management Systems … 46


C.15: Search Bar

C.16: My Profile Page

C.16.A Profile Page

C.16.B Edit Profile

Asset Management System for Database Management Systems … 47


C.16.C Edit Password

C.17: Log Out

Asset Management System for Database Management Systems … 48


Appendix D: Actual Project Progress

Figure 10: Gantt Chart for Project Implementation

Asset Management System for Database Management Systems … 49


Appendix E: User Case Model

Figure 11: Use Case Model

Asset Management System for Database Management Systems … 50


Appendix F: Sequence Diagrams
F.1: Account Creation, Log In and Change Password

Asset Management System for Database Management Systems … 51


F.2: Recover Password and Connect to database

Asset Management System for Database Management Systems … 52


F.3: Edit Connection and Remove Connection

Asset Management System for Database Management Systems … 53


F.4: Monitor database, logging, and refresh database connection

Asset Management System for Database Management Systems … 54


Appendix G: List of Databases
G.1: List of Database for Integration Testing
Database DB Version Hostname Host IP SID Port OS Type DB DB
Type type user password

1 Local MySQL 127.0.0.1 3306 Windows 10 root p@ssw0rd


2 Local SQL Server 127.0.0.1 1433 Windows 10 postgres p@ssw0rd
3 Local PostgreSQL 127.0.0.1 5455 Windows 10 sa p@ssw0rd
4 Approved MariaDB 5.5.41 iqobal 10.0.0.86 NA 3306 Ubuntu 14.04 LTS 64bit root root

5 Approved MySQL 8.0.15 jante 10.0.0.221 NA 3306 Ubuntu 16.04 LTS 64bit root root
11.2.0.1.0 Oracle Enterprise Linux
6 Approved Oracle Enterprise Edition rafa4 10.0.1.115 rafa4 1521 5.10 64bit sys master
19.3.0.0.0 Oracle Enterprise Linux
7 Approved Oracle Enterprise Edition jodaka 10.0.1.164 ORCL19C 1521 7.5 64bit sys master
Ubuntu 18.04.3
PostgreSQL 14.2.0 laboi 10.0.2.238 NA 5432 postgres postgres
8 Approved LTS 64bit
2005 Windows Server
SQL Server hijado 10.0.0.61 SQLEXPRE 1433 sa Master007
9 Approved Express 2003Enterprise 32bit
SS
Edition
2016 Windows Server
SQL Server ithona 10.0.0.94 MSSQLSE 1433 sa Master007
10 Approved Standard 2016Enterprise 64bit
RVER
Edition
Table 3: List of Database and Access Information for Integration Testing

Note: Local databases are found in my local machine, while approved databases are found on our company’s server. They can
only be accessed with a VPN provided by our company.

G.2: List of Database for Staging Area Testing

Database type DB Version Hostname Host IP SID Port DB user DB password

1 MariaDB 5.5.41 hirsi 10.0.0.62 NA 3306 root root

2 MySQL 8.0.13 janguine 10.0.0.187 NA 3306 root root

3 MySQL 5.0.90 halmad 10.0.0.54 NA 3306 root root

4 Oracle 9.2.0.1 EnterpriseEditiongand 10.0.0.48 ORA92 1521 sys master


18.3.0.0.0 Enterprise
5 Oracle Edition jiaan 10.0.1.163 ORCL18C 1521 sys master
18.3.0.0.0 Enterprise
6 Oracle Edition jiaan 10.0.1.163 ORCL18C 1521 sys master
19.3.0.0.0 Enterprise
7 Oracle Edition jerne 10.0.1.70 ORCL19C 1521 sys as sysdba master

8 PostgreSQL 8.1.23 herego 10.0.0.60 NA 5432 postgres postgres

9 PostgreSQL 8.3.9 belsavis 10.0.0.39 NA 5432 postgres postgres

10 PostgreSQL 8.4.10 budpock 10.0.0.40 NA 5432 postgres postgres

11 PostgreSQL 9.0.6 bunduki 10.0.0.41 NA 5432 postgres postgres

12 PostgreSQL 10.4.0 jangelle 10.0.0.183 NA 5432 postgres postgres

13 PostgreSQL 12.5.0 kanzi 10.0.1.191 NA 5432 postgres postgres

14 PostgreSQL 13.1.0 kardoa 10.0.1.192 NA 5432 postgres postgres

15 SQL Server 2005 Express Edition gyndine 10.0.0.51 SQLEXPRESS 1433 sa Master007

16 SQL Server 2008 Express Edition cona 10.0.0.45 SQL2008EX 1433 sa Master007

17 SQL Server 2012 EnterpriseEdition imdaar 10.0.0.68 MSSQLSERVER 1433 sa Master007

Asset Management System for Database Management Systems … 55


18 SQL Server 2014 Standard Edition indupar 10.0.0.76 MSSQLSERVER 1433 sa Master007
19 SQL Server 2014 EnterpriseEdition indikir 10.0.0.73 MSSQLSERVER 1433 sa Master007
20 SQL Server 2014 Express Edition intran 10.0.0.79 SQLEXPRESS 1433 sa Master007
21 SQL Server 2016 EnterpriseEdition ivatch 10.0.0.95 SQLA 1433 sa Master007
22 SQL Server 2017 Standard Edition ixtlar 10.0.0.99 MSSQLSERVER 1433 sa Master007
23 SQL Server 2017 EnterpriseEdition jaminere 10.0.0.121 MSSQLSERVER 1433 sa Master007
24 SQL Server 2019 RC1 Developer jaroona 10.0.1.53 MSSQLSERVER 1433 sa Master007
Edition
Table 4: List of Databases and Access Information for Staging Area Testing

Note: All listed databases are found in our company’s network. They can only be accessed through a VPN provided by our
company. Here are the complete details of the list of databases.

Asset Management System for Database Management Systems … 56


Appendix H: Test Scenarios
H.1: All test cases
Case ID Suite Title Title Description Type Automation status
As a user, I should be able to create an
1 Account Details Create an Account account through Email Functional Not automated
2 Account Details Duplicate Email Address Users cannot have similar emails Functional Not automated
As a user, I should be able to recover my
3 Account Details Recover Password Password. Functional Not automated
As a user, I should be able to change my
4 Account Details Change Username Username Functional Not automated
As a user, I should be able to change my
5 Account Details Change Password in "My Password on the Profile Page Functional Not automated
Profile"
Connect Db As a user I should be able to connect to a
6 Connections Add Database Connection database Functional Not automated
Edit / Remove As a user I should be able to edit the current
7 Connection [Save] Edit Connection Details connection details Functional Not automated
Edit / Remove As a user, I should be able to remove any
8 Connection [Confirm] Remove Connection connection Functional Not automated
Edit / Remove As a user, I should be able to remove any
9 Connection [Cancel] Remove Connection connection Functional Not automated
Edit / Remove As a user I should be able to edit the current
10 Connection [Cancel] Edit Connection Details connection details Functional Not automated
As a user I should see my database
11 View all Connections View Inventory inventory Functional Not automated
Search Conenction View As a user, I should be able to search my
12 View all Connections Inventory database connection with name Functional Not automated
As a user I should be able to be notified by
13 Account Details [Individual] See Notifications the system Functional Not automated
As a user I should be able to be notified by
14 Account Details [All] See Notifications the system Functional Not automated
15 View all Connections See Logs As a user, I should be able to see the log file Functional Not automated
As a user I should be able to see if jobs were
17 View all Connections View Environment executed and their status Functional Not automated

H.2: All test cases and scenarios

Test Category Case Title Action Input Data Expected Result


Account Details Create an Account Go to Register Page Directed to Registered Link
renpogiman@gmail Email is Successfully Sent
Account Details Create an Account Type in Email
.com Confirmation
Email should show Username and
Password similar to that in
Account Details Create an Account Go to Email Account
database.
Click Log in to
Account Details Create an Account Transition to log in page
dashboard
Login = (Username)
/
Log in Username
Account Details Create an Account Password = redirect to dashboard
and Password
(Password)
Duplicate Email Open Registration
Account Details Open Registration Page
Address Page
Duplicate Email renpogiman@gmail
Account Details Input Existing Email Flag as duplicate email
Address .com
Click Forget
Password in Log in Redirected to Password Recovery
Account Details Recover Password
Page Page

Asset Management System for Database Management Systems … 57


renpogiman@gmail Click Submit and Email should be
Account Details Recover Password Input Email Address
.com sent
Account Details Recover Password Open Email Account Recover Password Email
Redirected to Password Recovery
Account Details Recover Password Open Email Link
Page
password1@ in
both
Account Details Recover Password Input New Password Change Password is successful
input bar
Go back to the
registration Log- in
Account Details Recover Password Redirected to Log in Page
Page
Given Username or
email address /
Input email and new
Account Details Recover Password password1@ Redirect to Home Page
Password
Account Details Change Username Go to My Profile Redirect to My Profile Page
Password button disabled,
Click Change Username field enabled and Save
Account Details Change Username
Username button Button Enabled
Account Details Change Username Change Username New_Username
Reload Page and New_username
Account Details Change Username Click Save Button
should appear
Change Password
in "My
Account Details Click on My Profile redirected to My Profile Page
Profile"
Change Password
Click "Change Enable Password inputs, and Save
Account Details in "My Profile"
Password" button
Change Password
Account Details in "My Profile" Input New Password p@ssw0rd4w
Change Password
in "My Reload Page and changes should
Account Details Click Save
Profile" be seen
[Individual] See
Account Details Notifications Click on notification Dropdown list of new notifications
[Individual] See
Account Details Notifications Click on notification Direct to relevant notification link
[All] See
Account Details Click on notification Dropdown list of new notifications
Notifications
[All] See Click on "See All
Account Details redirected to notification page
Notifications Notifications"
Connect Db
Add Database Click on Add
Connections Redirect to Add Connection Form
Connection Database
If Oracle (Oracle db field should be
Connect Db
Add Database seen); else it should be the same
Connections Click on Platform
Connection form
host ip / port/
username
Connect Db / password /(Oracle
Add Database Add Connection
Connections db if oracle is
Connection Details
chosen)
Connect Db
Add Database
Connections Click Next See Summary in Text Box
Connection

Asset Management System for Database Management Systems … 58


Test connection details; if correct
then CONFIRM should be enable,
Connect Db
Add Database else only previous should be
Connections Click Test
Connection enabled
Connect Db
Add Database input database
Connections Add Alias
Connection alias
Connect Db
Add Database
Connections Click Save Save Alias for database name
Connection
Click Inventory Link
View all in
View Inventory Directed to Inventory Page
Connections Dashboard
View all Inventory should list all instances
View Inventory See Inventory Page
Connections connected
Search Conenction
View all Input Connection
View Inventory Click on search bar Dropdown list of like instances
Connections Name
Search Conenction
View all
View Inventory Click on the instance Directed to Monitor Page
Connections
View all
See Logs Click on LOGS redirected to log file
Connections
View all
See Logs View Log File Log file is shown in iframe
Connections
View all Open Analyze >
View Environment Analyze Environment Page
Connections Environment
View all See Details of Display Analyze Page must be
View Environment
Connections Analyze page correct
[Save] Edit
Edit / Remove
Connection
Connection Click Edit Redirected to Edit Web Page
Details
Edit / Remove [Save] Edit
Click on one of the
Connection Connection Details Open up other connection details
records
New Connection
[Save] Edit
Edit / Remove Details
Connection Edit Connection
Connection and Connection
Details Details
Name
Edit / Remove [Save] Edit
Connection Connection Details Click Save Refresh Page
Edit / Remove [Confirm] Remove
Connection Connection Click on Remove Directed to Remove Page
Click on the row with
Edit / Remove [Confirm] Remove
delete
Connection Connection Pop up saying to proceed
button
Edit / Remove [Confirm] Remove
Connection Connection Click Confirm Refresh Page
Edit / Remove [Cancel] Remove
Connection Connection Click on Remove Directed to Remove Page
Edit / Remove [Cancel] Remove Click on the row with
Connection Connection delete button Pop saying to proceed
Edit / Remove [Cancel] Remove
Connection Connection Click Cancel Should not remove connection
Edit / Remove [Cancel] Edit
Connection Connection Details Click Edit Redirected to Edit Web Page
Edit / Remove [Cancel] Edit
Connection Connection Click on one of the Open up other connection details
Details records
Asset Management System for Database Management Systems … 59
Edit / Remove [Cancel] Edit New Connection
Connection Connection Details Edit Connection Details and
Details Connection Name
Edit / Remove [Cancel] Edit
Connection Connection Details Click Cancel No Action Done

H.3: Severity Criteria


When a bug is detected, testing will continue until all test scenarios are done

unless the bug affects the testing (see table 2 for expected bugs that might

affect testing). For each bug, the following severity will be observed:

Severity Action
High Stop Testing and address bugs; Highest Priority to be addressed immediately
Medium Continue Testing until all test scenarios are covered; not too much game-
breaking and can be deployed in the next release
Low Continue testing until all test scenarios are covered; least priority and primarily
for recommendation
Table 5: Bug Triage - Severity Criteria

Below are High Priority Bugs that need to be addressed immediately:

Unable to proceed due to invalid Username or Password


Non-Clickable links
Zero connected instances for a particular platform (except for Oracle)
Wrong web pages displayed
Unresponsive python script, javascript, or other components

Asset Management System for Database Management Systems … 60


Appendix I: Test Scenarios

I.1: Create an Account

I.2: Duplicate Email Address

I.3: Recover Password

Asset Management System for Database Management Systems … 61


I.4: Add Database Connection

I.5: View Environment

Asset Management System for Database Management Systems … 62


Appendix J: Testing Results

J.1: Integration Testing – First Attempt

Link for complete documentation: First Attempt (Full Documentation)

J.2: Integration Testing – First Attempt (Database ConnectionResults)

Link for complete documentation: First Attempt – db connection

J.3: Integration Testing – Second Attempt

Asset Management System for Database Management Systems … 63


Link for complete documentation: Second Attempt (Full Documentation)

J.4: Integration Testing – Second Attempt (Database ConnectionResults)

Link for complete documentation: Second Attempt – db connection

J.5: Staging Environment Testing

Asset Management System for Database Management Systems … 64


Link for complete documentation: Staging Environment (Full Documentation)

J.6: Staging Environment Testing (Database Connection Results)

Link for complete documentation: Staging Environment db connection

Asset Management System for Database Management Systems … 65


Appendix K: Code

Link to all files: https://github.com/reyTorre/db_ims_final

Asset Management System for Database Management Systems … 66


Appendix L: ZAP Alerts
Alert Affected HTTP
https://db-ims-
Cross Site Scripting module.online/idx_registration.php?qres=%3C%2Fp%3E%3CscrIpt%3Ealert%281%29%3B%3C%2FscRipt%3E%3Cp%3E
https://db-ims-module.online/add_connection_details.php
https://db-ims-
module.online/add_connection_details.php?db_alias=ZAP&host_address=ZAP&orcdb=ZAP&password=ZAP&platform
=MY&port=1&username=ZAP
https://db-ims-module.online/analyze_env.php
https://db-ims-module.online/db_connection_edit.php?q=edit
https://db-ims-module.online/db_connection_edit.php?q=remove
https://db-ims-module.online/home.php
https://db-ims-module.online/idx_recovery.php
Absence of Anti-CSRF Tokens
https://db-ims-module.online/idx_recovery.php?email=foo-bar%40example.com
https://db-ims-module.online/idx_registration.php
https://db-ims-module.online/idx_registration.php?qres=Duplicate%20Email
https://db-ims-module.online/idx_registration.php?qres=Failed%20to%20Sent%20Email
https://db-ims-module.online/idx_registration.php?qres=Invalid%20Email
https://db-ims-module.online/inventory.php
https://db-ims-module.online/logs.php
https://db-ims-module.online/profile.php?qpg=notification
https://db-ims-module.online/profile.php?qpg=profile
https://db-ims-module.online/add_connection_details.php
https://db-ims-
module.online/add_connection_details.php?db_alias=ZAP&host_address=ZAP&orcdb=ZAP&password=ZAP&platform
=MY&port=1&username=ZAP
https://db-ims-module.online/analyze_env.php
https://db-ims-module.online/db_connection_edit.php?q=edit
Application Error Disclosure https://db-ims-module.online/db_connection_edit.php?q=remove
https://db-ims-module.online/home.php
https://db-ims-module.online/inventory.php
https://db-ims-module.online/logs.php
https://db-ims-module.online/profile.php?qpg=notification
https://db-ims-module.online/profile.php?qpg=profile
https://db-ims-module.online/auto_user_action.php?q=login
https://db-ims-module.online
https://db-ims-
module.online/
https://db-ims-module.online/add_connection_details.php
https://db-ims-
module.online/add_connection_details.php?db_alias=ZAP&host_address=ZAP&orcdb=ZAP&password=ZAP&platform
=MY&port=1&username=ZAP
https://db-ims-module.online/analyze_env.php
https://db-ims-module.online/db_connection_edit.php?q=edit
https://db-ims-module.online/db_connection_edit.php?q=remove
https://db-ims-module.online/db_ims-connection-logs-May-25-2022.log
https://db-ims-module.online/favicon.ico
https://db-ims-module.online/home.php
Content Security Policy
https://db-ims-module.online/idx_product_specs.php
(CSP)Header Not Set
https://db-ims-module.online/idx_recovery.php
https://db-ims-module.online/idx_recovery.php?email=foo-bar%40example.com
https://db-ims-module.online/idx_registration.php
https://db-ims-module.online/idx_registration.php?qres=Duplicate%20Email
https://db-ims-module.online/idx_registration.php?qres=Failed%20to%20Sent%20Email
https://db-ims-module.online/idx_registration.php?qres=Invalid%20Email
https://db-ims-module.online/index.php
https://db-ims-module.online/inventory.php
https://db-ims-module.online/logs.php
https://db-ims-module.online/profile.php?qpg=notification
https://db-ims-module.online/profile.php?qpg=profile
https://db-ims-module.online/robots.txt
https://db-ims-module.online/sitemap.xml
https://db-ims-module.online/auto_user_action.php?q=login
https://db-ims-module.online/css/
https://db-ims-module.online/Images/
Directory Browsing
https://db-ims-module.online/js/
https://db-ims-module.online/Styles/

Asset Management System for Database Management Systems … 67


https://db-ims-module.online
https://db-ims-
module.online/
https://db-ims-module.online/add_connection_details.php
https://db-ims-
module.online/add_connection_details.php?db_alias=ZAP&host_address=ZAP&orcdb=ZAP&password=ZAP&platform
=MY&port=1&username=ZAP
https://db-ims-module.online/analyze_env.php
https://db-ims-module.online/db_connection_edit.php?q=edit
https://db-ims-module.online/db_connection_edit.php?q=remove
https://db-ims-module.online/home.php
Missing Anti-
https://db-ims-module.online/idx_product_specs.php
clickjackingHeader
https://db-ims-module.online/idx_recovery.php
https://db-ims-module.online/idx_recovery.php?email=foo-bar%40example.com
https://db-ims-module.online/idx_registration.php
https://db-ims-module.online/idx_registration.php?qres=Duplicate%20Email
https://db-ims-module.online/idx_registration.php?qres=Failed%20to%20Sent%20Email
https://db-ims-module.online/idx_registration.php?qres=Invalid%20Email
https://db-ims-module.online/index.php
https://db-ims-module.online/inventory.php
https://db-ims-module.online/logs.php
https://db-ims-module.online/profile.php?qpg=notification
https://db-ims-module.online/profile.php?qpg=profile
https://db-ims-module.online/auto_user_action.php?q=login
https://db-ims-module.online/auto_user_action.php?q=login
Parameter Tampering
https://db-ims-module.online/auto_user_action.php?q=login
https://db-ims-module.online/auto_user_action.php?q=login
Cookie No HttpOnly Flag
https://db-ims-module.online/auto_user_action.php?q=login
Cookie Without Secure Flag https://db-ims-module.online/home.php
Cookie without SameSite
Attribute https://db-ims-module.online/home.php
https://db-ims-module.online/add_connection_details.php
https://db-ims-
module.online/add_connection_details.php?db_alias=ZAP&host_address=ZAP&orcdb=ZAP&password=ZAP&platform
=MY&port=1&username=ZAP
https://db-ims-module.online/analyze_env.php
https://db-ims-module.online/db_connection_edit.php?q=edit
https://db-ims-module.online/db_connection_edit.php?q=remove
Cross-Domain https://db-ims-module.online/home.php
JavaScriptSource File https://db-ims-module.online/idx_registration.php
Inclusion https://db-ims-module.online/idx_registration.php?qres=Duplicate%20Email
https://db-ims-module.online/idx_registration.php?qres=Failed%20to%20Sent%20Email
https://db-ims-module.online/idx_registration.php?qres=Invalid%20Email
https://db-ims-module.online/inventory.php
https://db-ims-module.online/logs.php
https://db-ims-module.online/profile.php?qpg=notification
https://db-ims-module.online/profile.php?qpg=profile
https://db-ims-module.online
https://db-ims-
module.online/
https://db-ims-module.online/add_connection_details.php
https://db-ims-
module.online/add_connection_details.php?db_alias=ZAP&host_address=ZAP&orcdb=ZAP&password=ZAP&platform
=MY&port=1&username=ZAP
https://db-ims-module.online/analyze_env.php
https://db-ims-module.online/auto_user_action.php?loc=index.php&q=logout
https://db-ims-module.online/db_connection_edit.php?q=edit
https://db-ims-module.online/db_connection_edit.php?q=remove
Server Leaks Information https://db-ims-module.online/home.php
via"X-Powered-By" HTTP https://db-ims-module.online/idx_product_specs.php
Response Header Field(s) https://db-ims-module.online/idx_recovery.php
https://db-ims-module.online/idx_recovery.php?email=foo-bar%40example.com
https://db-ims-module.online/idx_registration.php
https://db-ims-module.online/idx_registration.php?qres=Duplicate%20Email
https://db-ims-module.online/idx_registration.php?qres=Failed%20to%20Sent%20Email
https://db-ims-module.online/idx_registration.php?qres=Invalid%20Email
https://db-ims-module.online/index.php
https://db-ims-module.online/inventory.php
https://db-ims-module.online/logs.php
https://db-ims-module.online/profile.php?qpg=notification
https://db-ims-module.online/profile.php?qpg=profile
https://db-ims-module.online/auto_user_action.php?q=login
https://db-ims-module.online/auto_user_action.php?q=register
Asset Management System for Database Management Systems … 68
https://db-ims-module.online/css/bootstrap.min.css
Timestamp Disclosure - Unix
https://db-ims-module.online/lib/tempusdominus/js/moment-timezone.min.js
https://db-ims-module.online
https://db-ims-
module.online/
https://db-ims-module.online/add_connection_details.php
https://db-ims-
module.online/add_connection_details.php?db_alias=ZAP&host_address=ZAP&orcdb=ZAP&password=ZAP&platform
=MY&port=1&username=ZAP
https://db-ims-module.online/analyze_env.php
https://db-ims-module.online/css/bootstrap.min.css
https://db-ims-module.online/css/connectionform.css
https://db-ims-module.online/css/recoveryform.css
https://db-ims-module.online/css/regform.css
https://db-ims-module.online/css/style.css
https://db-ims-module.online/db_connection_edit.php?q=edit
https://db-ims-module.online/db_connection_edit.php?q=remove
https://db-ims-module.online/home.php
https://db-ims-module.online/idx_product_specs.php
https://db-ims-module.online/idx_recovery.php
https://db-ims-module.online/idx_recovery.php?email=foo-bar%40example.com
https://db-ims-module.online/idx_registration.php
https://db-ims-module.online/idx_registration.php?qres=Duplicate%20Email
https://db-ims-module.online/idx_registration.php?qres=Failed%20to%20Sent%20Email
https://db-ims-module.online/idx_registration.php?qres=Invalid%20Email
https://db-ims-module.online/Images/background_dbims.png
https://db-ims-module.online/Images/dbims_banner.gif
https://db-ims-module.online/Images/dbims_logo.png
https://db-ims-module.online/Images/product_specifications.png
X-Content-Type-
https://db-ims-module.online/Images/step1_adding_db_instance.png
OptionsHeader Missing
https://db-ims-module.online/Images/step2_install_stored_procedure.png
https://db-ims-
module.online/Images/step3_triger_stored_procedure.pnghttps://db-
ims-module.online/Images/step4_display_analysis.png https://db-ims-
module.online/Images/user_profiles/default_profile.png https://db-ims-
module.online/Images/why_dbims.png
https://db-ims-module.online/index.php
https://db-ims-module.online/inventory.php
https://db-ims-module.online/js/auth_user_js.js
https://db-ims-
module.online/js/change_user_js.jshttps://db-
ims-module.online/js/connectdb_js.js
https://db-ims-module.online/js/delete_connection_js.js
https://db-ims-module.online/js/edit_connection.js
https://db-ims-module.online/js/inventory_js.js
https://db-ims-module.online/js/main.js
https://db-ims-module.online/js/recover_email_js.js
https://db-ims-module.online/lib/easing/easing.min.js
https://db-ims-module.online/lib/owlcarousel/assets/owl.carousel.min.css
https://db-ims-module.online/lib/owlcarousel/owl.carousel.min.js
https://db-ims-module.online/lib/tempusdominus/css/tempusdominus-bootstrap-4.min.css
https://db-ims-module.online/lib/tempusdominus/js/moment-timezone.min.js
https://db-ims-module.online/lib/tempusdominus/js/moment.min.js
https://db-ims-module.online/lib/tempusdominus/js/tempusdominus-bootstrap-4.min.js
https://db-ims-module.online/lib/waypoints/waypoints.min.js
https://db-ims-module.online/logs.php
https://db-ims-module.online/profile.php?qpg=notification
https://db-ims-module.online/profile.php?qpg=profile
https://db-ims-module.online/Styles/Stylesheet.css
https://db-ims-module.online/auto_user_action.php?q=login
https://db-ims-
Information Disclosure - module.online/add_connection_details.php?db_alias=ZAP&host_address=ZAP&orcdb=ZAP&password=ZAP&platform
Sensitive Information in =MY&port=1&username=ZAP
URL https://db-ims-module.online/idx_recovery.php?email=foo-bar%40example.com

Asset Management System for Database Management Systems … 69


https://db-ims-
module.online/js/change_user_js.jshttps://db-
ims-module.online/js/connectdb_js.js https://db-
ims-module.online/js/inventory_js.js
Information Disclosure https://db-ims-module.online/lib/tempusdominus/js/moment-timezone.min.js
-Suspicious Comments https://db-ims-module.online/lib/tempusdominus/js/moment.min.js
https://db-ims-module.online/lib/tempusdominus/js/tempusdominus-bootstrap-4.min.js
https://db-ims-module.online/add_connection_details.php
https://db-ims-
module.online/add_connection_details.php?db_alias=ZAP&host_address=ZAP&orcdb=ZAP&password=ZAP&platform
=MY&port=1&username=ZAP
https://db-ims-module.online
https://db-ims-
module.online/
https://db-ims-module.online/idx_product_specs.php
Re-examine Cache-control https://db-ims-module.online/idx_recovery.php
Directives https://db-ims-module.online/idx_recovery.php?email=foo-bar%40example.com
https://db-ims-module.online/idx_registration.php
https://db-ims-module.online/idx_registration.php?qres=Duplicate%20Email
https://db-ims-module.online/idx_registration.php?qres=Failed%20to%20Sent%20Email
https://db-ims-module.online/idx_registration.php?qres=Invalid%20Email
https://db-ims-module.online/index.php
https://db-ims-
module.online/auto_user_action.php?q=login

Asset Management System for Database Management Systems … 70


Appendix L: List of Files

M.1: List of Stored Procedures


No Name Object Name Description Type
Generate Automatically Generate User ID, 32 characters
1 Unique User generate_unique_user_id that must Function
ID not be similar to any User ID
Validate
Validate Email Address. Must follow:
2 Email validate_email Function
[address]@[domain].[com. etc.]
Address
Creates Username following the format:
Generate
3 generate_username USER + (3 digit Count Number) + (3 random Function
Username
number)
Check if
Email check_email_address_exi
Check if Email Address Exists Function
4 Address st
Exists
Insert New Record to User and Email Address
Tables. If Email Address is correct then:
Check if Email exists in Email Address Table
If not exists:
1) Insert generated Username,
Create User generated Password, and generated userid
create_user_record Proceedure
5 Record to the Users table
2) Insert generated userid, Email, and
generated Password to the Email Address
table
Else
Do nothing
Validate
6 Record validate_record_creation Check if create_user_record is successful or not Function
Creation
Automatically Generates 10 character password
Generate
7 generate_initial_password with combination of alphanumeric characters with
Initial Function
a Special Character and Upper Case
Password
Checkdb
check_db_connection_det Check Format IP Address Format, Port Format
8 connection
ails and Platform Function
details
9 Get User ID get_user_id Get User ID using email or Username
Function
Insert New Record to temporary connection
Create
table. Get UserID using user information.
Temporary
10 create_connection_details Get DB to check if the format is ok. Procedure
Connection
Details if UserID =/= NULL and dbCheck is correct:
insert connection details to temporary table
Get
Temporary
11 get_temp_con_id Gets Temporary Connection ID from parameters Function
Connection
ID
Change Updates connection detail status. If
12 Connection change_connection_status 1 --> Change status to Connected, Procedure
Status 0 ---> Change status to Failed
Generate
13 Connection generate_connection_id Generate Permanent Connection ID Function
ID for
Asset Management System for Database Management Systems … 71
Permanent
Table
Transfer
transfer_connection_detail Transfer Connection Details from Temp Table to
14 Connection Procedure
s Permanent Table
Details

15 Create Salt generate_random_string Random Encoded String for salting Function


for Password
Encypted
16 get_salted_password Extract Password from Database Function
Password

Edit
17 edit_connection_details Procedure
Connection Edit Connection Details
Details
Delete
remove_connection_detail
18 Connection Delete Connection Details Procedure
s
Details
Get
Username get_username_and_pass Get Username and Password from Users using
19 Procedure
and word email address
Password
20 Delete User remove_user Delete user from database Procedure
Remove
remove_temporary_conne
21 Temp Remove Temporary Connection ID Procedure
ction_details
Connection
Transfer to
transfer_to_permanent_co Copy Temporary Connection details and create a
22 Permanent Procedure
nnection_details permanent connection
Connection
Get New
23 get_new_password Get Password Details Function
Password
Rename db
24 rename_db_connection Rename Permanent Connection Details Procedure
Connection
Get uptime Get current uptime cycle for SQL Server
25 get_uptime_cycle Function
Cycle Connection
Deactivate Change Uptime Status from 'A' (Active) to 'X'
26 sp_deactive_other_uptime Procedure
other uptime (Deactivated)
App Uptime
27 sp_add_uptime_check Add Uptime Record Procedure
Check
Validate
28 Uptime sp_validate_uptime_check Verify if uptime > db uptime Procedure
Check
Check Lastdb check if latest and uptime follows a chronological
29 sp_check_last_db_uptime Procedure
Uptime flow in inserting records
Validate
validate and executes procedures when
30 Uptime validate_uptime_records Procedure
conidtions are met
Records
Add
sp_add_database_statuse
31 Database Add SQL Server database statuses Procedure
s
Statuses
Update
sp_update_database_deta Update JSON field for SQL Server uptime
32 Database Procedure
ils records
Details
De-jsonify
dejson_current_uptime_re
33 Uptime De-jsonify SQL Server uptime record Procedure
cords
Records
Insert Max insert_db_max_connection Extract and record Max Connection Record for
34 Procedure
Connection _details SQL Server

Asset Management System for Database Management Systems … 72


Stage
35 Breakdown stage_breakdown_logs Extract and record Connections for SQL Server Procedure
Logs
SP Log to
sp_log_to_systems_log_tb
36 System log Record System Logs Procedure
l
table

37 Stored SP sp_store_to_sp_history Procedure


Record SP History
History
Get active Extract and record all active sessions for SQL
38 sp_get_active_sessions Procedure
Sessions Server
Get
sp_get_breakdown_conne Extract and record all connections for SQL
39 Breakdown Procedure
ctions Server
Connections
Get Table
40 fxn_get_tbl_name Get corresponding table name from SP Function
Name
Table
41 Get corresponding table name from SP and Procedure
Reference sp_table_reference
Platform
Mask
42 Function
Password fxn_mask_password Mask Password upon display to front end
Insert Uptime
43 Procedure
Status sp_insert_status Record Uptime Status
Get
44 Get Username from UserID Function
Username get_username
Generate
Growth rate generate_growthrate_back
45 Create Pivot Table for Growth Rate Procedure
Backup Pivot _up_pivot_tbl
Table
Convert To
46 fxn_convert_to_bytes Convert Memory String to bytes Function
Bytes
Log Py DB Log Python SP Response Time and pyodbc
47 sp_log_py_db_details Procedure
Details details
Get Database Version
Get
48 fx_get_db_version MS: substring to nearest '-' PG: substring to Function
Database
nearest ',' Others: Get the actual version
Version
Update User Update User password and salt using email
49 update_user_password Procedure
password address as indicator
Generate Job
sp_create_default_job_co Populate DBIMS jobs table with default
50 Default Procedure
nfiguration configuration
Configuration
Get
Unchecked get_unchecked_installatio
51 Check Job installation Status Function
Installation n_status
Status
Alter Job
alter_job_installation_statu Update installation status to Uninstalled if (A or
52 Installation Procedure
s N) else Installed
Status
Get Number
get_number_of_unchecke
53 of Unchecked Get Number of Unchecked jobs Function
d_status
Status
Decipher Outputs scheduled or occurrence values from
54 fx_decipher_datastring Function
Data string data string
Convert
sp_convert_occurance_str Changes Scheduling Occurrence to its table
55 Occurrence Procedure
_to_tbl equivalence
String to table
Check Time Validates if Time Format is correct (Frequency
56 fx_check_time_format Function
Format [FQ] or ST [Set Time])

Asset Management System for Database Management Systems … 73


Extract
fx_extract_number_from_s Converts Time string to its Integer Equivalence
57 Number from Function
tring by parts
String
Convert
58 fx_convert_string_to_time Converts Time string to its time equivalence Function
String to time
Convert
sp_convert_time_str_to_tb
59 String to Converts Time String to its table equivalence Procedure
l
Table
Update Job sp_update_job_configurati
60 Update Job Configuration Procedure
Configuration on
Update Last
61 update_last_run Update Job with last run Procedure
Run
Populate
sp_populate_automated_t Populate Automated Table for reference during
62 Automated Procedure
bl automated run
Table
Get Priority
63 fx_get_priority_queue Get top most list for automated run Function
Queue
Generate
Notification generate_notification_id Generate Notification ID Function
64
ID
Get User ID
from get_user_id_from_con_stri
65 Get Userd ID from db_con_string_id Function
Connection ng
String
Update
66 sp_update_user_name Update Username Procedure
Username
Archive
archive_connection_detail Delete all records from a platform using db con
67 Connection Procedure
s string id
Details
Oracle
68 Record or_record_connections Insert Connection Records for Oracle Procedure
Connections
Oracle
69 Instance or_instance_information Insert Instance Information for Oracle Procedure
Information
Get
70 get_user_name Get Username from UserID Procedure
Username
Read All
71 sp_read_all set all notifications to read Procedure
Notifications
Generate
72 generate_sql_id Create SQL ID to link to DE-JSONIFIED table Function
SQL ID

M.2: List of Views


No Object name Description
1 vw_userinfo Displays complete user information
2 vw_db_connection_details_complete Displays db connection along with user information
3 vw_db_connection_details_temporary Displays temporary db connection along with user
information
4 vw_table_details table details extract from local database information schema
5 vw_uptime_check Displays uptime connection details
6 vw_sql_connection_details Displays most recent connection details extract from SQL
Server
7 vw_sql_backup_growth_rate_six_months displays the backup growthrate for the last six months
8 vw_sql_database_growth_rate_90_days displays the growth rate for the last 90 days
9 vw_db_uptime_logs_graph displays uptime data to be translated to a line graph
Asset Management System for Database Management Systems … 74
10 vw_db_status_check displays SQL Server database statuses
11 vw_job_status_history displays SQL Server job history
12 vw_sql_server_memory_capacity aggregates data to the most recent sever memory for SQL
SERVER
13 vw_sql_db_logs_cap displays log capacity for SQL SERVER
14 vw_sql_db_logs_cap_size_comp displays log capacity in percentage for SQL SERVER
15 vw_sql_backup_details displays SQL SERVER backup details
16 vw_pg_connection_details displays the most recent connection statistics for Postgres
17 vw_pg_longest_running_queries displays the top 3 longest running queries for Postgres
18 vw_pg_active_sessions displays Postgres active sessions
19 vw_pg_cache_hit_ratio_and_memory displays critical hit ratio for indexes and tables (Postgres)
20 vw_pg_tbl_index_sizes displays table index sizes for Postgres
21 vw_pg_tbl_cache_hit_ratio_below_80 displays cache hit ratio below 80 percent (table) for
Postgres
22 vw_pg_idx_cache_hit_ratio_below_80 displays cache hit ratio below 80 percent (index) for
Postgres
23 vw_pg_vacuum_summary displays vacuum summary for Postgres
24 vw_pg_inherentance_map displays Postgres role and inheritance map
25 chk_db_status_per_ten_mins check database status every ten minutes
26 db_ims_job_summary DB IMS job summary
27 vw_db_invetory displays database inventory for all platforms
28 vw_sql_job_summary displays SQL SERVER DB IMS job status
29 vw_pg_job_summary displays Postgres DB IMS job status
30 vw_mysql_job_summary displays MySQL DB IMS job status
31 vw_oracle_job_summary displays Oracle DB IMS job status
32 vw_monitoring_details displays monitornig details per platform and job
33 vw_mysql_to_py_steps Converts mysql tsql to py function step
34 vw_job_reference_tbl displays monitornig details per platform and job
35 vw_job_reference_tbl_filtered_view filters jobs to be executed (automation)
36 vw_all_con_details reference table jobs, database conenction and user
37 notify_user displays notifications for user
38 vw_db_invetory_summary displays inventory summary for all platforms
39 vw_my_connection_details displays latest connection details for MySQL
40 table_size_and_index_info displays table size and index information for MySQL
41 vw_my_active_sessions displays active sessions for MySQL
42 vw_or_connection_details displays latest connection details for Oracle
43 vw_check_read_notif provides a tag for read and unread notifications

Asset Management System for Database Management Systems … 75

You might also like