# Integrate Microsoft Azure for PostgreSQL with Databox

Azure Database for PostgreSQL is a fully managed relational database service built on the PostgreSQL community edition. It handles provisioning, patching, backups, and scaling automatically, and is available in two deployment modes: Flexible Server and Single Server. Connecting Azure Database for PostgreSQL to Databox lets you pull data directly from your managed database, build datasets using SQL queries, and visualize business-critical figures alongside data from your other connected tools.

## Connection

If you've already established a connection, you can [reuse](/add-a-data-source) it to add new data sources to your Databox account.

### Step 1: Create a read-only PostgreSQL role for Databox

Databox only reads data from your database — it never writes to it. Create a dedicated PostgreSQL role with `SELECT`-only privileges on the schemas and tables you want to expose. You can run these commands using the **Query editor** in the Azure portal, or via a PostgreSQL client connected to your instance.


```sql
CREATE ROLE databox WITH LOGIN PASSWORD 'your_secure_password';
GRANT CONNECT ON DATABASE your_database TO databox;
GRANT USAGE ON SCHEMA public TO databox;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO databox;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO databox;
```

Replace `your_database` with the name of the database you want to connect, and `your_secure_password` with a strong password. If you need to expose tables in additional schemas, repeat the `GRANT USAGE` and `GRANT SELECT` statements for each schema.

Avoid the following special characters in your password, as they can cause encoding issues when establishing the connection: ```, `'`, `"`, `/`, `\`, and spaces.

### Step 2: Enable public access on your Azure PostgreSQL instance

Databox connects to Azure Database for PostgreSQL over a public endpoint. The steps differ depending on whether you are using Flexible Server or Single Server.

**Flexible Server:**

1. In the [Azure portal](https://portal.azure.com), go to your Azure Database for PostgreSQL Flexible Server resource.
2. Under **Settings**, click **Networking**.
3. Under **Connectivity method**, select **Public access (allowed IP addresses)**.
4. Click **Save** to apply the change.


**Single Server:**

1. In the [Azure portal](https://portal.azure.com), go to your Azure Database for PostgreSQL Single Server resource.
2. Under **Settings**, click **Connection security**.
3. Set **Allow access to Azure services** to **No** (unless required for other integrations).
4. Confirm that **Public access** is enabled. If not, enable it and click **Save**.


The server's fully qualified hostname is shown on the **Overview** page of your instance (e.g., `myserver.postgres.database.azure.com`). Copy this value — you will need it in [Step 4](#step-4-enter-your-azure-postgresql-connection-details-in-databox).

### Step 3: Add the Databox IP to your firewall rules

Azure Database for PostgreSQL uses firewall rules to control inbound network access. Add a rule that permits connections from the Databox IP address.

**Flexible Server:**

1. In the [Azure portal](https://portal.azure.com), go to your Flexible Server resource.
2. Under **Settings**, click **Networking**.
3. Under **Firewall rules**, click **Add current client IP address** or click **Add firewall rule** to enter a custom range.
4. Set the **Start IP address** and **End IP address** both to `52.4.198.118`.
5. Give the rule a name (e.g., `Databox`) and click **Save**.


**Single Server:**

1. In the [Azure portal](https://portal.azure.com), go to your Single Server resource.
2. Under **Settings**, click **Connection security**.
3. Under **Firewall rules**, click **Add client IP** or enter values manually:
  - **Rule name**: `Databox`
  - **Start IP**: `52.4.198.118`
  - **End IP**: `52.4.198.118`
4. Click **Save**.


### Step 4: Enter your Azure PostgreSQL connection details in Databox

1. In Databox, go to **Data Sources > + New connection**.
2. Search for **Microsoft Azure for PostgreSQL** and click **Connect**.
3. Fill in the connection form:
  - **Data source name** — a label for this connection in Databox.
  - **Host** — the fully qualified server name of your Azure PostgreSQL instance, found on the **Overview** page in the Azure portal (e.g., `myserver.postgres.database.azure.com`).
  - **Port** — the port your instance listens on. The default for Azure Database for PostgreSQL is `5432`.
  - **User** — the PostgreSQL role name created in [Step 1](#step-1-create-a-read-only-postgresql-role-for-databox). For Flexible Server, use the plain role name (e.g., `databox`). For Single Server, Azure requires the format `username@servername` (e.g., `databox@myserver`).
  - **Password** — the password for that role.
  - **Database name** (optional) — the specific database to connect to. Leave blank to connect at the server level.
  - **Timezone** — the time zone used to interpret date values in query results. Defaults to `Etc/UTC`.
4. Toggle **Use SSL/TLS** to enable encrypted connections.
5. Click **Connect**.


connect
## Datasets

The Microsoft Azure for PostgreSQL integration supports the creation of [datasets](/understanding-datasets), which allow you to define and shape the specific data you want to use for reporting in Databox. Datasets make it easier to focus on the most relevant information, enabling you to filter, visualize, and analyze metrics across projects, teams, and clients without writing complex queries each time.

### Steps to create a dataset

1. **Select a table**: Pick the appropriate schema within that database.
2. **Select columns**: Browse and select the specific columns (fields) from your tables or views to include in your dataset. These columns define the structure and content of your dataset.


### Optional: Write SQL

For more advanced use cases, you can write a **custom SQL query** instead of selecting columns manually. This allows you to:

- Join multiple tables
- Apply filters and aggregations
- Format or transform data before importing it into Databox


Your query must return a valid tabular result to be used as a dataset.

### Additional resources

- [Azure Database for PostgreSQL documentation](https://learn.microsoft.com/en-us/azure/postgresql/) — Official Microsoft docs for Azure Database for PostgreSQL, covering Flexible Server and Single Server deployment modes, connectivity, security, backups, high availability, and monitoring.
- [Azure Database for PostgreSQL Flexible Server networking overview](https://learn.microsoft.com/en-us/azure/postgresql/flexible-server/concepts-networking) — Guidance on public access, private access (VNet integration), and firewall rule configuration for Flexible Server.


## Resources

For comprehensive details on metrics, data availability, templates, specifications, usage guidelines, and other key information, refer to the resources listed below.

No. Databox connects to Azure Database for PostgreSQL using standard PostgreSQL username and password authentication. Azure Active Directory (Microsoft Entra ID) authentication is not supported. Make sure the role you create in [Step 1](#step-1-create-a-read-only-postgresql-role-for-databox) uses standard PostgreSQL authentication, not Azure AD authentication.

Check the following in order:

1. **Public access** is enabled on the instance (under **Networking** for Flexible Server, or **Connection security** for Single Server).
2. A **firewall rule** exists with both start and end IP set to `52.4.198.118`.
3. The PostgreSQL role was created with `LOGIN` privileges and the correct password.
4. You are using the correct username format for your deployment mode (see below).


The required format depends on your deployment mode. Flexible Server accepts plain role names (e.g., `databox`). Single Server requires the format `username@servername` (e.g., `databox@myserver`), where `myserver` is the part of your hostname before `.postgres.database.azure.com`. If the connection fails with an authentication error, check that you are using the correct format for your deployment mode.

 

Ask Genie
Get instant answers or help with your data using the in-app AI assistant.

Talk to an expert
For customers: Get help with your setup, strategy, or making the most of Databox.

Book a demo
New to Databox? See how it works and get guidance on getting started.

Send an email
Reach out to support for help with your account, data, or technical issues.