当psql具有空白数据库访问权限时,这意味着什么?

时间:2017-02-09 21:22:55

标签: postgresql

当我在tails = Lists.transform(cats, Cat::getTail)中运行\l+以获取所有数据库及其访问权限的列表时,我发现某些数据库具有空白访问权限。当psql中的Access privileges列为空白时,这意味着什么?

如果存在某种默认值,我怎样才能看到默认值是什么?

psql

1 个答案:

答案 0 :(得分:5)

  

What does it mean when the Access privileges column is blank

Quote from the manual:

  

如果"访问权限"对于给定对象,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>