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