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 1uSKzP-006Ksf-KX for pgsql-general@arkaria.postgresql.org; Thu, 19 Jun 2025 19:32:00 +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 1uSKzM-00EHDg-E2 for pgsql-general@arkaria.postgresql.org; Thu, 19 Jun 2025 19:31:57 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uSKzL-00EHDX-TM for pgsql-general@lists.postgresql.org; Thu, 19 Jun 2025 19:31:56 +0000 Received: from mail-northeuropeazolkn19010020.outbound.protection.outlook.com ([52.103.32.20] helo=DB3PR0202CU003.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uSKzK-003024-1F for pgsql-general@lists.postgresql.org; Thu, 19 Jun 2025 19:31:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jeqtCiwhN7NFA90tcHobll214qe1qEVeNmVcJrc/X8Hw7j/eEYxCAH5l1Ls70yBbfMVpPV6v021sfOCMLnXLuCgw8nogEM96u5uGlnEafydvxaAvPPsEYYPQUbai6AVZ0dPASKUBetOvBND/7/Oo7ZktNr0d51eZU0NJoDMYmILt0AVJ7FzcOd+xUEKkwZF5nMy2vbI6f4bbFsrfuhf4umBHRmZdTr1UKEfKLHq14KfGF2Sfsr5mexORTYNSryYMiQlV2McWzu2Pr78zbArElvus4mUVPvdHsbXYKt+2GZKABPQm5wKmwckpXsNPyXmGjCSL0QbPeAToQM3LX7EV0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zuLb188cvwQ5KILIKUIlw5hXPVjGmzjfugoOCsUJRrY=; b=V3yvS1XqDuMOQB1I2dQiTFpra/IvotqNQMWN6uwbtZKotcJK3k2xACdkZAI4F7Ceq+lDjt1SHEhN3432kIQDu7IKSueFUKlHjwC8tjAX2LoBm3FNjrQ0EGy7u1GL350zrVKSdGP6b9Z67PeH3EVbds/VIVoFgSAMGUUhxgJf67RjymYo7M2HAgRJqhsgbWdMDywOkUBkKApQFT/txRQ2oYVKDMxm1h4Ru3g3wfDOP3sIKlm4q8IImEHdyDH/qLOSTiUbOnaFHcXAPFg+NqU/UwDe0gWpkjJahICID9KUvkv1GTmFOGKqaPYn1nCATRKiXZ/zy6IrNuv3bjMPPo6zYA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zuLb188cvwQ5KILIKUIlw5hXPVjGmzjfugoOCsUJRrY=; b=DSnY6jaC6gDkTtR6dRtfNO9SfQU7L9ZXKrAOihLcZ1h75+u5asiOLIYgbWitcfKmWNZaMZ8oFMvLj0qN8aLlvqnuCosPfvjFrOErTgN0UdV7fMOis0ihMKF3amKOkCYJSglW2SYZbXi9KDnMmqiEqQNmzH0CAbcMTAHrR6BcPHv+CHhT259nwaSYnOoyYzOM7DG1vI6yj5/XI89iYaA8oSxOcQ9+CQ71VCEWncMuNyvm73Ss/TW4Griw6WB68bCsoEPF8vsTWI1guOcpArmuTQBeNAco/rtlRWuQopQHNzuYkWxNV/MC5tgEqFnFhGwtDnolLprf1chlnB5n9S3MTg== Received: from AS8PR08MB6632.eurprd08.prod.outlook.com (2603:10a6:20b:31c::14) by VI1PR08MB10122.eurprd08.prod.outlook.com (2603:10a6:800:1c8::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.27; Thu, 19 Jun 2025 19:31:52 +0000 Received: from AS8PR08MB6632.eurprd08.prod.outlook.com ([fe80::18f8:1ff4:e731:fec8]) by AS8PR08MB6632.eurprd08.prod.outlook.com ([fe80::18f8:1ff4:e731:fec8%6]) with mapi id 15.20.8857.022; Thu, 19 Jun 2025 19:31:52 +0000 From: legrand legrand To: "pgsql-general@lists.postgresql.org" Subject: does multi host connection string supports login event trigger exception Thread-Topic: does multi host connection string supports login event trigger exception Thread-Index: AQHb4U8pjD2NBGAXaUibpOX3MMvw2A== Date: Thu, 19 Jun 2025 19:31:51 +0000 Message-ID: Accept-Language: fr-FR, en-US Content-Language: fr-FR X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AS8PR08MB6632:EE_|VI1PR08MB10122:EE_ x-ms-office365-filtering-correlation-id: c1b3db8a-9f84-4286-81a7-08ddaf67f13c x-microsoft-antispam: BCL:0;ARA:14566002|21061999006|15080799009|7092599006|8062599006|19110799006|15030799003|8060799009|461199028|3412199025|51005399003|440099028|39105399003|40105399003|102099032; x-microsoft-antispam-message-info: =?iso-8859-1?Q?CJH2ev1PTX4eWbqBxgwVZcp2WGwB6bsvX01l6Egw5fpFyjwV5IaqRaYvVb?= =?iso-8859-1?Q?IPnHtC+lygWy1Zt7xzHGjudgCLQw1GCjZ4KnAB7eKscrpdljH14FUjfL9e?= =?iso-8859-1?Q?8ev5l3W7beihUFlM5FEaRR+wPVGSVqFEZo/cpeCB203wwHhiAl8nMlodbi?= =?iso-8859-1?Q?x8WYIn5tqIWJeh0DO4+c3FB2CANhenHZLVHViLJZB9deOmpuKpZjxyL7A2?= =?iso-8859-1?Q?JypFUqX9I8pBaKXyDJ8AANPoYuvKVBoit8YZZgTsPaxwE6Yfak2B7nmWWf?= =?iso-8859-1?Q?NiHPzHeCsYDmNpcZVIxyL9MpYqfZOvX2OJI8yQ9fS+6iugpBXXCYUEW1Pg?= =?iso-8859-1?Q?tYBwN6yCpOHNz2FrhzIjdTKK/t7OlWJ+Wss0YWPnISsFifiS8cIMR8Or9O?= =?iso-8859-1?Q?YlzqfVtWszQLKhbR35JWBVuwADUo+wuRIpPbNK/jFwZ3lwUsIumGKCuh/P?= =?iso-8859-1?Q?oykzidmy+sYUM/sd+Mv/N+u5JgPAbnkQHzTEZn3IFYjP3F79TCVQMNmLtZ?= =?iso-8859-1?Q?QS24IPx2uwk7TbmC0Xr7NIBUvRUQiaAvXxVZXzBMJ+fmVeti2fBDCyS89w?= =?iso-8859-1?Q?ZS1lK/osqWskOsZILccpiQ1qVnyZGObKID4N2X/cZVa4KLNPvPqa1dAV/m?= =?iso-8859-1?Q?6HsTmphQR2iJZAAaDre/WjR345Hr6KYVXCoD5vvTNn9mJmbVd2Zb2b3j5R?= =?iso-8859-1?Q?syw17RVJfSjwPcH65kvKkgManV6nL2R2cf/XcKH1A1t2S4W+6Kk71W4RFb?= =?iso-8859-1?Q?bKECEP60gfjl5pRvqQWJNPMw+2Fjc2kDbZ7vB2X0DwGiwIfj3D2SDXfIV2?= =?iso-8859-1?Q?Y9bKQr/vYxkfzZDnPhu1y/MmIcRpWZKnQcAuie6M5pkIe2YH9aQamnURQp?= =?iso-8859-1?Q?45edFhsJtI2dVhVY//O99hjcmayWkDNra673wcNS5cJFk/FRZ5SOlG6bVy?= =?iso-8859-1?Q?4vAoiQbRRv0BettkXnVSRm4nwPUOZ2SMoNp3SSQAOU7yKXRZjlDAGtBdzA?= =?iso-8859-1?Q?qDrEt1AUBWU7HJEDIGXeuT2R8YhIrWrh5qkxzv6P37On6pV7FQ2zSJLmDy?= =?iso-8859-1?Q?wwyt9BurmN2HrtmZetkRobWobBU8k+gQgM5BjOVhnw524AAE9OSTZjqNPb?= =?iso-8859-1?Q?TsFrwEIlCV58tuJUUJBFkxfZ1FXb1/vpy9FL/cKdbn0gFZpCTGadul4/MY?= =?iso-8859-1?Q?Y1IuHwDoaxB/PFqjTRuhe5ch/ww0dQmUrlYajUiD/oAbtfoKYGNJNdzHx8?= =?iso-8859-1?Q?DIw7aIlbVppQnxHkKC7SC4ntVkRGeYacX1VFqJHBaui/NsSAONQQGePSPQ?= =?iso-8859-1?Q?fjJWxPFrK93bCX9qfEFmft6t0Q=3D=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?6Lr05Aa9tqm59fuVsI6rWRiZCU7jLPo1SjPYvpYsRZSx+TNTXEjj46TeNB?= =?iso-8859-1?Q?F4i7lJt9T2gCf5LWCcCivmreysS4T8n8omyboG/ots5+gI/HQvSd1+FeYN?= =?iso-8859-1?Q?cCHWyO1AA4wrk7cehehM/+0lMlVHDnyMx7EbtwiBFvnRoRhEysMUEnT5zV?= =?iso-8859-1?Q?vC4AW/iYRA+A8W3WPpjaITR8VysVIPKgQiICKrrI1iFkQmiVTkPYfLJ/CY?= =?iso-8859-1?Q?a/24f4/H5hsbjQ3f11Q/K+fzU1vizjbhb/AjwSDOA4scR88fuGdmzWDXsw?= =?iso-8859-1?Q?qSYv9sT77AEcIdknADZCuMY62sqtxJvWSmexRLEGPY6hXDPvAQbque61NH?= =?iso-8859-1?Q?JIrTg1m060BT2JXR9IDGlPB3QCOJG1LDLGolM1PWa57dURHiPvtova/ULE?= =?iso-8859-1?Q?AJGGAvfu83gFrJiR+pcnNm+p+qqx39bUFNGxjZE4aTibgzdq7LZeGvnE5v?= =?iso-8859-1?Q?iJdpyYU3elqUIebIKIv2TZCN6SlR16szzf8XqImwhnCknhWgMgOCnapeSS?= =?iso-8859-1?Q?TSEQWaYrig72HuW1NNix7JHqpVWy553+w7QZoFWO0rOUOmjwjqjkHJG3sH?= =?iso-8859-1?Q?D0jRbZr5j06dcQ+fo4GdsgWHur+2EMvaxY6qMzmD88En3/AHyIHYMIo/eB?= =?iso-8859-1?Q?Hl/sPaPF4pEiTnOX3Er/rfnc249Rum6oF8RMR2DtVqoQ3Nh28YlGafZ3OS?= =?iso-8859-1?Q?ws3hxsg4g5tBpAgSRA55PFm8ylVnJcuiDPZJrwniJe2EaBeG443aw523WF?= =?iso-8859-1?Q?Vuu3BeAN4UsBdGdiiNnbHOEGq78lTQRwIMatu9gHfZYgQfbSkjs4f/IkWu?= =?iso-8859-1?Q?ydITEy9vDUi+MJljyvbPLGKq2OXalN1k1U03ET2Phi/DghlwbJK1MBMmKN?= =?iso-8859-1?Q?dm5Gx4Jz7NNZ+/DDY0a/N2Op9UdznmP94dMvqHczHgSvXKK/gF3ZtVGTPp?= =?iso-8859-1?Q?IThwiSGxCZEV9aZVRoXVHbj9XD8ERdTjFai8qS85R9Dtpr3aES30Q0pSRY?= =?iso-8859-1?Q?faLYGpXLQRW0e6GohTykJCSsRBNh3I2m4sb0jHZE55wcYyilFyb00HI99E?= =?iso-8859-1?Q?UsWWPFKNX9OklmdGt/6CvuVse/VYofjtSiOG2YuDB78pixA7PWA0FwxCPB?= =?iso-8859-1?Q?W/PRftON7gsHEQO7dUD01pWZS3DwUmhLO50/oUrrMK59oN8QSBDNbeuCEg?= =?iso-8859-1?Q?6rcL9CQLrTZI4ibEfV60P64mqDKb515c+JVE1MtdCmXvcLMHAcLHVPqGAV?= =?iso-8859-1?Q?sm7M8Mqsqcm5rbcWvm25K3KNIKhuQsVi0w71cziqs=3D?= Content-Type: multipart/alternative; boundary="_000_AS8PR08MB6632193E0D8A5ED714026F84907DAAS8PR08MB6632eurp_" MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-8534-20-msonline-outlook-c6e85.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AS8PR08MB6632.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: c1b3db8a-9f84-4286-81a7-08ddaf67f13c X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jun 2025 19:31:51.9949 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB10122 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_000_AS8PR08MB6632193E0D8A5ED714026F84907DAAS8PR08MB6632eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hello to all the readers, I'm trying to build a login event trigger in conjonction with a multi host = connectio string to manager instances roles in a logical replication cluster. I'm surprised by the result found with (pg client 16+ on windows and linux)= , here is my test case: --on XX server --create a LOGIN EVENT TRIGGER --psql CREATE OR REPLACE FUNCTION init_session() RETURNS event_trigger SECURITY DEFINER LANGUAGE plpgsql AS $$ BEGIN IF session_user =3D 'aaaaa' THEN RAISE EXCEPTION 'Login forbidden'; END IF; END; $$; -- trigger definition CREATE EVENT TRIGGER init_session ON login EXECUTE FUNCTION init_session(); ALTER EVENT TRIGGER init_session ENABLE ALWAYS; No trigger on YY server --on ZZ server set PGPASSWORD=3Dpass psql -d "host=3DXX,YY dbname=3Dpostgres port=3D5432 user=3Daaaaa" psql: error: connection to server at "XX" (xx.xx.xx.xx), port 5432 failed: = FATAL: Login forbidden CONTEXT: PL/pgSQL function init_session() line 4 at RAISE ** It exits without trying connection on YY host !?** Similar connection string on JDBC work as I wish: * try XX, with error * then try YY server and succeed. Did I miss something ? Regards PAscal --_000_AS8PR08MB6632193E0D8A5ED714026F84907DAAS8PR08MB6632eurp_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hello to all the readers,
I'm trying to build a login event trigger in conjonction with a multi host = connectio string
to manager instances roles in a logical replication cluster.

I'm surprised by the result found with (pg client 16+ on windows and linux)= ,
here is my test case:

--on XX server
--create a LOGIN EVENT TRIGGER
--psql
CREATE OR REPLACE FUNCTION init_session()
  RETURNS event_trigger SECURITY DEFINER
  LANGUAGE plpgsql AS
$$
BEGIN
IF session_user =3D 'aaaaa' THEN
  RAISE EXCEPTION 'Login forbidden';
END IF;
END;
$$;

-- trigger definition
CREATE EVENT TRIGGER init_session
  ON login
  EXECUTE FUNCTION init_session();
ALTER EVENT TRIGGER init_session ENABLE ALWAYS;

No trigger on YY server

--on ZZ server
set PGPASSWORD=3Dpass
psql -d "host=3DXX,YY dbname=3Dpostgres port=3D5432 user=3Daaaaa"=
psql: error: connection to server at "XX" (xx.xx.xx.xx), port 543= 2 failed: FATAL:  Login forbidden
CONTEXT:  PL/pgSQL function init_session() line 4 at RAISE

** It exits without trying connection on YY host !?**

Similar connection string on JDBC work as I wish:
  • try XX, with error
  • then try YY server and = succeed.

Did I miss something ?
Regards
PAscal
--_000_AS8PR08MB6632193E0D8A5ED714026F84907DAAS8PR08MB6632eurp_--