Bird
Raised Fist0
PostgreSQLquery~5 mins

Table-level permissions in PostgreSQL - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What are table-level permissions in PostgreSQL?
Table-level permissions control what actions users can perform on entire tables, such as SELECT, INSERT, UPDATE, and DELETE.
Click to reveal answer
beginner
Which SQL command is used to grant table-level permissions in PostgreSQL?
The GRANT command is used to give users specific permissions on tables.
Click to reveal answer
beginner
How do you revoke table-level permissions from a user in PostgreSQL?
Use the REVOKE command followed by the permission type and the user name to remove permissions on a table.
Click to reveal answer
beginner
What does the following command do?
GRANT SELECT ON employees TO alice;
It allows the user 'alice' to read data from the 'employees' table but not modify it.
Click to reveal answer
intermediate
Can table-level permissions be granted to roles in PostgreSQL?
Yes, permissions can be granted to roles, which are groups of users, to simplify permission management.
Click to reveal answer
Which command grants a user permission to insert data into a table?
AGRANT INSERT ON table_name TO user_name;
BREVOKE INSERT ON table_name FROM user_name;
CGRANT SELECT ON table_name TO user_name;
DDROP TABLE table_name;
What does the REVOKE command do in PostgreSQL?
ARemoves permissions from a user
BGives permissions to a user
CCreates a new table
DDeletes data from a table
If you want a user to only read data from a table, which permission should you grant?
ADELETE
BUPDATE
CINSERT
DSELECT
Can you grant multiple permissions in one GRANT command?
ANo, only one permission at a time
BYes, by listing them separated by commas
COnly if the user is a superuser
DOnly for SELECT and INSERT
What happens if a user has no permissions on a table?
AThey can read but not write
BThey can write but not read
CThey cannot access the table at all
DThey become the table owner
Explain how to grant and revoke table-level permissions in PostgreSQL.
Think about the commands that control access to tables.
You got /5 concepts.
    Describe why table-level permissions are important in database security.
    Consider what could happen if everyone had full access to all tables.
    You got /5 concepts.

      Practice

      (1/5)
      1. What does the GRANT SELECT ON table_name TO user_name; command do in PostgreSQL?
      easy
      A. Removes all permissions from the user on the specified table.
      B. Allows the user to delete data from the specified table.
      C. Creates a new table with the given name.
      D. Allows the user to read data from the specified table.

      Solution

      1. Step 1: Understand the GRANT command

        The GRANT command is used to give specific permissions to users on database objects like tables.
      2. Step 2: Identify the permission type SELECT

        SELECT permission allows reading data from the table but not modifying it.
      3. Final Answer:

        Allows the user to read data from the specified table. -> Option D
      4. Quick Check:

        GRANT SELECT = read permission [OK]
      Hint: GRANT SELECT means read access only [OK]
      Common Mistakes:
      • Confusing SELECT with DELETE permission
      • Thinking GRANT creates tables
      • Mixing GRANT with REVOKE commands
      2. Which of the following is the correct syntax to revoke INSERT permission on a table named employees from user john?
      easy
      A. REVOKE INSERT TO john ON employees;
      B. REVOKE ON employees INSERT FROM john;
      C. REVOKE INSERT ON employees FROM john;
      D. REVOKE INSERT FROM john ON employees;

      Solution

      1. Step 1: Recall REVOKE syntax

        The correct syntax is REVOKE permission ON table FROM user;
      2. Step 2: Match syntax with options

        REVOKE INSERT ON employees FROM john; matches the correct order: REVOKE INSERT ON employees FROM john;
      3. Final Answer:

        REVOKE INSERT ON employees FROM john; -> Option C
      4. Quick Check:

        REVOKE permission ON table FROM user [OK]
      Hint: REVOKE syntax: REVOKE permission ON table FROM user [OK]
      Common Mistakes:
      • Swapping ON and FROM keywords
      • Using TO instead of FROM
      • Incorrect order of clauses
      3. Given the commands:
      GRANT SELECT ON orders TO alice;
      GRANT INSERT ON orders TO bob;
      REVOKE SELECT ON orders FROM alice;

      Which of the following is true about user permissions on the orders table?
      medium
      A. Alice cannot read data; Bob can insert data.
      B. Alice can read and insert data; Bob can only insert data.
      C. Alice can read data; Bob cannot insert data.
      D. Both Alice and Bob have no permissions on the table.

      Solution

      1. Step 1: Analyze granted permissions

        Alice was granted SELECT (read) permission, Bob was granted INSERT permission.
      2. Step 2: Analyze revoked permissions

        Alice's SELECT permission was revoked, so she no longer can read data.
      3. Final Answer:

        Alice cannot read data; Bob can insert data. -> Option A
      4. Quick Check:

        Revoked SELECT removes read access [OK]
      Hint: Revoking removes permission even if previously granted [OK]
      Common Mistakes:
      • Assuming revoked permission still applies
      • Confusing INSERT with SELECT
      • Thinking REVOKE affects other users
      4. Consider this command:
      GRANT UPDATE ON customers TO ;

      What is the error in this command?
      medium
      A. Missing user name after TO keyword.
      B. UPDATE is not a valid permission.
      C. Table name is missing after ON keyword.
      D. GRANT cannot be used for UPDATE permission.

      Solution

      1. Step 1: Check syntax completeness

        The command ends with TO but does not specify a user or role name.
      2. Step 2: Validate permission and table name

        UPDATE is a valid permission and customers is the table name, so those parts are correct.
      3. Final Answer:

        Missing user name after TO keyword. -> Option A
      4. Quick Check:

        GRANT requires user after TO [OK]
      Hint: Always specify user after TO in GRANT [OK]
      Common Mistakes:
      • Leaving user name blank after TO
      • Confusing permission names
      • Omitting table name
      5. You want to allow user carol to read and insert data into the products table but prevent her from deleting or updating any data. Which commands should you use?
      hard
      A. GRANT ALL ON products TO carol; REVOKE DELETE, UPDATE ON products FROM carol;
      B. GRANT SELECT, INSERT ON products TO carol; REVOKE DELETE, UPDATE ON products FROM carol;
      C. GRANT SELECT, INSERT, DELETE ON products TO carol;
      D. GRANT SELECT ON products TO carol; GRANT INSERT ON products TO carol;

      Solution

      1. Step 1: Grant only SELECT and INSERT permissions

        To allow reading and inserting, grant SELECT and INSERT on products to carol.
      2. Step 2: Revoke DELETE and UPDATE permissions

        To prevent deleting or updating, explicitly revoke DELETE and UPDATE permissions if previously granted.
      3. Final Answer:

        GRANT SELECT, INSERT ON products TO carol; REVOKE DELETE, UPDATE ON products FROM carol; -> Option B
      4. Quick Check:

        Grant needed permissions, revoke unwanted ones [OK]
      Hint: Grant needed permissions, revoke unwanted explicitly [OK]
      Common Mistakes:
      • Granting ALL permissions instead of specific ones
      • Not revoking unwanted permissions
      • Granting DELETE or UPDATE by mistake