Login roles let users access the database. Group roles help organize users and share permissions easily.
When you want to give a person access to the database with a username and password.
When you want to give the same permissions to many users at once.
When you want to manage user permissions in a simple way by grouping them.
When you want to add or remove users from a group to change their permissions quickly.
When you want to separate who can log in from what permissions they have.
Syntax
PostgreSQL
CREATE ROLE role_name [WITH LOGIN];
CREATE ROLE group_name;
GRANT group_name TO role_name;
Roles with LOGIN can connect to the database.
Group roles cannot log in but can hold permissions for many users.
Examples
This creates a login role named 'alice' who can connect to the database.
PostgreSQL
CREATE ROLE alice WITH LOGIN PASSWORD 'secret';
This creates a group role named 'developers' that cannot log in.
PostgreSQL
CREATE ROLE developers;
This adds 'alice' to the 'developers' group, giving her the group's permissions.
PostgreSQL
GRANT developers TO alice;
Sample Program
This example creates a login role 'bob' and a group role 'admins'. Then it adds 'bob' to 'admins'. Finally, it shows the roles and membership info.
PostgreSQL
CREATE ROLE bob WITH LOGIN PASSWORD 'mypassword';
CREATE ROLE admins;
GRANT admins TO bob;
-- Check roles and membershipsSELECT rolname, rolcanlogin FROM pg_roles WHERE rolname IN ('bob', 'admins');
SELECT roleid, member FROM pg_auth_members WHERE member = (SELECT oid FROM pg_roles WHERE rolname = 'bob');
OutputSuccess
Important Notes
Login roles are like user accounts.
Group roles are like teams or departments.
Users can belong to many groups to get combined permissions.
Summary
Login roles allow users to connect to the database.
Group roles organize users and share permissions easily.
Grant group roles to login roles to manage permissions efficiently.
Practice
(1/5)
1. Which of the following best describes a login role in PostgreSQL?
easy
A. A role used only to group other roles without login capability.
B. A role that can connect to the database and perform actions.
C. A temporary session role that disappears after logout.
D. A role that automatically grants all permissions to users.
Solution
Step 1: Understand the purpose of login roles
Login roles are created to allow users to connect to the database and perform tasks.
Step 2: Differentiate from group roles
Group roles are for organizing users and sharing permissions but cannot login themselves.
Final Answer:
A role that can connect to the database and perform actions. -> Option B
Quick Check:
Login role = can connect [OK]
Hint: Login roles can connect; group roles cannot [OK]
Common Mistakes:
Confusing group roles with login roles
Thinking group roles can login
Assuming login roles have no permissions
2. Which SQL command correctly creates a group role named managers without login capability?
easy
A. CREATE ROLE managers NOLOGIN;
B. CREATE ROLE managers LOGIN;
C. CREATE USER managers;
D. CREATE ROLE managers WITH LOGIN;
Solution
Step 1: Recall syntax for creating roles without login
To create a group role, use CREATE ROLE with NOLOGIN option.
Step 2: Analyze options
CREATE ROLE managers NOLOGIN; uses NOLOGIN correctly; options B and D enable login; CREATE USER managers; creates a login user.
Final Answer:
CREATE ROLE managers NOLOGIN; -> Option A
Quick Check:
Group role = NOLOGIN [OK]
Hint: Use NOLOGIN to create group roles [OK]
Common Mistakes:
Using LOGIN when creating group roles
Using CREATE USER instead of CREATE ROLE
Omitting NOLOGIN for group roles
3. Given the following commands:
CREATE ROLE analysts NOLOGIN;
CREATE ROLE alice LOGIN PASSWORD 'secret';
GRANT analysts TO alice;
What is true about alice after these commands?
medium
A. Alice can login and has permissions of analysts role.
B. Alice cannot login because analysts role has NOLOGIN.
C. Alice can login but does not inherit analysts permissions.
D. Alice is a group role and cannot login.
Solution
Step 1: Understand role creation and grants
Alice is a login role with password; analysts is a group role without login.
Step 2: Check role membership effect
Granting analysts to alice means alice inherits analysts permissions and can login.
Final Answer:
Alice can login and has permissions of analysts role. -> Option A
Quick Check:
Login role + granted group role = login + permissions [OK]
Hint: Login roles inherit group role permissions when granted [OK]
Common Mistakes:
Thinking NOLOGIN group role blocks login
Assuming permissions are not inherited
Confusing login and group roles
4. Identify the error in this SQL snippet:
CREATE ROLE developers;
CREATE ROLE bob LOGIN;
GRANT developers TO bob NOLOGIN;
medium
A. CREATE ROLE bob LOGIN is invalid syntax.
B. CREATE ROLE developers must include LOGIN.
C. Bob cannot be granted a role.
D. The GRANT statement incorrectly uses NOLOGIN.
Solution
Step 1: Review GRANT syntax
GRANT role TO user does not accept NOLOGIN; NOLOGIN is for CREATE ROLE only.
Step 2: Check other statements
CREATE ROLE developers is valid as group role; CREATE ROLE bob LOGIN is valid.
Final Answer:
The GRANT statement incorrectly uses NOLOGIN. -> Option D
Quick Check:
NOLOGIN only in CREATE ROLE, not GRANT [OK]
Hint: NOLOGIN is for CREATE ROLE, not GRANT [OK]
Common Mistakes:
Adding NOLOGIN in GRANT statement
Confusing role creation and granting syntax
Assuming all roles must have LOGIN
5. You want to create a setup where multiple users share the same permissions easily. Which approach is best in PostgreSQL?
hard
A. Create only group roles and let users login as group roles.
B. Create multiple login roles with identical permissions separately.
C. Create individual login roles and grant them a common group role.
D. Create login roles and assign permissions directly to each.
Solution
Step 1: Understand permission management
Group roles allow sharing permissions easily among many users.
Step 2: Evaluate options
Create individual login roles and grant them a common group role. uses group roles granted to login roles, best for easy permission management.
Step 3: Reject incorrect options
A is invalid as group roles cannot login; B duplicates permissions; D is less efficient.
Final Answer:
Create individual login roles and grant them a common group role. -> Option C
Quick Check:
Group roles + login roles = efficient permission sharing [OK]
Hint: Use group roles to share permissions among login roles [OK]
Common Mistakes:
Trying to login as group roles
Assigning permissions individually to each user
Duplicating permissions instead of grouping
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.