以下是似乎可以用来创建新用户(登录)并为PostgreSQL上的一个指定表授予只读访问权限的命令列表。
假设这些命令是在具有足够特权的登录时执行的(即postgres默认安装中的登录)。
CREATE ROLE user_name NOSUPERUSER NOCREATEDB
NOCREATEROLE NOINHERIT LOGIN PASSWORD 'pwd' VALID UNTIL 'infinity';
现在,我想授予数据库select上的表的权限,因此就可以了(通过PgAdmin或类似方法将数据库选择为当前数据库):tab_abcdb_xyzdb_xyz
grant select on tab_abc to user_name;
现在的问题是:这是足够的,或者应该有更多的赠款(数据库connect,usage也许)?
这些命令似乎对我有用,但是我的默认安装具有默认的安全设置。如果服务器管理员配置了更强的安全性,我还应该添加哪些其他赠款?
看来,我不需要批准connect,也没有usage-而授予是implicite select?总是这样吗?