How to Get Users List from Tableau Server

Cody Schneider9 min read

Trying to get a clean list of all the users on your Tableau Server? Whether you're running a license audit, cleaning up old accounts, or just doing some routine security checks, this is a common task for any Tableau administrator. This guide will walk you through three different methods to get a complete user list, from a simple download to more powerful, automated solutions.

GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

Why You Might Need a Tableau User List

Before jumping into the "how," it's helpful to remember the "why." Extracting a list of users isn't just busy work, it's a critical part of managing a healthy and cost-effective Tableau environment. Here are a few common scenarios where a user list saves the day:

  • License Auditing: The most frequent reason. You need to know who has which license role (Creator, Explorer, Viewer) to make sure you aren't paying for seats that go unused. Finding users who haven't logged in for six months but are occupying an expensive Creator license can lead to significant cost savings.
  • Security Reviews: Compliance and security teams often require a full list of users and their permission levels. Being able to quickly pull a report of who can access what is essential for security audits.
  • User and Content Governance: As your Tableau Server grows, so does the complexity. You might need to identify all users within a specific department or team to review their content permissions or communicate changes.
  • Automated Onboarding/Offboarding: For larger organizations, having a script that compares the Tableau user list against an active employee directory can help you automatically and reliably remove access for former employees.

Method 1: The Quick Click-and-Export in the UI

The simplest way to get a user list is directly from the Tableau Server or Tableau Cloud user interface. If you just need a quick snapshot and aren't afraid of a few clicks, this is the perfect method for you.

Step-by-Step Instructions

As a Server or Site Administrator, you can grab this list in under a minute.

  1. Log into your Tableau Server or Tableau Cloud site.
  2. In the left-hand navigation pane, click on Users. This will bring you to the main user management page for your site.
  3. You will see a list of all active users. By default, it displays their username, display name, site role (Creator, Explorer, etc.), and their last login date.
  4. Here, you can use the filters at the top to narrow down the list. For example, you can filter by Site Role to see only your active Creators.
  5. Once your view is ready, look for a download or export icon, which often looks like a box with an arrow pointing out. This allows you to download the current view as a CSV file.

The resulting CSV will contain the exact information you saw on the screen. From there, you can open it in Excel or Google Sheets to sort, filter, and analyze it however you need.

When Is This Method Best?

  • Pros: It’s incredibly fast and requires zero technical expertise beyond logging into Tableau. It's the go-to choice for a "quick and dirty" list.
  • Cons: The data is very limited. You only get the columns visible in the UI - you can't easily join it with other information like what groups a user belongs to or how much content they have published. It's also entirely manual.

Free PDF · the crash course

AI Agents for Marketing Crash Course

Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.

Method 2: Connecting to the Tableau Server PostgreSQL Repository

For those who need more detail, Tableau Server has a secret weapon: its underlying PostgreSQL database, often called the "repository" or "workgroup" database. This database holds all the metadata about your server - users, groups, projects, workbooks, data sources, and more. By querying it directly, you can create a completely custom user report.

First, Enable Repository Access

By default, you can't connect to this database from an external tool. It's locked down for security and performance reasons. An administrator needs to enable access for the special readonly user. This ensures you can't accidentally change or delete anything important.

To do this, a Server Administrator needs to run commands using the Tableau Services Manager (TSM) command-line interface:

tsm data-access repository-access enable --repository-user readonly --repository-pass <your-secure-password> tsm pending-changes apply

This command enables access and sets a password for the readonly user. Keep that password handy!

Connecting to the Database

With access enabled, you can connect using any standard SQL client like DBeaver, TablePlus, or even Tableau Desktop itself. The connection details will be:

  • Host: Your Tableau Server address
  • Port: 8060
  • Database: workgroup
  • User: readonly
  • Password: The password you set via TSM
GraphedGraphed

Build AI Agents for Marketing

Build virtual employees that run your go to market. Connect your data sources, deploy autonomous agents, and grow your company.

Watch Graphed demo video

Helpful SQL Queries for User Data

Once connected, you can run SQL queries to pull exactly the information you want. Here are some of the most useful examples:

1. Get a Full User List with Site Role and Last Login

This is the most common query. It joins a few tables to give you a full picture of the user, what site they belong to, and the last time they were active.

