> For the complete documentation index, see [llms.txt](https://docs.ovaledge.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ovaledge.com/release8.1/connectors/connector-repositories/rdbms/azure-sql-database.md).

# Azure SQL Database

This article outlines the integration with the Azure SQL Database connector, enabling streamlined metadata management through features such as crawling, profiling, querying, data preview, and lineage building (both automatic and manual). The connector crawls Azure SQL Database metadata and maps it to the corresponding Data Catalog assets. It also supports automatic lineage generation through source code parsing.

The connector uses JDBC to communicate with Azure SQL Database for metadata extraction and supported connector operations. Access to database objects is established using a service account with the required permissions, allowing the connector to retrieve metadata from the configured database.

<figure><img src="https://1121831267-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFZv5WsZmBfXjiJfMU2zR%2Fuploads%2FrXc2kSlkVXEaKnxWALym%2Fimage.png?alt=media&amp;token=3aa98881-f3bb-4023-bd29-749d8dc1d86a" alt=""><figcaption></figcaption></figure>

## Overview

### Connector Details

| Connector Category                                                                     | RDBMS                  |
| -------------------------------------------------------------------------------------- | ---------------------- |
| OvalEdge Release Supported                                                             | Release6.3.x and later |
| <p>Connectivity</p><p>\[How the connection is established with Azure SQL Database]</p> | JDBC driver            |
| Verified Azure SQL Database Version                                                    | Above SQL Server 2005  |

{% hint style="info" %}
The Azure SQL Database connector has been validated with the mentioned "Verified Azure SQL Database Versions" and is expected to be compatible with other supported Azure SQL Database versions. If there are any issues with validation or metadata crawling, please submit a support ticket for investigation and feedback.
{% endhint %}

### Connector Features

<table data-search="false"><thead><tr><th>Feature</th><th align="center">Availability</th></tr></thead><tbody><tr><td>Crawling</td><td align="center">✅</td></tr><tr><td>Profiling</td><td align="center">✅</td></tr><tr><td>Sample Profiling</td><td align="center">✅</td></tr><tr><td>Query Sheet</td><td align="center">✅</td></tr><tr><td>Data Preview</td><td align="center">✅</td></tr><tr><td>Auto Lineage</td><td align="center">✅</td></tr><tr><td>Manual Lineage</td><td align="center">✅</td></tr><tr><td>Secure Authentication via Credential Manager</td><td align="center">✅</td></tr><tr><td>Data Quality</td><td align="center">✅</td></tr><tr><td>DAM (Data Access Management)</td><td align="center">❌</td></tr><tr><td>Bridge</td><td align="center">✅</td></tr></tbody></table>

### Metadata Mapping

The following objects are crawled from Azure SQL Database and mapped to the corresponding UI assets.

<table data-search="false"><thead><tr><th width="175.24993896484375">Azure SQL Object</th><th width="222.25">Azure SQL Attribute</th><th width="194.25">OvalEdge Attribute</th><th width="203.8333740234375">OvalEdge Category</th><th width="172.1666259765625">OvalEdge Type</th></tr></thead><tbody><tr><td>Schema</td><td>s.name</td><td>Schema</td><td>Schemas</td><td>Schema</td></tr><tr><td>Table</td><td>Table Name</td><td>Table</td><td>Tables</td><td>Table</td></tr><tr><td>Table</td><td>Table Data Type</td><td>Table</td><td>Tables</td><td>Table</td></tr><tr><td>Table</td><td>Table Comments</td><td>Source Description</td><td>Descriptions</td><td>Table</td></tr><tr><td>Columns</td><td>Column Name</td><td>Column</td><td>Table Columns</td><td>Columns</td></tr><tr><td>Columns</td><td>Data Type</td><td>Column Type</td><td>Table Columns</td><td>Columns</td></tr><tr><td>Columns</td><td>Description</td><td>Source Description</td><td>Table Columns</td><td>Columns</td></tr><tr><td>Columns</td><td>Ordinal Position</td><td>Column Position</td><td>Table Columns</td><td>Columns</td></tr><tr><td>Columns</td><td>Length</td><td>Data Type Size</td><td>Table Columns</td><td>Columns</td></tr><tr><td>Views</td><td>View Name</td><td>View</td><td>Tables</td><td>View</td></tr><tr><td>Views</td><td>text</td><td>View Query</td><td>Views</td><td>View</td></tr><tr><td>Procedures</td><td>Routine_Name</td><td>Name</td><td>Procedures</td><td>Procedures</td></tr><tr><td>Procedures</td><td>Description</td><td>Source Description</td><td>Descriptions</td><td>Procedures</td></tr><tr><td>Procedures</td><td>Routine_Definition</td><td>Procedure</td><td>Procedures</td><td>Procedures</td></tr><tr><td>Functions</td><td>Routine_Name</td><td>Name</td><td>Functions</td><td>Functions</td></tr><tr><td>Functions</td><td>Routine_Definition</td><td>Function</td><td>Functions</td><td>Functions</td></tr><tr><td>Functions</td><td>Description</td><td>Source Description</td><td>Descriptions</td><td>Functions</td></tr><tr><td>Triggers</td><td>Trigger Name</td><td>Name</td><td>Triggers</td><td>Triggers</td></tr><tr><td>Triggers</td><td>Trigger Definition</td><td>Trigger Data</td><td>Triggers</td><td>Triggers</td></tr><tr><td>Triggers</td><td>Trigger Type</td><td>Type</td><td>Triggers</td><td>Triggers</td></tr><tr><td>Indexes</td><td>Index name</td><td>Index</td><td>Indexes</td><td>Index</td></tr><tr><td>Indexes</td><td>If unique</td><td>Yes /No</td><td>Indexes</td><td>Index</td></tr><tr><td>Synonyms</td><td>SYNONYM_NAME</td><td>Synonym</td><td>Synonyms</td><td>-</td></tr></tbody></table>

## Set up a Connection

### Prerequisites

The following are the prerequisites to establish a connection:

#### **External Supporting Files**

{% hint style="info" %}
The required external JAR files are included as part of the **OvalEdge installation artifacts**. For driver installation and configuration details, refer to the [**Connector Drivers Setup Guide**](https://docs.ovaledge.com/connectors/additional-requirements/connector-drivers-setup-guide). Please contact the **OvalEdge Team** for assistance related to the driver files and configuration setup.
{% endhint %}

#### Authentication Type

The prerequisites vary depending on the authentication method selected for the Azure SQL Database connection. To ensure a smooth and successful configuration, the required setup steps and supporting components are listed separately for each authentication type.

1. **SQL Server Authentication**
   1. A SQL Server login must exist and be active.
   2. The account must have access to the target database and required metadata objects.
   3. Ensure the SQL Server instance is configured to allow SQL Server Authentication.
2. **Windows Authentication**
   1. Windows Authentication requires additional native libraries depending on the OvalEdge release and JVM architecture.
   2. **For detailed file versions and download links, click** [**here**](broken://pages/RRzyIvZv3GZvHYpNqZOX)**.**
3. **Azure Active Directory – Password**
   1. Azure AD user credentials must be active and permitted for SQL access.
   2. Azure AD authentication must be enabled at the SQL endpoint.
   3. The account must have appropriate permissions in the target database.

#### **Whitelisting Ports**

Make sure that inbound port “1433” is whitelisted to enable successful connectivity with the Azure SQL database.

{% hint style="warning" %}
The default port number for Azure SQL database is 1433. If a different port is used, ensure that the updated port number is specified during connection setup, the port is whitelisted, and communication between the system and Azure SQL database is properly established.
{% endhint %}

#### **Service Account User Permissions**

{% hint style="warning" %}
It is recommended to use a dedicated service account to establish the connection to the data source, configured with the following minimum set of permissions.
{% endhint %}

{% hint style="info" %}
**👨‍💻 Who can provide these permissions?** These permissions are typically granted by the Azure SQL database administrator, as users may not have the required access to assign them independently.
{% endhint %}

<table data-search="false"><thead><tr><th width="148">Operations</th><th>Objects</th><th>Sys Tables</th><th>Access Permissions</th></tr></thead><tbody><tr><td><strong>Connection Validation</strong></td><td>-</td><td>-</td><td>Valid database credentials</td></tr><tr><td><strong>Crawling</strong></td><td>Schemas</td><td><code>sys.schemas</code></td><td>SELECT</td></tr><tr><td><strong>Crawling</strong></td><td>Tables</td><td><code>INFORMATION_SCHEMA.TABLES</code>, <code>sys.tables</code>, <code>sys.objects</code>, <code>fn_listextendedproperty</code></td><td>SELECT, EXECUTE</td></tr><tr><td><strong>Crawling</strong></td><td>Table Columns</td><td><code>sys.all_columns</code>, <code>sys.types</code>, <code>sys.tables</code>, <code>sys.views</code>, <code>sys.extended_properties</code>, <code>INFORMATION_SCHEMA.COLUMNS</code></td><td>SELECT</td></tr><tr><td><strong>Crawling</strong></td><td>Primary &#x26; Foreign Key Constraints</td><td><code>INFORMATION_SCHEMA.KEY_COLUMN_USAGE</code>, <code>INFORMATION_SCHEMA.TABLE_CONSTRAINTS</code></td><td>SELECT</td></tr><tr><td><strong>Crawling / Lineage Building</strong></td><td>Views</td><td><code>sys.views</code>, <code>sys.sql_modules</code>, <code>INFORMATION_SCHEMA.VIEWS</code></td><td>SELECT</td></tr><tr><td><strong>Crawling / Lineage Building</strong></td><td>Stored Procedures &#x26; Functions</td><td><code>sys.procedures</code>, <code>sys.sql_modules</code>, <code>sys.objects</code>, <code>sys.schemas</code></td><td>SELECT</td></tr><tr><td><strong>Crawling / Lineage Building</strong></td><td>Triggers</td><td><code>sys.objects</code>, <code>sys.sql_modules</code>, <code>sys.schemas</code>, <code>sys.tables</code></td><td>SELECT</td></tr><tr><td><strong>Crawling</strong></td><td>Foreign Key Relationships</td><td><code>sys.foreign_keys</code>, <code>sys.foreign_key_columns</code>, <code>sys.tables</code>, <code>sys.schemas</code></td><td>SELECT</td></tr><tr><td><strong>Crawling</strong></td><td>Schema Users &#x26; Permissions</td><td><code>INFORMATION_SCHEMA.SCHEMA_PRIVILEGES</code></td><td>SELECT</td></tr><tr><td><strong>Crawling</strong></td><td>Table Users &#x26; Permissions</td><td><code>INFORMATION_SCHEMA.TABLE_PRIVILEGES</code></td><td>SELECT</td></tr><tr><td><strong>Profiling</strong></td><td>Tables / Views</td><td>User Data Tables, <code>INFORMATION_SCHEMA.TABLES</code>, <code>INFORMATION_SCHEMA.VIEWS</code></td><td>SELECT</td></tr><tr><td><strong>Profiling</strong></td><td>Table Columns (Statistics)</td><td>User Data Tables</td><td>SELECT</td></tr><tr><td><strong>Profiling</strong></td><td>Top Values</td><td>User Data Tables</td><td>SELECT</td></tr><tr><td><strong>Data Preview / Profiling</strong></td><td>Sample Data</td><td>User Data Tables</td><td>SELECT</td></tr><tr><td><strong>Profiling</strong></td><td>Non-Null Count</td><td>User Data Tables</td><td>SELECT</td></tr><tr><td><strong>Query Logging / Data Access</strong></td><td>Query Logs</td><td><code>sys.dm_exec_query_stats</code>, <code>sys.dm_exec_sql_text</code></td><td>SELECT</td></tr><tr><td><strong>Data Access &#x26; Query Execution with Governance</strong></td><td>User Data Tables</td><td>User Data Tables</td><td>SELECT</td></tr><tr><td><strong>Data Access &#x26; Query Execution</strong></td><td>User Data Tables (Async)</td><td>User Data Tables</td><td>SELECT</td></tr></tbody></table>

{% hint style="info" %}

* The connector uses SQL Server system catalogs, `INFORMATION_SCHEMA` views, Dynamic Management Views (DMVs), and user tables to validate connections, discover metadata, retrieve object definitions, perform profiling, execute queries, and build lineage for supported database objects.
* The configured service account must have the required **SELECT** permissions on the listed system catalogs, metadata views, DMVs, and user tables. **EXECUTE** permission is also required for `fn_listextendedproperty` to retrieve object descriptions when available.
* Automatic lineage is built by retrieving object definitions for supported views, stored procedures, functions, and triggers from SQL Server system catalogs.
  {% endhint %}

### Connection Configuration Steps

{% hint style="warning" %}
Users are required to have the Connector Creator role in order to configure a new connection.
{% endhint %}

1. Log into **OvalEdge**, go to **Administration > Connectors**, click **+ (New Connector)**, search for **Azure SQL Database**, and complete the required parameters.

{% hint style="info" %}
Fields marked with an asterisk (\*) are mandatory for establishing a connection.
{% endhint %}

<table><thead><tr><th width="186.5">Field Name</th><th>Description</th></tr></thead><tbody><tr><td>Connector Type</td><td>By default, "Azure SQL Database" is displayed as the selected connector type.</td></tr><tr><td>Authentication</td><td><p>The following three types of authentication are supported for Azure SQL Database:</p><ul><li>SQL Server Authentication</li><li>Windows Authentication</li><li>Azure Active Directory - Password</li></ul></td></tr></tbody></table>

{% tabs %}
{% tab title="SQL Server Authentication" %}

<table><thead><tr><th width="187.75">Field Name</th><th>Description</th></tr></thead><tbody><tr><td>Credential Manager*</td><td><p>Select the desired credentials manager from the drop-down list. Relevant parameters will be displayed based on the selection.</p><p>Supported Credential Managers:</p><ul><li>OE Credential Manager</li><li>AWS Secrets Manager</li><li>HashiCorp</li><li>Azure Key Vault</li></ul><p>For more details, click <a href="https://docs.ovaledge.com/release8.1/connectors/additional-requirements/credential-manager-configuration">here</a>.</p></td></tr><tr><td>License Add Ons</td><td><ul><li>Select the checkbox for Auto Lineage Add-On to build data lineage automatically.</li><li>Select the checkbox for Data Quality Add-On to identify data quality issues using data quality rules and anomaly detection.</li></ul><p>For more details, click <a href="https://docs.ovaledge.com/release8.1/connectors/introduction-to-connectors/setup-and-connectivity/license-types-and-add-ons">here</a>.</p></td></tr><tr><td>Connector Name*</td><td><p>Enter a unique name for the Azure SQL Database connection              </p><p>(Example: "AzureSQLDatabase_Prod").</p></td></tr><tr><td>Connector Environment</td><td>Select the environment (Example: PROD, STG) configured for the connector.<br>For more details, click <a href="https://docs.ovaledge.com/release8.1/connectors/introduction-to-connectors/setup-and-connectivity/prerequisites#connector-environment">here</a>.</td></tr><tr><td>Connector description</td><td>Enter a brief description of the connector.</td></tr><tr><td>Server*</td><td>Enter the Azure SQL database server name or IP address (Example: xxxx-sxxxxxx.xxxx4ijtzasl.xx-south-1.rxs.xxxxx.com or 1xx.xxx.1.xx).</td></tr><tr><td>Port*</td><td>By default, the port number for the Azure SQL Database, "1433" is auto-populated. If required, the port number can be modified as per custom port number that is configured for the Azure SQL Database.</td></tr><tr><td>Database*</td><td>Enter the database name to which the service account user has access within the Azure SQL Database.</td></tr><tr><td>Driver*</td><td>By default, the Azure SQL Database driver details are auto-populated. </td></tr><tr><td>Username*</td><td>Enter the service account username set up to access the Azure SQL database (Example: "<em>oesauser</em>").</td></tr><tr><td>Password*</td><td>Enter the password associated with the service account user.</td></tr><tr><td>Connection String</td><td><p>Configure the connection string for the Azure SQL database:</p><ul><li>Automatic Mode: The system generates a connection string based on the provided credentials.</li><li>Manual Mode: Enter a valid connection string manually.</li></ul><p>Replace placeholders with actual database details.</p><p>{sid} refers to Database Name</p></td></tr><tr><td>Plugin Server</td><td>Enter the server name when running as a plugin server.</td></tr><tr><td>Plugin Port</td><td>Enter the port number on which the plugin is running.</td></tr></tbody></table>
{% endtab %}

{% tab title="Windows Authentication" %}

<table><thead><tr><th width="217.75">Field Name</th><th>Description</th></tr></thead><tbody><tr><td>Credential Manager*</td><td><p>Select the desired credentials manager from the drop-down list. Relevant parameters will be displayed based on the selection.</p><p>Supported Credential Managers:</p><ul><li>OE Credential Manager</li><li>AWS Secrets Manager</li><li>HashiCorp</li><li>Azure Key Vault</li></ul></td></tr><tr><td>License Add Ons</td><td><p> </p><p></p><ul><li>Select the checkbox for Auto Lineage Add-On to build data lineage automatically.</li><li>Select the checkbox for Data Quality Add-On to identify data quality issues using data quality rules and anomaly detection.</li></ul></td></tr><tr><td>Connector Name*</td><td><p>Enter a unique name for the Azure SQL Database connection              </p><p>(Example: "AzureSQLDatabase_Prod").</p></td></tr><tr><td>Connector Environment</td><td>Select the environment (Example: PROD, STG) configured for the connector.</td></tr><tr><td>Connector description</td><td>Enter a brief description of the connector.</td></tr><tr><td>Server*</td><td>Enter the Azure SQL database server name or IP address (Example: xxxx-sxxxxxx.xxxx4ijtzasl.xx-south-1.rxs.xxxxx.com or 1xx.xxx.1.xx).</td></tr><tr><td>Port*</td><td>By default, the port number for the Azure SQL Database, "1433" is auto-populated. If required, the port number can be modified as per custom port number that is configured for the Azure SQL Database.</td></tr><tr><td>Database*</td><td>Enter the database name to which the service account user has access within the Azure SQL Database.</td></tr><tr><td><em>Domain</em></td><td><p>Enter the verified Azure SQL Database domain name.</p><p><em><strong>Note</strong>: This field is enabled only when the application is installed in a Linux/UNIX environment.</em></p></td></tr><tr><td>Driver*</td><td>By default, the Azure SQL Database driver details are auto-populated. </td></tr><tr><td>Username*</td><td><p>Enter the service account username set up to access the Azure SQL database (Example: "<em>oesauser</em>").</p><p><em><strong>Note</strong>: This field is enabled only when the application is installed in a Linux/UNIX environment.</em></p></td></tr><tr><td>Password*</td><td><p>Enter the password associated with the service account user.</p><p><em><strong>Note</strong>: This field is enabled only when the application is installed in a Linux/UNIX environment.</em></p></td></tr><tr><td>Connection String</td><td><p>Configure the connection string for the Azure SQL database:</p><ul><li>Automatic Mode: The system generates a connection string based on the provided credentials.</li><li>Manual Mode: Enter a valid connection string manually.</li></ul><p>Replace placeholders with actual database details.</p><p>{sid} refers to Database Name</p></td></tr><tr><td>Plugin Server</td><td>Enter the server name when running as a plugin server.</td></tr><tr><td>Plugin Port</td><td>Enter the port number on which the plugin is running.</td></tr></tbody></table>
{% endtab %}

{% tab title="Azure Active Directory - Password" %}

<table><thead><tr><th width="194">Field Name</th><th>Description</th></tr></thead><tbody><tr><td>Credential Manager*</td><td><p>Select the desired credentials manager from the drop-down list. Relevant parameters will be displayed based on the selection.</p><p>Supported Credential Managers:</p><ul><li>OE Credential Manager</li><li>AWS Secrets Manager</li><li>HashiCorp</li><li>Azure Key Vault</li></ul></td></tr><tr><td>License Add Ons</td><td><p> </p><p></p><ul><li>Select the checkbox for Auto Lineage Add-On to build data lineage automatically.</li><li>Select the checkbox for Data Quality Add-On to identify data quality issues using data quality rules and anomaly detection.</li></ul></td></tr><tr><td>Connector Name*</td><td><p>Enter a unique name for the Azure SQL Database connection              </p><p>(Example: "AzureSQLDatabase_Prod").</p></td></tr><tr><td>Connector Environment</td><td>Select the environment (Example: PROD, STG) configured for the connector.</td></tr><tr><td>Connector description</td><td>Enter a brief description of the connector.</td></tr><tr><td>Server*</td><td>Enter the Azure SQL database server name or IP address (Example: xxxx-sxxxxxx.xxxx4ijtzasl.xx-south-1.rxs.xxxxx.com or 1xx.xxx.1.xx).</td></tr><tr><td>Port*</td><td>By default, the port number for the Azure SQL Database, "1433" is auto-populated. If required, the port number can be modified as per custom port number that is configured for the Azure SQL Database.</td></tr><tr><td>Database*</td><td>Enter the database name to which the service account user has access within the Azure SQL Database.</td></tr><tr><td>Driver*</td><td>By default, the Azure SQL Database driver details are auto-populated. </td></tr><tr><td>Username*</td><td>Enter the service account username set up to access the Azure SQL database (Example: "<em>oesauser</em>").</td></tr><tr><td>Password*</td><td>Enter the password associated with the service account user.</td></tr><tr><td>Connection String</td><td><p>Configure the connection string for the Azure SQL database:</p><ul><li>Automatic Mode: The system generates a connection string based on the provided credentials.</li><li>Manual Mode: Enter a valid connection string manually.</li></ul><p>Replace placeholders with actual database details.</p><p>{sid} refers to Database Name</p></td></tr><tr><td>Plugin Server</td><td>Enter the server name when running as a plugin server.</td></tr><tr><td>Plugin Port</td><td>Enter the port number on which the plugin is running.</td></tr></tbody></table>
{% endtab %}
{% endtabs %}

<table data-header-hidden><thead><tr><th width="220"></th><th></th></tr></thead><tbody><tr><td><strong>Default Governance Roles*</strong></td><td>Select the appropriate users or teams for each governance role from the drop-down list. All users configured in the security settings are available for selection.</td></tr><tr><td><strong>Admin Roles*</strong></td><td>Select one or more users from the dropdown list for Integration Admin and Security &#x26; Governance Admin. All users configured in the security settings are available for selection.</td></tr><tr><td><strong>No Of Archive Objects*</strong></td><td><p>This shows the number of recent metadata changes to a dataset at the source. By default, it is off. To enable it, toggle the Archive button and specify the number of objects to archive.</p><p>Example: Setting it to 4 retrieves the last four changes, displayed in the 'Version' column of the 'Metadata Changes' module.</p></td></tr><tr><td><strong>Select Bridge*</strong></td><td><p>If applicable, select the bridge from the drop-down list.</p><p>The drop-down list displays all active bridges that have been configured. These bridges facilitate communication between data sources and the system without requiring changes to firewall rules.</p></td></tr></tbody></table>

2. After entering all connection details, the following actions can be performed:
   1. Click **Validate** to verify the connection.
   2. Click **Save** to store the connection for future use.
   3. Click **Save & Configure** to apply additional settings before saving.
3. The saved connection will appear on the Connectors home page.

## Manage Connector Operations

### Crawl/Profile

{% hint style="warning" %}
To perform crawl and profile operations, users must be assigned the Integration Admin role.
{% endhint %}

The **Crawl/Profile** button allows users to select one or more schemas for crawling and profiling.&#x20;

1. Navigate to the Connectors page and click **Crawl/Profile**.
2. Select the schemas to crawl.
3. The **Crawl** option is selected by default. To perform both operations, select the **Crawl & Profile** radio button.
4. Click **Run** to collect metadata from the connected source and load it into the **Data Catalog**.
5. After a successful crawl, the information appears in the **Data Catalog > Databases** tab.

The Schedule checkbox allows automated crawling and profiling at defined intervals, from a minute to a year.

1. Click the **Schedule** checkbox to enable the Select Period drop-down.
2. Select a time period for the operation from the drop-down menu.
3. Click **Schedule** to initiate metadata collection from the connected source.
4. The system will automatically execute the selected operation **(Crawl or Crawl & Profile)** at the scheduled time.

#### Other Operations

The Connectors page provides a centralized view of all configured connectors, along with their health status.

Managing connectors includes:

* **Connectors Health**: Displays the current status of each connector using a green icon for active connections and a red icon for inactive connections, helping to monitor the connectivity with data sources.
* **Viewing**: Click the **Eye** icon next to the connector name to view connector details, including schema, tables, views, and columns.

**Nine Dots Menu Options:**

To view, edit, validate, build lineage, configure, or delete connectors, click on the **Nine Dots** menu.

* **Edit Connector**: Update and revalidate the data source.
* **Validate Connector**: Check the connection's integrity.
* **Settings**: Modify connector settings.
  * **Crawler**: Configure data extraction.
  * **Profiler**: Customize data profiling rules and methods.
  * **Query Policies**: Define query execution rules based on roles.
  * **Access Instructions**: Add notes on how data can be accessed.
  * **Business Glossary Settings**: Manage term associations at the connector level.
  * **Anomaly Detection Settings**: Configure anomaly detection preferences at the connector level.
  * **Connection Pooling:** Configure database connection pool parameters to optimize database connectivity and resource utilization. For more details, click [here](https://docs.ovaledge.com/release8.1/connectors/introduction-to-connectors/setup-and-connectivity/connector-settings#connection-pooling).
  * **Lineage**: Select server dialects for parsing and setting connector priority for table lineage.
  * **Others**: Configure notification recipients for metadata changes.
* **Build Lineage:** Automatically build data lineage using source code parsing.
* **Delete Connector:** Remove a connector with confirmation.

For more details on connector settings, click [here](https://docs.ovaledge.com/release8.1/connectors/introduction-to-connectors/setup-and-connectivity/connector-settings).

## Profiling Limitations

The following data types do not support profiling:

* BINARY
* VARBINARY
* IMAGE
* UNIQUEIDENTIFIER
* INT IDENTITY

## Connectivity Troubleshooting

If incorrect parameters are entered, error messages may appear. Ensure all inputs are accurate to resolve these issues. If issues persist, contact the assigned support team.

{% tabs %}
{% tab title="Connectivity" %}

<table><thead><tr><th width="84">S. No</th><th width="190">Error Message</th><th width="605">Error Description &#x26; Resolution</th></tr></thead><tbody><tr><td>1</td><td>Login failed for user</td><td><p>This means SQL Server received the login request but <strong>could not authenticate the user or authorize the login</strong>.</p><p><strong>Resolution</strong>:</p><ul><li>Incorrect username/password</li><li>Login password expired</li><li>User doesn't have access to the database</li><li>Login does not exist - Create the login using CREATE LOGIN</li><li>Windows/AD authentication issue - Verify domain account, AD connectivity, SPN, and SQL Server permissions</li><li>Connecting to the wrong SQL Server/instance - Verify server name, instance name, and port</li></ul></td></tr><tr><td>2</td><td>The TCP/IP connection to the host has failed</td><td><p>The connector cannot establish network connectivity to the SQL Server instance.</p><p><strong>Resolution:</strong></p><ul><li>Verify that the server name or IP address is correct and reachable.</li><li>Ensure the required network port is open and accessible through the firewall.</li><li>Confirm that the SQL Server instance is running and accepts client connections.</li></ul></td></tr><tr><td>3</td><td>Invalid number format for port number</td><td><p>The configured port value is invalid or contains unsupported characters.</p><p><strong>Resolution:</strong></p><ul><li>Specify a valid numeric port value.</li><li>Remove any spaces or special characters from the port field.</li><li>Verify that the configured port matches the SQL Server instance.</li></ul></td></tr><tr><td>4</td><td>Failed to retrieve DataSource from DataSourceProvider</td><td><p>The data source could not be initialized because of an invalid connection configuration or connectivity issue.</p><p><strong>Resolution:</strong></p><ul><li>Verify the JDBC connection URL and database name.</li><li>Ensure the SQL Server JDBC driver is available in the application classpath.</li><li>Confirm network connectivity and authentication settings.</li></ul></td></tr><tr><td>5</td><td>Cannot open database</td><td><p>The specified database does not exist, is unavailable, or the user does not have permission to access it.</p><p><strong>Resolution:</strong></p><ul><li>Verify that the database name is correct and online.</li><li>Ensure the user has CONNECT permission on the database.</li><li>Confirm that the user is mapped to the target database.</li></ul></td></tr><tr><td>6</td><td>PoolInitializationException</td><td><p>The connection pool could not be initialized because of an invalid connection configuration or connectivity issue.</p><p><strong>Resolution:</strong></p><ul><li>Verify the JDBC connection properties and driver configuration.</li><li>Confirm the supplied credentials and network connectivity.</li><li>Review connection pool configuration settings such as timeout and pool size.</li></ul></td></tr><tr><td>7</td><td>Windows Authentication fails</td><td><p>Windows Authentication could not be established because of an incorrect driver or domain configuration.</p><p><strong>Resolution:</strong></p><ul><li> Verify that the required JDBC driver is configured correctly.</li><li>Confirm that the domain information is valid and reachable.</li><li>Ensure the connection string is configured for Windows Authentication.</li></ul></td></tr><tr><td>8</td><td>Azure AD Password Authentication fails</td><td><p>Authentication using Azure Active Directory credentials could not be completed.</p><p><strong>Resolution:</strong></p><ul><li>Verify the Azure AD username and password.</li><li>Ensure Azure AD authentication is enabled for the SQL Server instance.</li><li>Confirm that the Azure AD user has permission to access the database.</li></ul></td></tr><tr><td>9</td><td>Connection fails specifically when encryption or certificate trust is required by the source environment</td><td><p>The JDBC driver used for this connector defaults encryption to false and certificate trust to true. When the source environment requires encrypted, certificate-validated connections, this default configuration causes the connection to fail.</p><p><strong>Resolution</strong></p><ul><li>Manually set the encryption option to true and the trust certificate option to false in the connection details.</li><li>Upload the required certificate to the application so SSL and TLS can be established correctly.</li><li>Revalidate the connection after the certificate and encryption settings have been updated.</li></ul></td></tr></tbody></table>
{% endtab %}

{% tab title="Crawling" %}

<table><thead><tr><th width="84">S. No</th><th width="188">Error Message</th><th width="602">Error Description &#x26; Resolution</th></tr></thead><tbody><tr><td>1</td><td>Invalid object name</td><td><p>The specified table or schema cannot be found or is inaccessible.</p><p><strong>Resolution:</strong></p><ul><li>Verify that the schema and table names are correct.</li><li>Ensure the user has permission to access the table metadata.</li><li>Confirm that the referenced object exists in the database.</li></ul></td></tr><tr><td>2</td><td>User does not have access to view this definition</td><td><p>The account being used does not have permission to read the view source code, since SELECT access on the views section of the information schema alone does not include definition access.</p><p><strong>Resolution:</strong></p><ul><li>Grant explicit view definition permission on the relevant schema or database in addition to the standard SELECT permission.</li><li>Re-run the crawl once the permission has been applied and confirm the view source code now appears.</li></ul></td></tr><tr><td>3</td><td>Table descriptions or comments missing after a crawl, even though the tables themselves are cataloged correctly</td><td><p>Table-level comments and descriptions are retrieved using a specific function on the source system. If execute access to this function is missing, description data is skipped while the rest of the table metadata is still retrieved.</p><p><strong>Resolution:</strong></p><ul><li>Grant execute permission on the extended properties function used to read table comments.</li><li>Re-run the crawl and confirm table descriptions now populate.</li></ul></td></tr><tr><td>4</td><td>Why are no columns returned during metadata crawling?</td><td><p>If the connector cannot retrieve column metadata, it is usually caused by insufficient permissions or incorrect object names.</p><p>Verify the following:</p><ul><li>The specified schema and table names are correct.</li><li>The configured user has permission to read SQL Server metadata.</li><li>The required system catalog views are accessible.</li><li>The database connection has been validated successfully.</li></ul><p>After correcting the permissions or object names, run the crawl again.</p></td></tr><tr><td>5</td><td>Why are indexes not displayed after crawling?</td><td><p>The connector retrieves index information from SQL Server system catalogs during metadata crawling.</p><p>If indexes are not displayed, verify the following:</p><ul><li>Indexes exist for the selected tables.</li><li>The configured user has permission to access SQL Server index metadata.</li><li>Metadata crawling completed successfully without errors.</li></ul><p>Run the crawl again after correcting any permission issues.</p></td></tr><tr><td>6</td><td>Why are foreign key relationships not displayed?</td><td><p>Foreign key relationships are retrieved from SQL Server system metadata during crawling.</p><p>If relationships are not displayed, verify the following:</p><ul><li>Foreign key constraints exist in the database.</li><li>The configured user has permission to access foreign key metadata.</li><li>Metadata crawling completed successfully.</li></ul><p>After updating permissions, rerun the crawl to refresh relationship information.</p></td></tr><tr><td>7</td><td>Why are synonyms not displayed?</td><td><p>The connector retrieves synonym metadata only when synonyms exist, and the configured user has permission to access them.</p><p>If synonyms are not displayed:</p><ul><li>Verify that synonyms are defined in the database.</li><li>Ensure the configured user has permission to access synonym metadata.</li><li>Confirm that the SQL Server edition supports synonyms.</li></ul><p>Run the crawl again after verifying the configuration.</p></td></tr></tbody></table>
{% endtab %}

{% tab title="Profiling" %}

<table data-search="true"><thead><tr><th width="86">S. No</th><th width="190">Error Message</th><th width="604">Error Description &#x26; Resolution</th></tr></thead><tbody><tr><td>1</td><td>Query execution returns no results or times out</td><td><p>The query could not complete because of a timeout, connectivity, or query-related issues.</p><p><strong>Resolution:</strong></p><ul><li>Verify that the query is valid and returns data.</li><li>Check network connectivity and query timeout settings.</li><li>Review connector logs for execution details.</li></ul></td></tr><tr><td>2</td><td>Why are some columns skipped during data profiling?</td><td><p>Some SQL Server data types are intentionally excluded from profiling because they are not suitable for statistical analysis or may significantly impact profiling performance.</p><p>Examples include large binary objects, image data, and certain specialized data types.</p><p>This behavior is expected and does not indicate a connector issue. Other supported columns continue to be profiled normally.</p></td></tr><tr><td>3</td><td>Why are no Top Values displayed for a column?</td><td><p>Top Values may not be displayed if the selected column does not contain supported data or if the connector cannot retrieve the required information.</p><p>Verify the following:</p><ul><li>The column contains data.</li><li>The configured user has permission to query the table.</li><li>The selected column uses a supported data type.</li><li>The profiling operation completed successfully.</li></ul><p>If the issue persists, review the connector logs for additional information.</p></td></tr><tr><td>4</td><td>Why does the row count show <strong>0</strong> even though the table contains data?</td><td><p>A row count of <strong>0</strong> may occur if the connector cannot access the table or if the query does not return any records.</p><p>Verify the following:</p><ul><li>The table contains data.</li><li>The configured user has <strong>SELECT</strong> permission on the table.</li><li>The database, schema, and table names are correct.</li><li>The profiling operation completed successfully.</li></ul><p>If necessary, validate the row count directly in SQL Server and rerun the profiling operation.</p></td></tr></tbody></table>
{% endtab %}
{% endtabs %}

## FAQs

{% tabs %}
{% tab title="General" %}

<table data-search="true"><thead><tr><th width="88">S. No.</th><th width="237">Question</th><th width="611">Answer</th></tr></thead><tbody><tr><td>1</td><td>What is the difference between primary key and foreign key support in this connector compared to other database connectors?</td><td>This connector currently retrieves primary key and foreign key information only. Other relationship types that may exist in some database connectors are not applicable here, so relationship information displayed for Azure SQL Database is limited to primary and foreign key constraints between tables.</td></tr><tr><td>2</td><td>Are indexes shown the same way as in other database connectors?</td><td><ul><li>Azure SQL Database does not expose full index-level detail</li><li>A single column identifier applies across all indexes for a table</li><li>This differs from connectors that show a fully separate breakdown per index</li></ul></td></tr><tr><td>3</td><td>Why are query logs unavailable?</td><td><p>The connector retrieves query execution history from SQL Server Dynamic Management Views (DMVs).</p><p>If query logs are unavailable, verify the following:</p><ul><li>The configured user has permission to access the required DMVs.</li><li>The selected date range or query filters contain matching records.</li><li>The SQL Server instance has not been restarted recently, as DMV data is cleared after a restart.</li></ul><p>If the required permissions are available and query logs still do not appear, review the connector logs for additional details.</p></td></tr><tr><td>4</td><td>Why does my SQL query return an incorrect syntax error?</td><td><p>The submitted SQL query contains syntax that is not supported by SQL Server.<br><strong>Resolution:</strong></p><ul><li>Validate the SQL syntax before execution</li><li>Use SQL Server supported syntax and identifier formatting.</li><li>Fully qualify database, schema, and table names where required.</li></ul></td></tr></tbody></table>
{% endtab %}

{% tab title="Connectivity" %}

<table data-search="true"><thead><tr><th width="85">S. No</th><th width="189">Question</th><th width="607">Answer</th></tr></thead><tbody><tr><td>1</td><td>What does the <strong>Database (SID)</strong> field represent?</td><td><p>The <strong>Database (SID)</strong> field specifies the SQL Server database that the connector uses to establish the connection and retrieve metadata. Enter the exact name of the target database that you want to crawl or profile.</p><p>If the database name is incorrect or the configured user does not have permission to access it, connection validation or metadata crawling may fail.</p><p>Before configuring the connector, ensure that:</p><ul><li>The specified database exists and is online.</li><li>The database name is entered correctly.</li><li>The configured user has permission to access the database.</li></ul></td></tr><tr><td>2</td><td>What authentication types are supported?</td><td><p>Two types are supported:</p><ul><li><strong>SQL Server Authentication:</strong> A plain username and password created directly in Azure SQL Database</li><li><strong>Entra ID Authentication:</strong> Previously called Active Directory Authentication, uses a shared identity created in Entra ID</li></ul><p>How Entra ID Authentication works:</p><ul><li>Entra ID first verifies the username and password</li><li>A token is generated after successful verification</li><li>That token is passed to Azure SQL Database</li><li>Azure SQL Database then checks what the token is allowed to access</li></ul></td></tr><tr><td>3</td><td>Is a separate JDBC driver required?</td><td><p>No separate installation is needed.</p><ul><li>The required driver is bundled directly with the application package</li><li>Earlier versions required the driver to be placed manually in a specific folder</li><li>This manual step is no longer necessary</li></ul></td></tr><tr><td>4</td><td>What is Azure SQL Database, and how is it different from Microsoft SQL Server?</td><td><p>Azure SQL Database, earlier called Azure SQL Managed Instance, runs fully inside the Azure cloud and is managed by Microsoft.</p><ul><li>Microsoft SQL Server can be installed on-premises, on a virtual machine, or on other cloud platforms</li><li>Azure SQL Database can only run inside Azure</li><li>Connectivity is only available through JDBC</li><li>Windows Authentication does not apply, since the database is fully cloud-managed</li></ul></td></tr></tbody></table>
{% endtab %}

{% tab title="Crawling" %}

<table><thead><tr><th width="90">S. No.</th><th width="188">Question</th><th width="610">Answer</th></tr></thead><tbody><tr><td>1</td><td>What permissions are required on the source system?</td><td><ul><li>Select access on the system schema, used as a fallback for schema information</li><li>Select access on the information schema, the primary path for schemas, tables, and columns</li><li>Execute access on the extended properties function, needed for table comments and descriptions</li><li>Select access on the views section of the information schema, needed to detect views</li><li>View definition permission, needed specifically to read view source code</li></ul><p>If one permission is missing, only that specific piece of metadata is affected. Other metadata continues to be retrieved normally.</p></td></tr><tr><td>2</td><td>Why does the connector display <strong>"fn_listextendedproperty is not supported"</strong> during crawling?</td><td><p>This is expected behavior in environments where SQL Server extended properties are unavailable or cannot be accessed.</p><p>Extended properties are used to retrieve object descriptions and comments. If they are not available, the connector automatically switches to an alternate metadata retrieval method and continues crawling without object descriptions.</p><p>No action is required unless retrieving object comments is a requirement.</p></td></tr><tr><td>3</td><td>How does the connector determine whether a column is nullable?</td><td><p>The connector retrieves nullable information directly from SQL Server system metadata during metadata crawling.</p><p>If SQL Server identifies the column as nullable, the column is displayed as <strong>Nullable</strong>. Otherwise, it is displayed as <strong>Not Null</strong>.</p><p>If the metadata cannot be interpreted correctly, the connector treats the column as <strong>Not Null</strong> by default to maintain metadata consistency.</p></td></tr><tr><td>4</td><td>Why is the view or stored procedure definition incomplete?</td><td><p>SQL Server may return truncated definitions for large views, stored procedures, or functions.</p><p>When this occurs, the connector automatically attempts to retrieve the complete definition using an alternate retrieval method.</p><p>If the definition remains incomplete, verify that the configured user has permission to view object definitions.</p></td></tr><tr><td>5</td><td>Why are foreign key relationships not displayed?</td><td><p>Foreign key relationships are retrieved from SQL Server system metadata during crawling.</p><p>If relationships are not displayed, verify the following:</p><ul><li>Foreign key constraints exist in the database.</li><li>The configured user has permission to access foreign key metadata.</li><li>Metadata crawling completed successfully.</li></ul><p>After updating permissions, rerun the crawl to refresh relationship information.</p></td></tr><tr><td>6</td><td>Why are synonyms not displayed?</td><td><p>The connector retrieves synonym metadata only when synonyms exist, and the configured user has permission to access them.</p><p>If synonyms are not displayed:</p><ul><li>Verify that synonyms are defined in the database.</li><li>Ensure the configured user has permission to access synonym metadata.</li><li>Confirm that the SQL Server edition supports synonyms.</li></ul><p>Run the crawl again after verifying the configuration.</p></td></tr><tr><td>7</td><td>Why are indexes not displayed after crawling?</td><td><p>The connector retrieves index information from SQL Server system catalogs during metadata crawling.</p><p>If indexes are not displayed, verify the following:</p><ul><li>Indexes exist for the selected tables.</li><li>The configured user has permission to access SQL Server index metadata.</li><li>Metadata crawling completed successfully without errors.</li></ul><p>Run the crawl again after correcting any permission issues.</p></td></tr></tbody></table>
{% endtab %}

{% tab title="Profiling" %}

<table data-search="true"><thead><tr><th width="88">S. No.</th><th width="188">Question</th><th width="610">Answer</th></tr></thead><tbody><tr><td>1</td><td>Why are some columns skipped during data profiling?</td><td><p>Some SQL Server data types are intentionally excluded from profiling because they are not suitable for statistical analysis or may significantly impact profiling performance.</p><p>Examples include large binary objects, image data, and certain specialized data types.</p><p>This behavior is expected and does not indicate a connector issue. Other supported columns continue to be profiled normally.</p></td></tr><tr><td>2</td><td>Why are <strong>BIT</strong> column values displayed as <strong>TRUE</strong> and <strong>FALSE</strong> instead of <strong>1</strong> and <strong>0</strong>?</td><td><p>During profiling, the connector converts SQL Server <strong>BIT</strong> values into <strong>TRUE</strong> and <strong>FALSE</strong> to improve readability in the profiling results.</p><p>This conversion only affects how the values are displayed. The underlying data remains unchanged, and statistical calculations such as row count and distinct count continue to use the original SQL Server values.</p></td></tr><tr><td>3</td><td>Why are no Top Values displayed for a column?</td><td><p>Top Values may not be displayed if the selected column does not contain supported data or if the connector cannot retrieve the required information.</p><p>Verify the following:</p><ul><li>The column contains data.</li><li>The configured user has permission to query the table.</li><li>The selected column uses a supported data type.</li><li>The profiling operation completed successfully.</li></ul><p>If the issue persists, review the connector logs for additional information.</p></td></tr><tr><td>4</td><td>Why does the row count show <strong>0</strong> even though the table contains data?</td><td><p>A row count of <strong>0</strong> may occur if the connector cannot access the table or if the query does not return any records.</p><p>Verify the following:</p><ul><li>The table contains data.</li><li>The configured user has <strong>SELECT</strong> permission on the table.</li><li>The database, schema, and table names are correct.</li><li>The profiling operation completed successfully.</li></ul><p>If necessary, validate the row count directly in SQL Server and rerun the profiling operation.</p></td></tr></tbody></table>
{% endtab %}
{% endtabs %}

***

Copyright © 2026, OvalEdge LLC, Peachtree Corners GA USA


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ovaledge.com/release8.1/connectors/connector-repositories/rdbms/azure-sql-database.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
