以下是似乎可用于创建新用户(登录)并授予对 PostgreSQL 上指定表的只读访问权限的命令列表。
让我们假设这些命令是在具有足够权限的登录时执行的(即postgres在默认安装中登录)。
CREATE ROLE user_name NOSUPERUSER NOCREATEDB
NOCREATEROLE NOINHERIT LOGIN PASSWORD 'pwd' VALID UNTIL 'infinity';
Run Code Online (Sandbox Code Playgroud)
现在我想在 database上授予select表,所以在这里(通过 PgAdmin 或类似的方式将数据库选为当前数据库):tab_abcdb_xyzdb_xyz
grant select on tab_abc to user_name;
Run Code Online (Sandbox Code Playgroud)
问题是:这是否足够,还是应该有更多的资助(数据库connect,usage也许)?
这些命令似乎对我有用,但我的默认安装具有默认安全设置。如果服务器管理员配置了更强的安全性,我应该添加哪些额外的授权?
似乎我不需要授予connect也usage- 在授予时是隐含的select吗?总是这样吗?