[PostgreSQL/C#] Ident authentication failed for user

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Vishari Beduk
  • Registratie: Februari 2009
  • Laatst online: 19:10

Vishari Beduk

loves f/1.8 primes

Topicstarter
Ik gebruik al vele jaren MS-SQL server icm C# en lees de laatste tijd veel goede verhalen over PostgreSQL.
Dus dat wil ik dan toch eens zelf proberen. Daarom begonnen met het omzetten van een bestaand simpel programma van MSSQL naar PostgreSQL. Maar het inloggen lukt niet.
De foutmelding is:
code:
1
2
3
4
5
6
Opening connection to database 'fileindex' on server 'tcp://localhost:5432'.
An error occurred using the connection to database 'fileindex' on server 'tcp://localhost:5432'.
'IndexerContext' disposed.
Disposing connection to database 'fileindex' on server 'tcp://localhost:5432'.
Disposed connection to database 'fileindex' on server 'tcp://localhost:5432' (0ms).
Npgsql.PostgresException (0x80004005): 28000: Ident authentication failed for user "dbuser"


Inloggen via de terminal lukt wel. Met "psql -d fileindex -U dbuser"
En dan kan ik gewoon dit soort queries doen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
fileindex=> SELECT * FROM pg_stat_activity WHERE pid = pg_backend_pid();
 datid |  datname  |  pid  | leader_pid | usesysid | usename | application_name | client_addr | client_hostname | client_port |         backend_start         |       
   xact_start           |          query_start          |         state_change          | wait_event_type | wait_event | state  | backend_xid | backend_xmin | query_i
d |                            query                             |  backend_type  
-------+-----------+-------+------------+----------+---------+------------------+-------------+-----------------+-------------+-------------------------------+-------
------------------------+-------------------------------+-------------------------------+-----------------+------------+--------+-------------+--------------+--------
--+--------------------------------------------------------------+----------------
 16393 | fileindex | 29506 |            |    16392 | dbuser  | psql             |             |                 |          -1 | 2025-10-04 07:44:44.097287+02 | 2025-1
0-04 07:46:08.237872+02 | 2025-10-04 07:46:08.237872+02 | 2025-10-04 07:46:08.237876+02 |                 |            | active |             |          770 |        
  | SELECT * FROM pg_stat_activity WHERE pid = pg_backend_pid(); | client backend
(1 row)

fileindex=> SELECT current_setting('listen_addresses') AS listen_addresses, current_setting('port') AS port;
 listen_addresses | port 
------------------+------
 localhost        | 5432
(1 row)


Inloggen via pgAdmin 4 lukt ook. Daarin kan ik gewoon de database en schema zien.

Alleen dus nog niet via C#. Hier is een stukje van de DbContext:
code:
1
2
3
4
5
6
7
8
9
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        string connectionString = @"Host=localhost;Port=5432;Database=fileindex;Username=dbuser;Password=geheim";

        if (!optionsBuilder.IsConfigured)
        {
            optionsBuilder.UseNpgsql(connectionString);
        }
    }


En dan het belangrijkste, het ~/data/pg_hba.conf bestand
dit is het laatste gedeelte daarvan:
code:
1
2
3
4
5
6
7
8
9
10
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             dbuser                                  md5 
local   all             all                                     peer
# IPv4 local connections: 
host    all             dbuser          127.0.0.1/32            md5
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

Ik had de METHOD voor de dbuser ook met md5 gewisseld maar dat maakt niets uit.
En na de wisseling ook "sudo systemctl restart postgresql"

Dus heeft er iemand nog tips?

weet het niet meer

Beste antwoord (via Vishari Beduk op 06-10-2025 21:24)


  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 22:00
Ik lees ook ergens dat Windows een voorkeur heeft voor IPv6. Dus ik zou dezelfde regel voor 127.0.0.1/32 ook gebruiken voor ::1/128

[ Voor 11% gewijzigd door Kalentum op 06-10-2025 13:37 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • Lizard
  • Registratie: Februari 2000
  • Laatst online: 10-10 13:49
Welke versie van PostgreSQL gebruik je? Vanaf v14 is scram-sha-256 i.p.v. md5 default.

Zie ook https://www.postgresql.org/docs/release/14.0/ en https://dbod-user-guide.w...ment/password_encryption/

Voor een guide om het makkelijk om te zetten zie https://www.cybertec-post...am-sha-256-in-postgresql/

Acties:
  • 0 Henk 'm!

  • Vishari Beduk
  • Registratie: Februari 2009
  • Laatst online: 19:10

Vishari Beduk

loves f/1.8 primes

Topicstarter
Lizard schreef op zondag 5 oktober 2025 @ 20:58:
Welke versie van PostgreSQL gebruik je? Vanaf v14 is scram-sha-256 i.p.v. md5 default.

Zie ook https://www.postgresql.org/docs/release/14.0/ en https://dbod-user-guide.w...ment/password_encryption/

Voor een guide om het makkelijk om te zetten zie https://www.cybertec-post...am-sha-256-in-postgresql/
Bedankt voor de tip. Maar ik kom er nog steeds niet in
Npgsql.PostgresException (0x80004005): 28000: Ident authentication failed for user "dbuser"

Zo ziet de pg_hba.conf er nu uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             dbuser                                  scram-sha-256
local   all             all                                     peer
# IPv4 local connections:
host    all             dbuser          127.0.0.1/32            scram-sha-256
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident


Wat betreft de versie; systeem is net vorige week geinstalleerd met 'laatste' versies.
sudo -u postgres psql -c 'SELECT version();'
geeft
PostgreSQL 18.0 on x86_64-redhat-linux-gnu, compiled by gcc (GCC) 15.2.1 20250808 (Red Hat 15.2.1-1), 64-bit

edit: lees het nu ook in de release notes
"This release deprecates md5 password authentication, which will be removed in a future release. If you require PostgreSQL password-based authentication, use SCRAM authentication. "

[ Voor 6% gewijzigd door Vishari Beduk op 05-10-2025 22:27 ]

weet het niet meer


Acties:
  • 0 Henk 'm!

  • Lizard
  • Registratie: Februari 2000
  • Laatst online: 10-10 13:49
Ik vermoed dat regel 8 regel 7 overruled.
Maakt het uit als je die 2 regels omdraait?

Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 22:00
Ik lees ook ergens dat Windows een voorkeur heeft voor IPv6. Dus ik zou dezelfde regel voor 127.0.0.1/32 ook gebruiken voor ::1/128

[ Voor 11% gewijzigd door Kalentum op 06-10-2025 13:37 ]


Acties:
  • +1 Henk 'm!

  • Vishari Beduk
  • Registratie: Februari 2009
  • Laatst online: 19:10

Vishari Beduk

loves f/1.8 primes

Topicstarter
Lizard schreef op maandag 6 oktober 2025 @ 12:31:
Ik vermoed dat regel 8 regel 7 overruled.
Maakt het uit als je die 2 regels omdraait?
Ik had ergens gelezen dat het juist in deze volgorde moest.
Kalentum schreef op maandag 6 oktober 2025 @ 13:37:
Ik lees ook ergens dat Windows een voorkeur heeft voor IPv6. Dus ik zou dezelfde regel voor 127.0.0.1/32 ook gebruiken voor ::1/128
Het is wel C# .NET maar geen Windows; fedora linux
Maar goed, die regel ook onder IPv6 toegevoegd en het werkt _/-\o_
Altijd gedacht dat local sockets gebruikt worden, blijkt het IPv6 te zijn.
Echt heel bijzonder dit. Anyway, ik ben heel blij :)

weet het niet meer

Pagina: 1