Courseiva
Database SecurityhardMultiple ChoiceObjective-mapped

Redshift Column-Level Security: Table-Level Grant Override Issue

A company uses Amazon Redshift for data warehousing. The security team has implemented column-level security using Redshift's column-level access controls. However, during a security audit, it is discovered that a user with SELECT privilege on a table can still see the content of a column that should be restricted. The column is defined with a GRANT statement that only allows SELECT on certain columns to specific users. What is the most likely cause of this issue?

Quick Answer

The answer is that the user was previously granted SELECT on the entire table, and the column-level GRANT did not revoke that broader permission. This is because Redshift’s column-level security operates on an additive model: a column-level GRANT only adds access for specific columns, but it never implicitly revokes any existing table-level privileges. If a user already holds SELECT on the whole table, they retain visibility into all columns, including those you intended to restrict. On the AWS Certified Database Specialty DBS-C01 exam, this scenario tests your understanding of how Redshift’s authorization hierarchy works—specifically that column-level controls are a refinement, not a replacement, for table-level grants. A common trap is assuming a column-level GRANT automatically overrides a prior table-level SELECT; in reality, you must explicitly REVOKE the table-level privilege first. Memory tip: “Additive access, never subtractive—revoke the table before you restrict the column.”

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

The user was previously granted SELECT on the entire table, and the column-level GRANT did not revoke that broader permission.

Column-level GRANTs in Redshift do not revoke existing table-level permissions. If a user was previously granted SELECT on the entire table, that permission remains even after a column-level GRANT is applied. To restrict access, the table-level SELECT must be revoked first, then column-level GRANTs can be applied to specific columns. Option A is incorrect because distribution keys do not bypass column-level security. Option B is incorrect because stored procedures inherit the caller's permissions and do not bypass column-level security. Option C is incorrect because Redshift does support column-level security via GRANT statements.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • The column is part of a distribution key that bypasses security controls.

    Why it's wrong here

    Distribution keys do not affect security.

  • The user is accessing the table via a stored procedure that bypasses column-level security.

    Why it's wrong here

    Stored procedures run with definer's rights, but column-level security still applies.

  • The column-level security is not supported in Redshift; it must be implemented using views.

    Why it's wrong here

    Redshift does support column-level GRANTs.

  • The user was previously granted SELECT on the entire table, and the column-level GRANT did not revoke that broader permission.

    Why this is correct

    Column-level GRANTs are additive; they do not remove existing table-level permissions.

About these practice questions

This DBS-C01 question is part of Courseiva's 1,663-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

Same concept, more angles

1 more way this is tested on DBS-C01

These questions test the same concept from different angles. Work through them to make sure you can recognise it however the exam phrases it.

Variation 1. A company is using Amazon Redshift for data warehousing. The security team requires column-level access control so that certain users cannot view specific columns containing PII. Which approach should the data engineer implement?

hard
  • A.Create views that exclude the sensitive columns and grant SELECT on the views to the users.
  • B.Implement row-level security policies using CREATE ROW LEVEL SECURITY POLICY.
  • C.Use GRANT SELECT ON table (col1, col2) TO user.
  • D.Encrypt the sensitive columns using AWS KMS and decrypt in the application.

Why A: The correct approach is to create views that exclude sensitive columns and grant SELECT on those views to the users (Option A). Amazon Redshift supports column-level security via views; you grant access to the view rather than the underlying table. Option B is incorrect because row-level security policies (e.g., in PostgreSQL) are not available in Redshift. Option C is incorrect because although Redshift does support column-level GRANT (e.g., GRANT SELECT ON table (col1) TO user), creating views is the more standard and manageable approach for column-level access control. Option D is incorrect because column-level encryption with AWS KMS does not provide fine-grained access control; it only protects data at rest and requires application changes for decryption.

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This DBS-C01 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the DBS-C01 exam.