PostgreSQL

This article describes how to connect Tableau to a PostgreSQL database and set up the data source.

Before you begin

Before you begin, gather this connection information:

  • Name of the server that hosts the database you want to connect to

  • Database name

  • Authentication method: Integrated Authentication or username and password

  • Are you connecting to an SSL server?

  • (Optional) Initial SQL statement to run every time Tableau connects

Driver required

This connector requires a driver to talk to the database. You might already have the required driver installed on your computer. If the driver is not installed on your computer, Tableau displays a message in the connection dialog box with a link to the Driver Download(Link opens in a new window) page where you can find driver links and installation instructions.

Note: Beginning with Tableau 2020.4, you can connect to PostgreSQL 12 (or higher) databases from Tableau. A new JDBC driver for PostgreSQL supports these connections and is included with all Tableau products on Windows.
On Linux and Mac computers, you'll need to install a driver for this connector when you use it with Tableau Desktop or Tableau Prep Builder. See instructions on the Driver Download(Link opens in a new window) page.

Make the connection and set up the data source

  1. Start Tableau and under Connect, select PostgreSQL. For a complete list of data connections, select More under To a Server. Then do the following:

    1. Enter the name of the server that hosts the database that you want to connect to.

    2. Enter the name of the database.

    3. Select how you want to sign in to the server. Specify whether to use Integrated Authentication or Username and Password. If the server is password protected, and you are not in a Kerberos environment, you must enter the username and password.

      Note: If you're using a Mac, and it is not attached to the domain correctly, the Mac won't know that Kerberos is being used in the domain, and the Authentication drop-down list won't be available.

      Tick the Require SSL box when connecting to an SSL server.

    4. (Optional) Select Initial SQL to specify a SQL command to run at the beginning of every connection, such as when you open the workbook, refresh an extract, sign in to Tableau Server or publish to Tableau Server. For more information, see Run Initial SQL.

    5. Select Sign In.

      If Tableau can't make the connection, verify that your credentials are correct. If you still can't connect, your computer is having trouble locating the server. Contact your network administrator or database administrator.

  2. On the data source page, do the following:

    1. (Optional) Select the default data source name at the top of the page, and then enter a unique data source name for use in Tableau. For example, use a data source naming convention that helps other users of the data source figure out which data source to connect to.

    2. Under Table, select a table or use the text box to search for a table by name.

      Starting with Tableau version 2019.2, you can connect to spatial columns. For more information, see Connect to Spatial Data in a Database.

    3. Drag the table to the canvas, and then select the sheet tab to start your analysis.

      Use custom SQL to connect to a specific query rather than the entire data source. For more information, see Connect to a Custom SQL Query.

Sign in on a Mac

If you use Tableau Desktop on a Mac, when you enter the server name to connect, use a fully qualified domain name, such as mydb.test.ourdomain.lan, instead of a relative domain name, such as mydb or mydb.test.

Alternatively, you can add the domain to the list of Search Domains for the Mac computer so that when you connect, you need to provide only the server name. To update the list of Search Domains, go to System Preferences > Network > Advanced, and then open the DNS tab.

 

Note: We don't recommend using pgBouncer since Tableau relies on stateful connections. If you must use pgBouncer with Tableau, you need to configure it in the following way.

server_reset_query=DISCARD ALL (the default)

See also

Thanks for your feedback!Your feedback has been successfully submitted. Thank you!