如何更改postgresql中表的权限?

use*_*919 2 postgresql pgadmin sql-grant

我尝试向 postgresql 中的表“MEMBERS”授予特定权限,但没有任何变化。更具体地说,我这样做(通过 pgadmin 控制台):

    CREATE DATABASE login;
    CREATE USER loginUser WITH PASSWORD 'xxxxxxxxxxxxx';

    CREATE TABLE members (
     id serial NOT NULL,
     username varchar(30) NOT NULL
     PRIMARY KEY(id)
    )

    ALTER USER loginuser WITH SUPERUSER;
    ALTER TABLE members OWNER TO loginuser;

    GRANT SELECT, UPDATE, INSERT, DELETE ON members TO loginuser;
Run Code Online (Sandbox Code Playgroud)

查询成功返回,但是当我通过 pgadmin gui 检查表的权限时,所有这些都被选中。

我缺少什么?

Mik*_*ll' 5

默认情况下,表的所有者对其拥有完全权限。如果您希望“loginuser”仅具有选择、更新、插入和删除权限,通常会先撤销所有权限,然后仅授予这四种权限。

revoke all on members from loginuser;
grant select, update, insert, delete on members to loginuser;
Run Code Online (Sandbox Code Playgroud)

这看起来对你有用,但实际上不会。数据库超级用户可以撤销表所有者的权限。但您已将“loginuser”设置为超级用户。无论您撤销什么权限,“loginuser”都可以授予自己权限。

您需要更仔细地考虑您要在这里完成的任务。