Redshift List Roles

Published
Length
3 min read

Luis Felipe Dias

All posts

To run a redshift list roles check, query the built-in system catalog views in your cluster. These views show every active role, its owner, and its assigned permissions. Data teams run these checks to see who can read or write data. Most teams start by creating a few broad roles for engineers and analysts. Over time, people ask for quick fixes during busy incidents or launches. Admins grant extra rights to existing roles to unblock work fast. Soon, those roles hold far more power than anyone pla

Redshift Security + Lambda Execution Roles: the complete guide

Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.

Free white paper. No spam. Unsubscribe anytime.

To run a redshift list roles check, query the built-in system catalog views in your cluster. These views show every active role, its owner, and its assigned permissions. Data teams run these checks to see who can read or write data. Most teams start by creating a few broad roles for engineers and analysts. Over time, people ask for quick fixes during busy incidents or launches. Admins grant extra rights to existing roles to unblock work fast. Soon, those roles hold far more power than anyone planned. When roles grow too broad, one bad query can expose private data.

How the native redshift list roles workflow operates

Amazon Redshift uses role-based rules to manage what users can do. Instead of giving rights to each person, admins create roles for job types. You group permissions into a role and assign that role to users. You can also nest one role inside another role to build a chain.

To check these roles, you query the internal system catalog views. One main view lists every role created inside the data warehouse. It shows the role name, the role ID, and the owner. Another system view maps out which users hold which specific roles. A third view tracks how roles nest inside other parent roles.

To run a full check, an admin joins these views together. First, you pull the full list of roles from the main catalog. Next, you check the grant views to see who holds each role. Finally, you check the table and schema views to see what each role can read. This gives you a clear map of your warehouse rules.

Why role audits grow hard at scale

Role maps look clean on day one, but they get messy fast. Teams add new tables, schemas, and analysts every single week. Admins often nest roles three or four levels deep to save time. When a junior analyst gets a base role, they might inherit hidden admin rights.

System views only show the current state of your permission rules. They do not explain why someone gave a role extra rights six months ago. Removing a role becomes scary because you might break a live dashboard. Many teams leave old roles alone because they fear breaking production apps. Also, external identity tools can map groups straight to database roles. When that happens, you have to check two systems to see the full picture.

Redshift Security + Lambda Execution Roles: architecture patterns and best practices

Continue reading? Get the full guide.

Free. No spam. Unsubscribe anytime.

What native roles solve and what they miss

Native database roles are great for grouping users and setting base rules. They let you control who can log in and which schemas they see. They also stop standard users from dropping tables or changing cluster settings. Every data team needs a clean role setup as a first step.

Still, native roles only check permissions when a session starts or a table opens. Once a user has read rights on a table, they see every column by default. A role cannot stop a valid user from running a massive export query. It also cannot rewrite sensitive fields like emails or phone numbers in flight. If an analyst queries a customer table, the database returns raw card numbers and national IDs. Native roles decide who gets in, not what each query does in real time.

Govern statements and responses across databases and APIs

Good config and scoped roles are needed setup. They do not check single queries in flight or mask sensitive fields in returned rows. Across Postgres, MySQL, SQL Server, MongoDB, ClickHouse, Kubernetes APIs, SSH, and internal HTTP endpoints, hoop.dev sits inline in the protocol beside each supported service as an open-source proxy, a sidecar for your database or API. For every query or command an AI agent or engineer runs against production, hoop.dev decides to pass, mask, block, or hold it for human approval.

First, hoop.dev guardrails block banned queries before they run or hold risky ones for review, and hoop.dev data masking rewrites matched sensitive values in responses in memory. Furthermore, hoop.dev holds SOC 2 Type II and is open source on GitHub.

Frequently asked questions

Who has permission to view all roles in a cluster?

Superusers and users with system admin rights can see every role in the cluster. Standard users can only see their own roles and roles they own.

How do nested roles affect a permission audit?

Nested roles pass all their rights down to the child role. You must trace the full chain of parent roles to see what a user can do.

What is the difference between a user group and a role?

Roles can nest inside other roles and offer finer control over system tasks. Groups are an older feature that flatly assigns table rights to a set of users.

Save the open-source gateway.

hoop is MIT-licensed infrastructure for controlling how AI agents reach production data. Star hoophq/hoop so you can inspect it, deploy it, or share it when your team starts governing agent access.