Minha pergunta

Minha pergunta

Minha pergunta

Posso definir permissões para um usuário (ex:) postgresde forma que esse usuário só tenha permissão para fazer login no host local TCP, mas não na Internet?

Soquetes confiáveis ​​versus senhas para controles remotos

Entendo que você pode inicializar o postgres para permitir que usuários locais façam login sem uma senha e hosts remotos façam login com uma senha:

initdb \
            -D "$POSTGRES_DATA_DIR/" \
            --username postgres --pwfile "$PWFILE" \
            --auth-local=trust --auth-host=password

Intranet x Internet

Para qualquer sistema que esteja se conectando pela Internet, quero usar um usuário que tenha uma string aleatória de 128 bits muito, muito forte (não memorável).

Para acesso local e intranet, entretanto, prefiro ter um nome de usuário e uma senha que eu possa lembrar (e digitar).

Posso fazer isso... ou preciso apenas configurar um usuário por sistema com permissão para se conectar, com um .pgpassem cada um?
(Não quero compartilhar chaves em arquivos de texto simples entre computadores)

Responder1

Você não forneceu nenhuma informação sobre sua versão do PostgreSQL, presumo que você esteja usando o PostgreSQL 12.

Posso definir permissões para um usuário (ex: postgres) de forma que esse usuário só tenha permissão para fazer login no host local TCP, mas não na Internet?

Sim, usepg_hba.conf. Você pode querer carregar isso primeiro viahba_fileconfiguração de tempo de execução.

Para acesso local e intranet, entretanto, prefiro ter um nome de usuário e uma senha que eu possa lembrar (e digitar).

Se você quiser adicionar um usuário local protegido por senha, adicione

local <database_name> <local-only_user_name> scram-sha-256 

na tua pg_hba.conf.

Você provavelmente deseja criar o usuário primeiro por meio de CREATE ROLE:

CREATE ROLE username LOGIN ENCRYPTED PASSWORD 'insert-your-password-here';

Você também pode querer verificar hoste hostsslregistrar entradas para adicionar à pg_hba.confsua intranet e autenticação baseada na Internet.

Verifique as documentações vinculadas para obter mais informações.

informação relacionada