查询pg数据库用户与模式的授权关系
时间: 2024-01-03 07:04:03 浏览: 38
您可以使用以下查询来检索 PostgreSQL 数据库用户与模式的授权关系:
```sql
SELECT
grantee,
table_catalog,
table_schema,
privilege_type
FROM
information_schema.role_table_grants
WHERE
table_catalog = 'your_database_name'
AND grantee = 'your_user_name'
ORDER BY
table_schema, privilege_type;
```
请将 `'your_database_name'` 替换为您的数据库名称,`'your_user_name'` 替换为您要查询的用户名称。该查询将返回指定用户在指定数据库中拥有的授权级别和模式。
请注意,您需要具有足够的权限才能执行此查询。
相关问题
pg数据库如何查询全库字段与注释
你可以使用以下的SQL语句来查询 pg 数据库中全库的字段名和注释:
```
SELECT
c.relname AS table_name,
a.attname AS column_name,
pg_catalog.col_description(a.attrelid, a.attnum) AS column_comment
FROM
pg_catalog.pg_attribute a
INNER JOIN pg_catalog.pg_class c ON a.attrelid = c.oid
WHERE
a.attnum > 0 AND
NOT a.attisdropped AND
c.relkind = 'r'
ORDER BY
c.relname ASC,
a.attnum ASC;
```
这个 SQL 语句会返回一个结果集,其中包含了每个表的每个字段及其对应的注释。
查询Pg数据库索引表
要查询PG数据库中索引表的详细信息,可以使用以下查询:
```
SELECT t.relname AS table_name, i.relname AS index_name,
ix.indisunique AS is_unique, ix.indkey AS index_columns,
am.amname AS index_type, idx_description(i.oid) AS index_description
FROM pg_index ix
JOIN pg_class t ON t.oid = ix.indrelid
JOIN pg_class i ON i.oid = ix.indexrelid
JOIN pg_am am ON i.relam = am.oid
WHERE t.relname = 'your_table_name'; -- 替换成你的表名
```
该查询将返回指定表的所有索引,包括索引表名、是否唯一、索引列、索引类型和索引描述等信息。
注意,这里的“your_table_name”需要替换成你要查询的表的名称。