gpt4 book ai didi

sql - 查询 GRANTS 授予 postgres 中的序列

转载 作者:行者123 更新时间:2023-11-29 11:19:37 26 4
gpt4 key购买 nike

要查询授予表的 GRANTS,我可以使用如下查询:

SELECT grantee, privilege_type 
FROM information_schema.role_table_grants
WHERE table_name='mytable'

(在这里查看我的旧问题:Query grants for a table in postgres)

但是我如何查询磨碎的序列的 GRANTS?

最佳答案

我查看了源代码,但找不到任何通过 information_schema 表公开序列 ACL 的地方。 (不过,我可能漏掉了一些东西。)

PostgreSQL 确实公开了系统目录 pg_class 中序列的 ​​ACL。

SELECT relname, relacl
FROM pg_class
WHERE relkind = 'S'
AND relacl is not null
AND relnamespace IN (
SELECT oid
FROM pg_namespace
WHERE nspname NOT LIKE 'pg_%'
AND nspname != 'information_schema'
);

就 information_schema 和标准 SQL 序列而言,PostgreSQL 不支持它们。

select feature_name, is_supported 
from information_schema.sql_features
where feature_name = 'Sequence generator support';

PostgreSQL 在这方面是不合格的,因为它公开了 information_schema.sequences 而没有为“序列生成器支持”返回"is"。 (这是一个观察,而不是对 PostgreSQL 的批评。)

但是,说了这么多,我在 2003 SQL 标准中也找不到任何公开这些特权的内容。在 ROLE_TABLE_GRANTS View 的定义中很容易找到 PRIVILEGE_TYPE,但据我所知,标准中的序列没有类似的东西。

关于sql - 查询 GRANTS 授予 postgres 中的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7337662/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com