NOVAQUANTUM ARMS

ARMS Documentation

Security-Focused!


ARMS successfully minimizes the risk of third-party intrusions by using a proprietary encryption algorithm that ensures true end-to-end security when accessing data. There is no weak link


ARMS has been designed from the ground up with security in mind passing stringent security auditing processes, performed by industry certified security auditors.

Introduction

 

ARMS is an on-line Database management system with a rich client like interface that allows you to manage MySql databases easily. This guide will help you to get started with all the features provided by ARMS.


ARMS is very user friendly and you will quickly discover that it uses standard web navigation functions, such as right-clicking on menu items.


The simplest way to get comfortable with the application is to play around with it for a few minutes. The functions are very easy to use, and you can find more details about all the features in the following sections of this User Guide.

 

Proxy Setup & Testing

 

Please note that the following prerequisites are mandatory in order to run ARMS :

Client side:

  • You will need to have at least the following version of one of the following browsers: Firefox 2.x, Chrome 1.x, Safari 3.x, IE 7.x and Opera 8.x with JavaScript enabled
  • Special note for Opera Users: you must enable the option "Allow scripts to detect context menu events" located under "Tools > Preferences > Advanced > Content > Javascript Options".

 

Server Side (proxy):

  • ARMS can manage any MySQL Server version 4.x or above.
  • In order to run the small PHP script that we provide, you will need to have any web server that would work with PHP and has the PUT method enabled. (Apache 2.x web server is recommended). By default, 99% of the web hosting providers meet this requirement, but we have discovered at least one (FatCow.com) that did not allow the PUT method, so please make sure your hosting provider supports it!
  • The web server needs to be visible from Internet and must have direct connectivity to the MySql server that is managed by ARMS (your MySQL server can be behind a firewall, but as long as the web server running our PHP script has connectivity to it, the application will work).
  • PHP 5 with CURL and MySQLi support and magic_quotes_gpc turned off.
  • IonCube support (our PHP script is encoded with IonCube, so you will have to contact your web hosting provider to make sure they can enable it on your account)
  • myslqdump, zip, unzip utilities should be installed and accessible directly (it must be declared in the system PATH variable) on the remote system.

Step by step installation (please make sure that all the prerequisites are met before going forward):


1. Create a new directory anywhere within your website tree and name it something like 'proxyarms'.

The newly created directory must be owned by the user your web server is running as and permissions must be set to 755.


2. Download [link provided in the welcome email] and unzip all the files contained under the directory created at the previous step.


3. Edit “arms_conf.php” file and set your database credentials and the communication key you received.

Here is the content of the configuration file:

<?php

// Connection parameters


//This the server name where MYSQL is running. It can be any server name or IP that you have DIRECT access!
$Host = "localhost";


// A username with enough rights to manage the DBs; please note that this should be a MySQL username, not a system account or the ARMS login account!
$User = "YOUR username";


//The password for the user mentioned above.

$Password = "Database password";


// Security key

//This is the KEY received when you purchased ARMS. You must use the same KEY for any installations of the script.
$key = "xxxxxxxxxx";

?>


>> Repeat steps 1-3 for all the servers you want to manage through ARMS.<<


4. Login to your ARMS account and select "Database Servers" from the context menu (right click on any server name).

Add all the servers that you want to manage with ARMS by typing the full URL of the location of the PHP script you have installed in step 2.

