Postgres Users, Windows Server Users and groups

Paul Mulroney pmulroney at
Mon Aug 29 13:30:12 UTC 2022

Hi Martin,

This is what the code would look like in Omnis - you don't need to create an Omnis Scheme to fetch the information, just load the results into a list: (Studio 10.2)

Create a list var vlResults, and two char vars role_name and role_attributes.  Have an object var voStatement, and a session object (voSession) already defined and setup.

# Assume that you already have a Postgres session that you've connected to.
Do vlResults.$define(role_name,role_attributes) ## Define the list to hold the results
Do voSession.$newstatement Returns voStatement ## Get a new statement object to process
Begin statement ## Setup the SQL query in Postgres.
Sta: SELECT usename AS role_name,
Sta:   WHEN usesuper AND usecreatedb THEN
Sta:     CAST('superuser, create database' AS pg_catalog.text)
Sta:   WHEN usesuper THEN
Sta:     CAST('superuser' AS pg_catalog.text)
Sta:   WHEN usecreatedb THEN
Sta:     CAST('create database' AS pg_catalog.text)
Sta:   ELSE
Sta:     CAST('' AS pg_catalog.text)
Sta: END role_attributes
Sta: FROM pg_catalog.pg_user
Sta: ORDER BY role_name desc;
End statement
Get statement vsQuery ## Get in a char field so we can debug later if we need to.
Do voStatement.$execdirect(vsQuery) ## Run it
If voStatement.$errorcode=kDAMNoError ## Was there an error?
Do voStatement.$fetch(vlResults,kFetchAll) ## No, get all results.
# Report error here
End If
# At this point you'll have a list of users and roles in vlResults
Quit method 


> On 29 Aug 2022, at 6:12 pm, Martin Obongita <martin.obongita at> wrote:
> Hi Paul,
> Thank you for the query.
> How do I create the Omnis schema for the Postgres users?
> Rgds,
> Martin O.
> On Monday, August 29, 2022 at 04:27:41 AM GMT+3, Paul Mulroney <pmulroney at> wrote:
> Hi Martin,
> You can get the list of Postgres users with a query:
> SELECT usename AS role_name,
>   WHEN usesuper AND usecreatedb THEN
>     CAST('superuser, create database' AS pg_catalog.text)
>   WHEN usesuper THEN
>     CAST('superuser' AS pg_catalog.text)
>   WHEN usecreatedb THEN
>     CAST('create database' AS pg_catalog.text)
>   ELSE
>     CAST('' AS pg_catalog.text)
> END role_attributes
> FROM pg_catalog.pg_user
> ORDER BY role_name desc;
> This is assuming you have already logged into Postgres.
> Regards,
> Paul.
> > On 29 Aug 2022, at 6:34 am, Martin Obongita via omnisdev-en <omnisdev-en at> wrote:
> > 
> > Hi ALL,
> > How do I get a list of all users created in my Postgres database on to Omnis?How do I get a list of all active directory users and groups created in a windows server?Is there a function to get this info?
> > I wonder if its also possible to get the passwords as well.
> > In other words, is there a way to setup my application to use the two securities already setup to logon to my application?I wish to have the option for end-users to chose to logon to my application with either setup.
> > 
> > Kind regards,Martin O. 
> > _____________________________________________________________
> > Manage your list subscriptions at
> > Start a new message -> mailto:omnisdev-en at 
> If you are wise you will only believe half of what you hear.  if you are brilliant you will know which half to believe.
> -- 
> Paul W. Mulroney                                            We Don't Do Simple Pty Ltd 
> pmulroney at      Trading as Logical Developments
>                  ACN 161 009 374 
> Ph: +61 8 9458 3889                                      86 Coolgardie Street
>                                                                         BENTLEY  WA  6102

 	Paul W Mulroney
Logical Developments
Customised Software Solutions
Ph: 08 9458 3889
 	We Don't Do Simple Pty Ltd
trading as
Logical Developments
ACN 161 009 374

More information about the omnisdev-en mailing list