当我在tails = Lists.transform(cats, Cat::getTail)
中运行\l+
以获取所有数据库及其访问权限的列表时,我发现某些数据库具有空白访问权限。当psql
中的Access privileges
列为空白时,这意味着什么?
如果存在某种默认值,我怎样才能看到默认值是什么?
psql
答案 0 :(得分:5)
What does it mean when the Access privileges column is blank
如果"访问权限"对于给定对象,column为空,表示该对象具有默认权限(即,其privileges属性为null)。默认权限始终包含所有者的所有权限,并且可以包括PUBLIC的某些权限,具体取决于对象类型,如上所述
默认权限也是documented in the manual:
PostgreSQL将某些类型的对象的默认权限授予PUBLIC。默认情况下,对表,列,模式或表空间不授予PUBLIC权限。对于其他类型,授予PUBLIC的默认权限如下:CONNECT和CREATE TEMP TABLE for databases;函数的EXECUTE特权;和语言的USAGE特权。当然,对象所有者可以修改默认和明确授予的权限。 (为了最大限度地提高安全性,请在创建对象的同一事务中发出REVOKE;然后没有其他用户可以使用该对象的窗口。)此外,可以使用ALTER DEFAULT PRIVILEGES命令更改这些初始默认权限设置。 / p>