Redrock Postgres 文档
主页 切换暗/亮/自动模式 切换暗/亮/自动模式 切换暗/亮/自动模式 返回首页

42501 权限不足

错误: 访问关系权限不允许

如果遇到如下所示的错误消息,则表示您无权访问特定的表或视图。

mydb=> select * from students;
ERROR: permission denied for relation students

我们必须为有问题的用户授予所有权限。此外,需要以超级用户或具有可授予权限的用户身份进行授权。

  1. 以超级用户或具有可授予权限的用户连接。
  2. 连接到表所在的数据库。
  3. 然后,运行以下命令向用户david授予表“students”上的所有权限。
GRANT ALL PRIVILEGES ON TABLE students TO david;

错误: 访问模式权限不允许

如果遇到如下所示的错误消息,则表示您无权访问特定的模式,即使您对该模式的表具有查询权限。

mydb=> select * from scott.students;
ERROR: permission denied for schema scott

默认情况下,用户无法访问他们不拥有的模式中的任何对象。若要允许这样做,模式的所有者必须授予模式的使用权限。我们必须向有问题的用户授予对该模式的使用权限。此外,需要以超级用户或具有可授予权限的用户身份进行授权。

  1. 以超级用户或具有可授予权限的用户连接。
  2. 连接到模式所在的数据库。
  3. 然后,运行以下命令以向用户david授予对该模式的使用权限。
GRANT USAGE ON SCHEMA scott TO david;

错误: 必须是函数的所有者

如果您遇到如下所示的错误消息,则表示当您尝试替换现有函数的当前定义时,您不是该特定函数的所有者。

CREATE OR REPLACE FUNCTION increment(i integer)
  RETURNS integer AS $$
BEGIN
  RETURN i + 1;
END $$ LANGUAGE plpgsql;

ERROR: must be owner of function increment

您必须拥有函数才能替换它(这包括成为对象所有者角色的成员)。若要替换现有定义,请使用作为该函数所有者的用户连接到数据库。