Re: Can't create a table with vector type as a non-super user - Mailing list pgsql-general

From Tom Lane
Subject Re: Can't create a table with vector type as a non-super user
Date
Msg-id 498208.1759249713@sss.pgh.pa.us
Whole thread Raw
In response to Can't create a table with vector type as a non-super user  (mrudula attili <mrudula.attili@gmail.com>)
List pgsql-general
mrudula attili <mrudula.attili@gmail.com> writes:
> But a non super user (a read write user of the database) is not able to
> create a table with vector type and keeps getting the below error.

> CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3))
> [2025-09-30 09:22:29] [42704] ERROR: type "vector" does not exist
> [2025-09-30 09:22:29] Position: 57

Well, you have to grant usage on whatever schema the type is in.

> As its a production environment, we are not really happy to give away the
> usage on public schema.

This seems like a very strange requirement.  What are you keeping in
"public" that you don't want to be generally available in that
database, and why?  You do understand the difference between USAGE
and CREATE privileges for schemas, right?

> Is there a way we could get the end users make use of the extension without
> granting usage on public schema

You could put it in some other schema, but then users would have to
adjust their search_path or name the schema explicitly.  The design
expectation is that you use the public schema for stuff that should
be available to all SQL users, and put stuff that needs more
protection in some other schema(s).

There is a reasonable debate about whether giving out CREATE privilege
on the public schema is a good idea (probably not, if you have
not-fully-trustworthy users).  But I'm having a hard time seeing why
you'd not want to give out USAGE.

            regards, tom lane



pgsql-general by date:

Previous
From: Merlin Moncure
Date:
Subject: Re: Downgrade pgsql 17 to pgsql 12 question
Next
From: Adrian Klaver
Date:
Subject: Re: Can't create a table with vector type as a non-super user