用户

时间:2019-01-11 09:12:13

标签: postgresql

我在生产系统中已有一个正在运行的postgres安装。我需要创建新表。我创建了表,并尝试与用户一起使用PHP使用的表。

my_user_1701usr@pg01cid1701db01 ERROR:  permission denied for relation lstats_2019

好的。那讲得通。我没有定义任何默认权限,所以也许我必须将权限授予用户:

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public to my_user_1701usr;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public to my_user_1701usr;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public to my_user_1701usr;

因此,请重试:

my_user_1701usr@pg01cid1701db01 ERROR:  permission denied for relation lstats_2019

嗯。还是行不通。但为什么?用户“ theusername”是数据库的所有者。此外,我向该用户授予了所有可能的权限。我什至尝试指定表格:

grant all on tablename to my_user_1701usr;

但是,即使我将表的所有者设置为现有用户,它仍然无法正常工作。所以我想:也许该用户以某种方式损坏并创建了一个新用户:

create user my_user_new with password 'test';

现在我得到了错误:

password authentication failed for user "my_user_new"

我尝试了不同的解决方案:

alter role my_user_new password 'md5herethehash'; -- md5 is configured in pg_hba.conf
alter role my_user_new encrypted password 'md5herethehash';

但是我仍然遇到相同的错误:

password authentication failed for user "my_user_new"

现在我不知道了。较旧的用户可以连接,但是我无法访问新表,尽管该用户是数据库和表的所有者,并被授予了所有可能的权限。新创建的用户无法使用我可以在Google上找到的任何方法连接到数据库。

我还检查了postgres日志本身。但是它们只包含与PHP进程日志相同的信息。我不知道如何进行。你有什么主意吗?

现在谢谢!

最好的问候

mschop


编辑1: 根据要求:Postgres版本:90514


编辑2:

“ \ dn + public”的输出:

  Name  |      Owner      |         Access privileges          |      Description
--------+-----------------+------------------------------------+------------------------
 public | my_user_1701usr | my_user_1701usr=UC/my_user_1701usr+| standard public schema
        |                 | =UC/my_user_1701usr                |

“ \ dp public.lstats_2019”的输出:

 Schema |    Name     | Type  |            Access privileges            | Column privileges | Policies
--------+-------------+-------+-----------------------------------------+-------------------+----------
 public | lstats_2019 | table | my_user_1701usr=arwdDxt/my_user_1701usr |                   |
(1 row)

更新:

我刚刚删除了表,并在my_user_1701usr用户而不是postgres下重新创建了这些表。似乎现在可以工作。但是我不明白为什么。所以我把这个问题留待解决。

0 个答案:

没有答案