Re: User Privileges Issue - Mailing list pgsql-admin

From Asad Ali
Subject Re: User Privileges Issue
Date
Msg-id CAJ9xe=tL62Nx3LX1nJOrpjC-C=z1JzA8k7F1oJgGt6TgUKd93w@mail.gmail.com
Whole thread Raw
In response to User Privileges Issue  (somnath som <som.somnath16@gmail.com>)
List pgsql-admin
Hi Somnath,

I am sharing how it worked for me.
Kindly let me know if you have any questions.

-- Create user 
CREATE USER test_user WITH PASSWORD 'test_password';

-- Grant some basic privileges
GRANT CONNECT ON DATABASE postgres TO  test_user;
GRANT USAGE ON SCHEMA public TO Test_User;
GRANT CREATE ON SCHEMA public TO Test_User;
CREATE TABLE public.test_table (id SERIAL PRIMARY KEY, data TEXT);
GRANT SELECT, INSERT, UPDATE, DELETE ON public.test_table TO Test_User;

-- Create a sequence &  Grant usage and update privileges
CREATE SEQUENCE public.test_seq;
GRANT USAGE, SELECT, UPDATE ON SEQUENCE public.test_seq TO Test_User;

-- Create a function
CREATE FUNCTION public.test_function() RETURNS void AS $$
BEGIN
    RAISE NOTICE 'Test function executed';
END;
$$ LANGUAGE plpgsql;

-- Grant execute privilege on the function
GRANT EXECUTE ON FUNCTION public.test_function() TO test_user;

-- Check Table Privileges:
SELECT grantee, table_catalog, table_schema, table_name, privilege_type FROM information_schema.role_table_grants WHERE grantee = 'test_user';
  grantee  | table_catalog | table_schema | table_name | privilege_type
-----------+---------------+--------------+------------+----------------
 test_user | postgres      | public       | test_table | INSERT
 test_user | postgres      | public       | test_table | SELECT
 test_user | postgres      | public       | test_table | UPDATE
 test_user | postgres      | public       | test_table | DELETE
(4 rows)

-- Check Schema Privileges:
SELECT * FROM information_schema.role_usage_grants WHERE grantee = 'test_user';
 grantor  |  grantee  | object_catalog | object_schema | object_name | object_type | privilege_type | is_grantable
----------+-----------+----------------+---------------+-------------+-------------+----------------+--------------
 postgres | test_user | postgres       | public        | test_seq    | SEQUENCE    | USAGE          | NO
(1 row)

-- Check All Object Privileges:
SELECT * FROM information_schema.table_privileges WHERE grantee = 'test_user';
 grantor  |  grantee  | table_catalog | table_schema | table_name | privilege_type | is_grantable | with_hierarchy
----------+-----------+---------------+--------------+------------+----------------+--------------+----------------
 postgres | test_user | postgres      | public       | test_table | INSERT         | NO           | NO
 postgres | test_user | postgres      | public       | test_table | SELECT         | NO           | YES
 postgres | test_user | postgres      | public       | test_table | UPDATE         | NO           | NO
 postgres | test_user | postgres      | public       | test_table | DELETE         | NO           | NO
(4 rows)

Regards,
Asad Ali

On Fri, Aug 30, 2024 at 4:38 PM somnath som <som.somnath16@gmail.com> wrote:

We have one user like “Test_User”, Can I check what all previliges are there for “Test_User”.

When running \du+ command then only can see for superuser, others user are not showing.

Please provide me command to check what all previliges are there for a user.

pgsql-admin by date:

Previous
From: Asad Ali
Date:
Subject: Re: Duplicate Extended Statistics
Next
From: Rajesh Kumar
Date:
Subject: Re: Basebackup