SELECT
  su.name AS username,
  su.friendly_name,
  s.name AS site_name,
  u.site_role,
  su.last_login_at
FROM _users u
JOIN _system_users su ON u.system_user_id = su.id
JOIN _sites s ON u.site_id = s.id
ORDER BY s.name, su.name,

2. Find Inactive Users to Reclaim Licenses

Need to find users who haven't logged on in over 90 days? A slight modification to the query above makes it easy. This is fantastic for cleaning up licenses.

SELECT
  su.name AS username,
  su.friendly_name,
  s.name AS site_name,
  u.site_role,
  su.last_login_at
FROM _users u
JOIN _system_users su ON u.system_user_id = su.id
JOIN _sites s ON u.site_id = s.id
WHERE su.last_login_at < NOW() - INTERVAL '90 days'
ORDER BY su.last_login_at,

3. List All Users and the Groups They Belong To

Wondering which groups a user is a member of? This more complex query joins five tables to create a comprehensive list of users and their group memberships.

SELECT
  u.name AS username,
  s.name AS site_name,
  g.name AS group_name
FROM users u
INNER JOIN group_users gu ON u.id = gu.user_id
INNER JOIN groups g ON gu.group_id = g.id
INNER JOIN sites s ON g.site_id = s.id
ORDER BY u.name, g.name,

When Is This Method Best?

  • Pros: Incredibly powerful and flexible. You can get any piece of metadata stored in Tableau and create highly customized reports. You can connect Tableau Desktop to the repository to build historical admin views that track license usage over time.
  • Cons: It requires some knowledge of SQL and database structures. You also need Server Administrator privileges to enable access in the first place. You must be careful with your queries so as not to overload the server, though this risk is low when using the readonly user.

Free PDF · the crash course

AI Agents for Marketing Crash Course

Learn how to deploy AI marketing agents across your go-to-market — the best tools, prompts, and workflows to turn your data into autonomous execution without writing code.

Method 3: The Automated Route with the REST API

For large environments or those looking to integrate Tableau user management into a broader IT process, the Tableau Server REST API is the gold standard. It allows you to programmatically perform almost any action you could do in the UI, including getting a list of users, adding users, changing site roles, and more.

How the REST API Workflow Works

Using the API involves writing a script (commonly in a language like Python or PowerShell) that sends requests to the server and processes the responses. The general flow for getting a user list looks like this:

  1. Authenticate: Your script first needs to "sign in" to the Tableau Server. It does this by sending a request with your credentials (a Personal Access Token is the most secure method) to the sign-in endpoint. The server responds with an authentication token and a site ID.
  2. Make a "Get Users" Request: Your script then makes a GET request to the user's endpoint, including the authentication token in the request header to prove it has permission. The endpoint looks like this: GET /api/3.13/sites/{site-id}/users
  3. Handle Pagination: An important detail! The API doesn't return all your users at once. By default, it returns them in "pages" of 100. Your script needs to check if more users are available and make subsequent requests for page 2, page 3, and so on, until all users have been retrieved. The "Get Users on Site" response tells you the totalAvailable count, pageNumber, and pageSize so you can loop through the pages.
  4. Process the Results: The API returns a structured chunk of data (usually JSON or XML), which your script can then parse. You can convert this into a CSV, write it to a database, or use it to take further action - like deleting a user who is no longer with the company.

When Is This Method Best?

  • Pros: It’s fully automatable. You can schedule a script to run nightly to generate a user report, automatically flag inactive users, or sync users with other systems.
  • Cons: It is the most technically demanding of the three options, requiring programming skills. The initial setup of the script and its authentication logic takes more time up front.

Final Thoughts

Getting a list of your Tableau users can be a five-second task or a powerful, automated process depending on your needs. The built-in UI works great for a quick look, the PostgreSQL repository gives you rich, detailed data for deep analysis straight from the source, and the REST API unlocks automation for managing users at scale.

Just as pulling user data from Tableau helps you understand usage and permissions, you are probably pulling performance data from Google Analytics, Salesforce, and a dozen other platforms to create reports for your marketing and sales teams. We built Graphed to specifically tackle that manual, time-consuming data gathering. By connecting all your tools into one place, we let you ask questions in simple English and instantly get back live, shareable dashboards. If you're ready to stop juggling CSV files and want to empower your team with self-serve insights, our approach might be exactly what you need.

Related Articles