Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
42501:在Postgresql中查询时出现权限不足错误_Sql_Database_Postgresql 9.2 - Fatal编程技术网

42501:在Postgresql中查询时出现权限不足错误

42501:在Postgresql中查询时出现权限不足错误,sql,database,postgresql-9.2,Sql,Database,Postgresql 9.2,我试图在postgresql中查询数据库表,但每次运行下面的查询时,都会出现权限不足错误。这种被拒绝许可的错误原因可能是什么。另外,我在windows中使用pgadmin工具连接Linux环境中的数据库。下面是我正在运行的查询 > > SELECT appid,hash > FROM app > WHERE appid=1; 在运行相同的查询时,我得到以下错误 ERROR: permission denied for relation app

我试图在postgresql中查询数据库表,但每次运行下面的查询时,都会出现权限不足错误。这种被拒绝许可的错误原因可能是什么。另外,我在windows中使用pgadmin工具连接Linux环境中的数据库。下面是我正在运行的查询

> > SELECT appid,hash 
>       FROM app
>       WHERE appid=1;
在运行相同的查询时,我得到以下错误

ERROR:  permission denied for relation app

********** Error **********

ERROR: permission denied for relation app
SQL state: 42501

运行查询的用户将需要该表的权限。您可以使用grant语句将它们授予该用户。下面是一个向公众提供资助的例子

GRANT SELECT ON tablename TO PUBLIC;
我也看到过SELinux的原因和一些地方,比如提到它。我不能完全确定关闭SELinux的命令,但您可以通过使用

selinuxenabled && echo enabled || echo disabled

这仅仅意味着您无权访问应用程序表。请求您的root或数据库管理员授予您访问应用程序表的权限。如果您是根用户或具有授予权限,则可以使用grant命令授予自己使用表或数据库上所有sql语句的权限
例如:


在此之前,您必须以root用户或具有授予权限的用户身份登录
有关此命令的更多详细信息,请参阅

如果是DB2,则转到DB2的命令控制台,通过右键单击数据库选择相应的数据库和权限选项,然后添加相应的DB2用户并授予所需的访问权限

您需要确保与您连接的用户对您试图与该用户访问的架构也具有“使用”权限。我最近遇到了一个错误,我将转储恢复到数据库中,然后有一些用户,我应该只向他们提供只读访问权限。我遵循了以下步骤-

CREATE ROLE myapp_readonly;
GRANT CONNECT ON DATABASE {database} TO myapp_readonly;
GRANT USAGE ON SCHEMA {schema} TO myapp_readonly;
GRANT SELECT ON TABLE {schema}.{table_name} TO myapp_readonly;
GRANT myapp_readonly TO {usre};
在执行这些步骤后,当我试图访问该表时,收到了以下错误-

SQL Error [42501]: ERROR: permission denied for schema {schema}

在我的例子中,我的用户已经可用,模式和数据库最近被恢复。在我向用户提供对模式的“使用”访问权限后,错误被解决。

是的,我正在LinuxHarper89上运行,我尝试了GRANT语句,但它仍然没有给我特权,而是显示了与之前相同的错误(42501),而且我还运行了上面提到的命令,它显示“已启用”原因可能是什么,是管理员还是“root”必须运行东西?@akiiddweeber NP。您可以在数据库上以管理员身份运行时尝试授予。以无法访问表的同一用户身份运行将不允许授予。在研究SELinux问题之前,我会先和有管理权限的人讨论一下赠款的情况。谢谢harper89的评论,我也在尝试了解同样的情况。
SQL Error [42501]: ERROR: permission denied for schema {schema}