/*! \page install_postgresql Install and Configure PostgreSQL
\section install_post_over Overview
In a multi-user case, a central PostgreSQL database server is used instead of the embedded SQLite databases.
A new database will be created for each case and the database will be stored on the local drive.
You should ensure that the database folder is backed up.
\section install_post_install Installation
To install PostgreSQL, perform the following steps:
1. Download a 64-bit PostgreSQL installer from http://www.enterprisedb.com/products-services-training/pgdownload#windows Choose the one that says _Win X86-64_. Autopsy has been tested with PostgreSQL version 9.5.
2. Run the installer. The name will be similar to _postgresql-9.5.3-1-windows-x64.exe_.
3. You may accept defaults for all items except for the password as you work through the wizard. Do not lose the password you enter in. This is the PostgreSQL administrator login password.
4. You do not need to launch the StackBuilder nor acquire any more software from it. Uncheck the option to use StackBuilder and press _Finish_.
\section install_post_config Configuration
1. Create a regular database user account that Autopsy will use. You can do this with either of two methods, graphically, or command line. We cover graphically here.
- Use the pgAdmin III tool and login with the PostgreSQL administrator login.
- Right click on "Login Roles" and select "New Login Role..." as shown below:
\image html pgAdmin.PNG
- Enter the user name you would like to use in the "Role name" field.
\image html newLoginRole.PNG
- Enter the password on the "Definition" tab.
\image html newPassword.PNG
- Check "Can create databases" on the "Role Privileges" tab.
\image html newRights.PNG
- Click "OK".
2. Edit C:\\Program Files\\PostgreSQL\\9.5\\data\\pg_hba.conf to add an entry to allow external computers to connect via the network.
First, find your machine's IPv4 address and Subnet Mask (Press _Start_, type _cmd_, type _ipconfig_ and parse the results. The IP address is shown in yellow below.
\image html postgresqlinstall3.PNG
The following is an example rule that allows all clients on the 10.10.192.x subnet to connect using md5 authentication.
> host all all 10.10.192.0/24 md5
__Subnet Mask Rules of thumb:__
- If your Subnet Mask is 255.255.0.0, your rule should look like this: A.B.0.0/16, where A is the first octet in your IP address and B is the second octet.
- If your Subnet Mask is 255.255.255.0, your rule should look like this: A.B.C.0/24, where A is the first octet in your IP address, B is the second octet, and C is the third octet.
Add the line highlighted in yellow below, formatted with spaces between the entries, adjusting the IP address to an appropriate value as described above.
\image html postgresqlinstall4.PNG
If you intend to use PostgreSQL from machines on a different subnet, you need an entry in the _pg_hba.conf_ file for each subnet.
3. Uncomment the following entires in the configuration file located at C:\\Program Files\\PostgreSQL\\9.5\\data\\postgresql.conf by removing the leading "#", and change their values "off" as shown below.
> fsync = off
> synchronous_commit = off
> full_page_writes = off
Pictorially, change the following, from this:
\image html postgresqlinstall5.PNG
To this:
\image html postgresqlinstall6.PNG
Note the removal of the leading number symbol-this uncomments that entry.
4. Still in "C:\Program Files\PostgreSQL\9.5\data\postgresql.conf", find the entry named _max_connections_ and set it to the number of suggested connections for your configuration. A rule of thumb is add 100 connections for each Automated Ingest Node and 100 connections for each Reviewer node you plan to have in the network. See the screenshot below.
\image html maxConnections.PNG
5. Restart the service via the Services panel by pressing _Start_, type _services.msc_, and press _Enter_. Select _postgresql-x64-9.5_ in the services list and click the link that says _Stop the service_. If you want PostgreSQL to run as a different user (you don't need to), then make that change now. When done, click the link that says _Start the service_ as shown in the screenshot below.
\image html postgresqlinstall7.PNG
\section install_post_test Testing
You can verify that PostgreSQL is running by using either the _pgAdmin_ tool or the _psql_ tool to connect to the database server from another machine on the network.
Common problems are from:
- Firewall blocking the ports on the PostgreSQL server
- Incorrect credentials
- Wrong IP address range in the configuration file
\section install_post_backup Backing Up
The database are stored on the local drive (not shared storage). So, you should backup that directory periodically.
The default location is XYZ.
*/