查询以列出所有用户 + 他们的架构。PostgreSQL

哈希卡

如上所述,我想列出所有用户 + 他们的模式(他们获得 USAGE 权限的地方)。

所以我快完成了,

让我告诉你我得到了什么:

SELECT 
    u.usesysid as idUser, 
    u.usename as login,
    u.passwd as password,
    ARRAY(SELECT b.rolname
        FROM pg_catalog.pg_auth_members m
        JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
        WHERE m.member = r.oid) as member_of,
     ARRAY(SELECT nspname
        FROM pg_namespace pn,pg_catalog.pg_roles b
        JOIN pg_catalog.pg_auth_members m ON (m.member = b.oid)
        WHERE pg_catalog.has_schema_privilege(b.rolname, nspname, 'USAGE')= true
        AND m.member = r.oid
        AND nspname <> 'information_schema'
        AND nspname !~~ 'pg\_%') as usage_schemas
FROM 
    pg_catalog.pg_roles r
JOIN 
    pg_catalog.pg_user u on(r.rolname=u.usename)
WHERE
    usename !~ 'postgres'
ORDER BY
    1;

这就是我得到的:https : //image.noelshack.com/fichiers/2019/38/5/1568980459-capture5.png

这就是我想要的:https : //image.noelshack.com/fichiers/2019/38/5/1568967833-capture4.png

有谁能够帮我 ?

哈希卡

这是正确的:

SELECT
    u.usesysid as idUtilisateur,
    u.usename as login,
    u.passwd as motDePasse,
    ARRAY(SELECT b.rolname
        FROM pg_catalog.pg_auth_members m
        JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
        WHERE m.member = r.oid) as groupes,
    ARRAY(SELECT nspname
        FROM pg_namespace pn
        WHERE pg_catalog.has_schema_privilege(r.rolname, nspname, 'USAGE')= true
        AND nspname <> 'information_schema'
        AND nspname !~~ 'pg_%') as schemas
FROM
    pg_catalog.pg_roles r
JOIN
    pg_catalog.pg_user u on(r.rolname=u.usename)
WHERE
    usename !~ 'postgres'
ORDER BY 
    1;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有什么办法列出所有用户定义的PostgreSQL函数?

如果所有用户具有相同的产品,如何将他们分组到产品列表中?

如何获得所有用户的订单使用Laravel 5 / Eloquent / query builder通过他们的评分

为什么所有用户在以 root 身份使用 su 之后都从 /root 而不是他们的主目录开始?

为所有用户提供在 Active Directory 中编辑他们自己的特定属性的能力

DynamoDB架构-检索所有用户

当他们没有组时在AWS上创建现有用户

如何只允许现有用户编辑他们的数据?(Firebase 安全规则)

列出查询中的状态销售,即使他们当月没有销售

SQL 查询返回每个用户和他们的朋友

允许用户在 DJango 中拥有他们的产品

循环显示用户-即使他们没有帖子

Promise 说他们完成了,而他们没有完成?

Laravel将用户同步到所有类别,他们可以是无限的

我想向用户返回他们所推荐的所有人的列表

查询选择所有员工的姓名和他们的老板的姓名

查询Azure SQL数据库中的所有数据库用户以及他们拥有的任何角色

SQL查询以获取所有类型为1的用户的列表,以及一个新列,用于告知他们是否也具有类型2

我想要一个命令来删除所有用户的所有临时文件,但我不想删除他们在chrome和firefox上的书签

备份用户帐户而不给他们主目录

通过他们的哈希令牌查找用户

用户角色以及他们可以看到的内容

使最终用户对他们的行为负责

如何限制用户删除不是他们的帖子?

如何告诉用户他们输入了旧密码?

Active Directory - 用户不是他们所在组的成员

用户只能查看他们的数据

禁止用户,如果他们提到超过 5 人

限制用户只看到他们的数据 [Laravel]