SQL connections
This page explains how Portrait can be connected to a given SQL database.
Prerequisites
Before you can use SQL as a source for Portrait, we need to make sure that the following prerequisites are met.
SQL Server
Portrait will access the SQL instance via JDBC. Make sure the Portrait-App Instance has direct access to the SQL server - this especially relevant if the Portrait runs in a DMZ or external network.
Depending on the given SQL database and connection properties, the protocol and ports differ.
SQL User
Create a specific user for Portrait - we recommend the name portraitservice
-, since it is only used for Portrait as a service user. Depending on your use-case, you should consider read-only writes.
Set up a connection
In the application.yml file, we need to add a new entry inside the connections
section:
See https://portrait.atlassian.net/wiki/spaces/PA7/pages/1029112502 to see all available driverClass
options. How the url
is formatted, is depending on the used driver. Check the documentation of the given JDBC driver.
This example shows a connection to MS SQL Server with a named instance and port:
connections:
connection:
- id: NAVDEMO
type: SQL
driverClass: "com.microsoft.sqlserver.jdbc.SQLServerDriver"
url: "jdbc:sqlserver://SQL01\\NAVDEMO:48981;database=Demo Database NAV (7-1);trustServerCertificate=true"
username: "portraitservice"
password: "s3cur3d"
You can have several connections, each of them must start with a “-”.
The yml-file is formatted with whitespaces. Ensure you have the correct intentation: first level = 2 whitespaces, second level = 4 whitespaces, and so on. You will get an error in the logs at startup if the yml is malformed.
After you added the connection, you can jump to the next chapter: “Adding an SQL source”.
Examples
This chapter provides you with examples for connections via JDBC URL’s.
Microsoft SQL Server
This example connects to a Microsoft Dynamics Business Central database. The database runs on a named instance.
- id: NAVDEMO
type: SQL
driverClass: "com.microsoft.sqlserver.jdbc.SQLServerDriver"
url: "jdbc:sqlserver://SQL01\\NAVDEMO:48981;database=Demo Database NAV (7-1);trustServerCertificate=true"
username: "portraitservice"
password: "s3cur3d"
Since the upgrade to the latest official SQL JDBC driver (10.x.x), you have to add the trustServerCertificate=true
option.
SQLite
This example uses a SQLite database. We ship a SQLite database for demo uses or small use-cases.
- id: internal
type: SQL
driverClass: "org.sqlite.JDBC"
url: "jdbc:sqlite:./config/sample.db"