我查看了这里找到的 GRANT 文档,并试图查看是否有内置函数可以让我查看我在数据库中具有的访问级别。当然是有的:
\dp
和 \dp mytablename
但这不显示我的账户有哪些访问权限。我想看到我可以访问的所有表格。请问是否有可以检查我在Postgres中的访问级别(是否具有SELECT
, INSERT
, DELETE
, UPDATE
权限)的命令?如果有,那么该命令是什么?
我查看了这里找到的 GRANT 文档,并试图查看是否有内置函数可以让我查看我在数据库中具有的访问级别。当然是有的:
\dp
和 \dp mytablename
但这不显示我的账户有哪些访问权限。我想看到我可以访问的所有表格。请问是否有可以检查我在Postgres中的访问级别(是否具有SELECT
, INSERT
, DELETE
, UPDATE
权限)的命令?如果有,那么该命令是什么?
您可以在信息模式中查询table_privileges
表:
SELECT table_catalog, table_schema, table_name, privilege_type
FROM information_schema.table_privileges
WHERE grantee = 'MY_USER'
# psql
\c your_database
select grantee, table_catalog, privilege_type, table_schema, table_name from information_schema.table_privileges order by grantee, table_schema, table_name;
SELECT grantee,table_catalog, table_schema, table_name, privilege_type
FROM information_schema.table_privileges
WHERE grantee not in ('pg_monitor','PUBLIC');
\du
命令来查询授权信息,或者直接查询information_schema中的grants表。 - Marc B