Search Postgresql Archives

Re: UUID generation problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/5/20 12:03 PM, James B. Byrne wrote:


On Mon, October 5, 2020 13:34, Paul Förster wrote:

well, actually, you can just set the search_path for the role the application
logs in with:

alter role <app_role> set search_path = '<schema>, pg_catalog, public';

The next time <app_role> logs in, it should see the freshly set search_path.

When we create an app schema and role set in our databases, we always do this
to make sure that the application role always finds its schema. We never had
any problems with this.

https://www.postgresql.org/docs/current/ddl-schemas.html#DDL-SCHEMAS-PATH
https://www.postgresql.org/docs/current/sql-alterrole.html

Hope this helps,
Paul

idempiere(5432)=# select schema_name
idempiere-# from information_schema.schemata;
     schema_name
--------------------
  public
  information_schema
  pg_catalog
  pg_toast_temp_1
  pg_temp_1
  pg_toast
  adempiere
(7 rows)

Do I infer from this that the application installer adds a schema called
adempiere; regardless of what username I choose for the database owner? Or did
I cause this selection of schema name through some explicit action of my own?

I'm guessing the installer did this as namespace(schema) to place the application specific objects. You would have to look at the installer code or ask the application authors.


I also infer that this can be corrected in the manner suggested by issuing:

alter role idempiere-dbadmin set search_path = 'adempiere, pg_catalog, public';

Is this correct?

Yes, but leave out pg_catalog. It is an implicit schema and does not need to be mentioned and as Tom mentioned it could pose a security risk.




As to below hard to say without recreating all the steps you took.

Again, is this setup something that is 'live' or can you start over with a cleaner install?

When I created the user adempiere I used this:

su - postgres -c 'createuser -S -d -r -l -P adempiere'

Now, man createuser says this:
. . .
        -S
        --no-superuser
            The new user will not be a superuser. This is the default.
. . .

But, psql says this (somewhat compressed):

idempiere(5432)=# \du

                      List of roles
Role name          | Attributes    |  Member of
adempiere          | Superuser     | {}
. . .

So, as I specified -S (--no-superuser when creating this user how comes it that
the adempiere username does, in fact, have the Superuser privilege?  This is
not something that I am conscious of having granted.  For that matter, I first
would have to research the exact command syntax to carry it out.

Something in the installer must be doing something to the adempiere role, but I
cannot find where.



--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux