Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1srfWd-003gcT-Lk for pgsql-general@arkaria.postgresql.org; Fri, 20 Sep 2024 15:26:28 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1srfWZ-008M9t-W7 for pgsql-general@arkaria.postgresql.org; Fri, 20 Sep 2024 15:26:25 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1srfWZ-008M60-Kc for pgsql-general@lists.postgresql.org; Fri, 20 Sep 2024 15:26:24 +0000 Received: from mail-oi1-x234.google.com ([2607:f8b0:4864:20::234]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1srfWY-000BuV-M9 for pgsql-general@postgresql.org; Fri, 20 Sep 2024 15:26:23 +0000 Received: by mail-oi1-x234.google.com with SMTP id 5614622812f47-3e03974b6a5so1089667b6e.3 for ; Fri, 20 Sep 2024 08:26:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726845981; x=1727450781; darn=postgresql.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=cS/TjB+M6KrfEs28F9QBRqA/Knbw47avkkhkgm+MXP0=; b=OqhsRu51TrvRGx2RB1YoRtQzKgf0JHeOyBPhyBWUXxqtAyNcgMa/Nn8bcMea6OPp8o G/43ecRGGPA3SQA3AmdgsVHju1mLRsK1aDlwc6GWQJ3XhW0xpdaKgligJ9cNf+jGSuzg mzh2hHgh1LRjDdyeqCIiX1mXIHaF66VEoaml0tjfC5nuMKuQ2O5OAq7fsysL2mhOayNM U/SRpsjW/52jn0oj4UlB+juk+bD4LqpH8+jwqlkCVd8aBgE8vbBQJ3l8xCTp1i81nv/+ rzi8jmiutx3RXgGneoYny2OIDQSLxRD5iVGLd5DNm6LpsOtFxW143571G2pNCCrFURTN 0j3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726845981; x=1727450781; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=cS/TjB+M6KrfEs28F9QBRqA/Knbw47avkkhkgm+MXP0=; b=xEHy5ZRbzxCE6LvPEhGSSpLUrkwHxOfkweDIGSHF0Qz6UUER1Zvk7ayUtkwz7XmDwl 66r1B/Nq+wYvNGrOitWo+OFW5Lxs+uwmIReAQe+0wYVOY5dGN9aIod6X6EUhmUOzSZQV nfp9BCNv7V0BFJ6e8vm8WOAJGAwNNarTOFNo+NRtwC3ROXqdpl2WY60Ibsf0deJvGUZd DVXNjfKSfOSnBWMKVWiYZknZN4WoRtS/T/NuvPD7XguLd3jTG+5FK679G4u+OTjVX6rr PoFM/js52mEZ+6u+X+XzUDJfm9EE5VekrC3Rd2UJrnlmtAemddl1fBmJmM+7mpYBni2+ Ap5A== X-Gm-Message-State: AOJu0YwnLXDAVlLOfI4pf+Hfnwe+pEKNQHZ4wsaL7xcabcRdD7DHsm77 Q871fn28J6SHkDbWSS0ZEFzBOfZlzAGfcejGf2XVgXXUAFNLTpr0uwLDrvpr4d44ybdZnBJ9CZb vjGM8BLkjVA2tc0TaWjFcEgIBznl7tLUb X-Google-Smtp-Source: AGHT+IEccOoI0OLzpZ55S6upAZ7rezUVC8Alfy4mOFUjCuQzmaQlL/TiAsZRIg3BmtWXn13zeN73qaX/MlBGSBhx0Fw= X-Received: by 2002:a05:6808:164c:b0:3e0:4eb4:6b5a with SMTP id 5614622812f47-3e2728ed8d1mr1707273b6e.6.1726845981209; Fri, 20 Sep 2024 08:26:21 -0700 (PDT) MIME-Version: 1.0 From: Dominique Devienne Date: Fri, 20 Sep 2024 17:26:10 +0200 Message-ID: Subject: Why no pg_has_role(..., 'ADMIN')? To: pgsql-general@postgresql.org Cc: robertmhaas@gmail.com Content-Type: text/plain; charset="UTF-8" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk To find out whether a ROLE can DROP another in v16+. Prior to v16, just having CREATEROLE was enough, so it didn't really seem necessary. But knowing whether DROP ROLE will work, w/o invalidating the current transaction, seems like something quite useful to know now, no? I can query pg_auth_members for admin_option, but only easily for direct membership. Taking into account indirect membership, which I assume applies, is exactly why pg_has_role() exists, no? Thanks for any insights. --DD