📜  数据库所有者无法创建新表 postgres - SQL (1)

📅  最后修改于: 2023-12-03 15:39:58.265000             🧑  作者: Mango

数据库所有者无法创建新表 postgres - SQL

在 PostgreSQL 数据库中,由于权限限制,数据库所有者可能会发现无法创建新表,并会收到以下错误消息:

ERROR:  permission denied for schema public
SQL state: 42501

这是因为数据库所有者需要在自己名下的模式中进行操作,而在 public 模式下并没有足够的权限进行表的创建。

为了解决此问题,我们可以按照以下步骤操作:

  1. 使用管理员账户登录 PostgreSQL 数据库。

  2. 创建一个新的模式,并将其赋予所有者的权限:

CREATE SCHEMA example_schema AUTHORIZATION owner;
  1. 在新的模式下创建新的表:
CREATE TABLE example_schema.example_table (
    id SERIAL PRIMARY KEY,
    name TEXT
);
  1. 然后使用以下命令授予其他用户访问新表的权限:
GRANT SELECT, INSERT, UPDATE, DELETE ON example_schema.example_table TO someuser;

上述步骤中,我们使用了 CREATE SCHEMA 命令来创建一个新的模式,并使用 AUTHORZATION 选项将其指定为数据库所有者。然后我们在新的模式中创建了一个新的表,并使用 GRANT 命令将访问权限授予其他用户。

通过以上操作,数据库所有者可以成功创建新表及授予访问权限。

希望本篇介绍能解决您在 PostgreSQL 数据库中遇到的问题。