【发布时间】:2018-03-21 06:21:32
【问题描述】:
PostgreSQL 将某些类型对象的默认权限授予 PUBLIC。默认情况下,PUBLIC 不会对表、列、模式或表空间授予任何权限。对于其他类型,授予 PUBLIC 的默认权限如下: 数据库的 CONNECT 和 CREATE TEMP TABLE;函数的 EXECUTE 特权;和语言的 USAGE 特权。
没有提到类型获得默认权限,所以为什么我会看到以下内容:
> CREATE TYPE bug_status AS ENUM ('new', 'open', 'closed');
> REVOKE USAGE ON TYPE bug_status FROM postgres;
> \dT+ bug_status
List of data types
Schema | Name | Internal name | Size | Elements | Owner | Access privileges | Description
--------+------------+---------------+------+----------+----------+-------------------+-------------
public | bug_status | bug_status | 4 | new +| postgres | =U/postgres |
| | | | open +| | |
| | | | closed | | |
我已撤销所有者的 USAGE,但 PUBLIC 拥有特权。
我错过了记录的地方吗?
【问题讨论】:
标签: postgresql