我想知道从表中选择/插入/更新/删除至少需要哪些授权。
假设我在数据库t
的模式中有一个表和一个角色。s
d
r
我首先授予上述所需的权限:
grant select, insert, update, delete on table s.t to r;
我还需要什么?USAGE
对模式s
和CONNECT
对数据库是否绝对需要,但也足够了?
grant connect on database d to r;
grant usage on schema s to r;
没有必要和足够的授权的简单列表,因为可以使用多个路径。例如,数据库上的 CONNECT 和模式上的 USAGE 通常是通过“PUBLIC”而不是单个角色完成的。
默认情况下,新创建的数据库将具有 PUBLIC 的 CONNECT 权限,因此除非您特意删除它,否则在这种情况下不需要显式授予。当您创建一个数据库时,它会附带一个名为“public”的模式,该模式也将 USAGE 授予 PUBLIC,但您手动创建的模式不具有该特权。