(i.e :http://www.yourdomain.com/proxy/)


proxy servers



After you finished the setup please test your configuration by selecting "Test Server" under the context menu in DB Hosts tree.

You should see a screen like this:


test info

We have done extensive testing on a variety of web hosting providers and below you can find some of our tips for each of them. Please note that this information is bound to change very fast, as the hosting providers upgrade their systems and change configurations, so your best bet is to try to contact them in order to make sure you meet the above mentioned prerequisites.


www.fatcow.com

  • They don't support the PUT method for Apache, so please DO NOT USE THEM, as ARMS will not work!
  • Fatcow is part of VERIO group of companies, so maybe all the VERIO companies don't support this mandatory requirement to run ARMS. Double check your web hosting provider!

www.bluehost.com

  • They don't seem to support Triggers
  • Use CPanel to configure the usage of PHP5 and IonCube Loader, no manual configuration required, just from Cpanel!

www.godaddy.com :

  • They don't seem to support Triggers and Functions
  • Create a file php5.ini in the root folder that contains:

"zend_extension = your.complete.home.path/html/proxy/ioncube/ioncube_loader_lin_5.2.so

[Zend]

zend_extension=/usr/local/zo/ZendExtensionManager.so

zend_extension=/usr/local/zo/4_3/ZendOptimizer.so"

  • Upload the IonCube loader in the "/proxy/ioncube" (this is just an example of the folder name, can be any name) folder

www.hostmonster.com:

  • They don't seem to support Triggers
  • Use CPanel to configure the usage of PHP5 and Ioncube Loader, no manual configuration required, just from Cpanel!

www.ixwebhosting.com:

  • They don't seem to support Triggers
  • Edit your.domain/cgi-bin/php.ini to contain:

[PHP]

magic_quotes_gpc = 0

[Zend]

zend_extension = /your.full.home/path/proxy/ioncube/ioncube_loader_lin_5.2.so

zend_extension_manager.optimizer = /usr/local/Zend/lib/Optimizer-3.3.3

zend_extension_manager.optimizer_ts = /usr/local/Zend/lib/Optimizer_TS-3.3.3

zend_optimizer.version = 3.3.3

zend_extension = /usr/local/Zend/lib/ZendExtensionManager.so

zend_extension_ts = /usr/local/Zend/lib/ZendExtensionManager_TS.so

  • The IonCube loader MUST be uploaded to a directory (/proxy/ioncube in the example above)

www.hostgator.com:

Our favorite web hosting provider works perfect with no changes to their default settings!


www.1and1.com:

  • They don't seem to support Triggers
  • You have to add a ".htaccess" file in the directory where the PHP is installed that contains : "AddType x-mapp-php5 .php"
  • You have to edit php.ini to contain the IonCube loader(the actual loader must be UPLOADED to "ioncube" folder) :

zend_extension = /your.home.page/ioncube/ioncube_loader_lin_5.2.so

[Zend]

zend_optimizer.optimization_level=15

magic_quotes_gpc =off"


Creating a Database

 

To create a new database under a selected MySQL server available from the list, simply right click on the server name and choose “Create Database”. You'll need then to choose a name for the new database, the character set and collation associated with this DB.


create db


Please note that most of the shared Web hosting providers do NOT allow you to directly create DBs and you MUST use their Control Panel in order to create any NEW database.

In this case you will notice an error 1044: “Access denied for user “xxx@locahost” to create the database “testing”.


error 1044

There is nothing we can do to bypass this limitation, as the web hosting providers treat the creation of any new DB as a security risk and they want to have full control over the number of DBs created.


If you have a dedicated server or a Virtual Private Server, then this limitation does not apply to you.

Using the SQL Panel

 

The “New SQL panel” function can be accessed by right-clicking any object located under a particular MySQL server. This option will open a new tab where you can enter any SQL commands as in a normal SQL console.

Multiple queries can be executed, by simply separating them with “;”.


A special mention is required for this functionality: it is possible to highlight and select only one query to be executed, although in the panel there is more than one query typed. At the same time when a more complex script has been typed or paste in the panel, you can select to run only certain portions of it, by highlighting the selection required and pressing the “Run” button.


multiple queries


A query run within the SQL panel will populate the results within the results panel right below the SQL panel.

In case of multiple queries, the “Result” panel will show only the number of affected rows and not the actual data for each query. To see the individual results for each query you need to highlight and run each query separately.

 

multiple queries


To run SQL panel with predefined queries you need to right-click on a table and select the “New SQL panel with predefined queries” option, this will bring up the query selection list with predefined SQL statements skeleton for select table, update table, insert into table and delete from table. The predefined column names can then be replaced and the query can be run against them.


predefined sql

Creating a Table

 

Once a database is created you will be ready to create tables and start managing them. To create a table right click on the database and choose “Create Table”.

Below is a snapshot of the "Create Table" panel.

 

create table


When you are happy with the field names and the types selected simply click "Save" to save the table. Once saved it will show up under the database selected in the first place. The snapshot below shows testingTable being successfully created.


table created


The only mandatory field is the “Table name” and at least one field.

If more fields are required, you can use the “Insert” button to add as many fields as required.

In order to save the newly created table, you have to click the “Save” button. For more experienced users, there is an option to see the SQL query that would be used to create the new table, by pressing the “View SQL” button from the top-right side of the panel.

Altering a Table

 

The “Alter Table” option from the tree menu allows for modifying table structure and keys/indexes contained in an existing table. You can also add new columns or delete existing fields.

The panel is quite easy to use and it has the same functionality as the “Create Table” panel.


alter table



Once you are happy with the changes made, click “Save” to save and alter table. Alternatively, tables can be altered via the SQL panel by running the predefinied “alter table” query.

Deleting one or more columns from the table definition will affect directly any key/index that is using those columns. All affected keys/indexes will be recreated to match the new table structure.

Use 'View SQL' to generate and view the SQL code before saving, either to make sure that it is what you really want or to use the query in the future.


Creating and managing the indexes/keys

A new key can be created by typing a new name for it in the “New key” field and clicking the “Add” button.

The “Keys/Indexes” button will allow you to mange all the keys already created by setting their columns, length and order. By using the drag-and-drop functionality, the proper order of the keys can be set up easily. Please note that any changes made in during this step must be saved by pressing the “Save” button.

If you make a mistake and want to revert to the settings previously saved, the “Reset all” button can be used. This function will reset all the fields, not only the keys, to the previously saved configuration.


key management

Searching/filtering records within tables


Once you open a table you will notice the “Search for” field that can be used to search and filter the records within tables.

The default filter will show all the records available in the table. The drop-down menu that contains the logical operators for filtering is self explanatory but a special mention is required for the operator “like”.

This special keyword has the functionality of the “OR” operator including by default any character before and after the string filtered. Here is a simple example:

A search for all the fields that contain the string 2122 woul look like this: “search for Everything like 2122”. This is equivalent to “search for Everything %2122% “

The snapshot below shows an example of using the search filters:


search sample

View/Edit Table Data


To insert records into the table, open a table by double-clicking the table name in the tree and then click on the “Add Record” button. Also the SQL panel can be used to insert and delete records. Similarly, to delete a record from an existing table open the table and click on the row to be deleted and click on “Delete Selection” button. Multiple rows can be deleted by selecting multiple rows and click on the "Delete" button.


add records

To revert any changes made but not already saved, you can press the “Reset” button but please note that you CANNOT revert any "Delete" actions.

Creating and editing Routines/Views


Creating and editing Functions

To create a function you need to right-click on any database name and choose the “Create function” option. This option will open a SQL panel that will have a simple example of a function.

By pressing the “Run” button you will create and save the function.

Please note that you will need to manually (CTRL-E) refresh the objects under the “Functions” menu in order to see the newly created function in the menu tree.


create function

In order to edit an existing function you need to double-click on the function name.


Creating and editing Stored Procedures

To create a stored procedure you need to right-click on any database name and choose the “Create stored procedure” option. This option will open a SQL panel that will have a simple example of a stored procedure. By pressing the “Run” button you will create and save the stored procedure.

Please note that you will need to manually (CTRL-E) refresh the objects under “Stored Procedures” menu in order to see the newly created procedure in the menu tree.


In order to edit an existing stored procedure you need to double-click on the stored procedure name.


create sp


Creating and editing Triggers

To create a trigger you need to right-click on any database name and choose the “Create trigger” option. This option will open a SQL panel that will have a simple example of a trigger. By pressing the “Run” button you will create and save the trigger.

Please note that you will need to manually (CTRL-E) refresh the objects under “Triggers” menu in order to see the newly created trigger in the menu tree.


In order to edit an existing trigger you need to double-click on the trigger name.


create trigger


Creating and editing Views

To create a view you need to right-click on any database name and choose the “Create view” option. This option will open a SQL panel that will have a simple example of a view. By pressing the “Run” button you will create and save the view.

Please note that you will need to manually (CTRL-E) refresh the objects under “Views” menu in order to see the newly created view in the menu tree.


In order to edit any view you need to right-click on the name of the view and choose “Edit view” option. A normal double-click on any view will execute the view.

 

create view

Selecting Objects


You can use the normal CTRL, SHIFT (or their equivalent on Mac) keys in order to select multiple objects in the trees or in the panels.

The multiple selection feature is very useful when multiple objects need to be deleted, copied or for back-up purposes.


select objects


select objects2


Please note that you cannot select multiple tables from different databases or multiple databases located on different servers.

Deleting Objects


You can delete any object located in the menu tree by simply pressing the DEL key or right-clicking on the object and then choosing the “Delete” option.

Please note that ANY "Delete" action is irreversible and permanent, the only way of restoring the data would be a full restore of the database that was affected.


delete object

Copy/Paste functionality

 

The copy/paste functionality is a very powerful feature of ARMS due to its flexibility to perform between different servers.

In order to copy a database from one server to another, all you need to do is to right-click the chosen database, choose the copy options that make sense for your needs (or leave the default values that are good for most users), and press the “Copy!” button. At this point your choice has been recorded and you'll notice a “Paste” option that will be enabled only when you are in the context of another MySql server.


copy table


paste table


By using CTRL and/or SHIFT key you can select multiple databases to be copied/pasted.

 

When you select a table (or multiple tables) to be copied, you can paste it on the same server, under a different database, or on a different server altogether.

By default, the copy/paste option will include all the data from the database(s) or table(s) selected, so make sure that this is your intent before executing the procedure. You can choose in the “Copy” option to copy only the structure, without any data.

Backup/restore functionality

 

All of your databases, multiple tables or individual tables can be backed up and stored for future use. The process of backing up a database or table is as simple as right-clicking on the database to be backed up, selecting the various options that make sense for your particular needs, and clicking on “Backup”.

This will create a backup which can be viewed and managed by again right-clicking on the database and selecting the restore/manage backups option.


backup table


Backups can be downloaded by right clicking on the backup name and selecting from the options listed, alternatively you can select the backup and use the buttons listed above.

Similarly, individual tables or multiple tables can be backed up at once following the same process as explained above.

The backup files are stored in a password protected zip file, using the same password as the communication key that was provided to you when you set up the account with ARMS.

In order to restore any other backup from another source, the dump must be in a zip format either protected or not by a password. We strongly recommend using a password for any archive created outside of ARMS, and in order for ARMS to use it, it must be the same as the communication key provided to you.

The backups generated by ARMS on any server are interchangeable, so you can move/copy them from one server to another (by using FTP) without any further changes.

The screenshot below shows the available backups available for restore or for download on the test server SRV2:


restore backup

Miscellaneous

 

Refresh Object feature

The “Refresh Object” feature should be used when a query is manually executed and it affects the structure of the database, i.e when creating a function/trigger/stored procedure or when you manually create/delete a table.

 

Object properties

The “Properties” option that appears in some contexts when you right-click on an object is used in general to display certain information about the selected object:

-when the object selected is a server, the “Property grid” tab will display all the configuration variables for that server:


server properties


-when the object selected is a table the “Property grid” tab will display all the configuration options for that table.

The table properties panel is split into two tabs called the Details and Property Grid.


table properties


 

The “Details” tab will show the SQL query that was used to create that particular table.


details table info


Testing the server

Test Server function brings up the server information dialogue. This will help you to make sure that the server configuration environment is correctly configured in order to run the application smoothly.


server info

 

Copyright 2010 NovaQuantum ARMS