PostgreSQL no Windows: o psql espera que eu faça o login com minha conta do Windows

1

Acabei de instalar o PostgreSQL 9.6 no Windows 7. Eu tive que escolher uma senha para o usuário padrão "postgres" durante o processo de instalação.

Executando o pgAdmin4 após a instalação, digitei minha senha para "postgres" e ele foi salvo como esperado.

Mas com a linha de comando, o usuário padrão não parece ser "postgres", mas meu nome de usuário da sessão do Windows, para o qual não tenho uma senha do PostgreSQL (minha senha do Windows não funciona lá). Eu posso fazer o login com psql -U postgres , mas como posso alterar o usuário padrão para ser postgres?

    
por Glauber Rocha 20.12.2017 / 14:48

2 respostas

2

A variável de ambiente PGUSER é considerada quando a opção -U não está definida.

Assim, você pode usar um arquivo em lote, basicamente:

set PGUSER=postgres
psql

ou defini-lo permanentemente, como mencionado em outras perguntas, como Alterar variáveis de ambiente como usuário padrão .

Na verdade, existem algumas outras variáveis correspondentes a outras propriedades de conexão que podem ser definidas de maneira semelhante (consulte Variáveis de Ambiente na documentação do PostgreSQL para a lista completa).

Essas variáveis são um recurso do libpq , a DLL que implementa a interação cliente-servidor para a maioria dos aplicativos PostgreSQL, portanto, eles não funcionarão apenas para psql , mas para todos esses aplicativos.

    
por 01.01.2018 / 16:03
0

Como posso alterar o usuário padrão [correndo de um shell cmd] para ser postgres?

Eu não acho que isso seja possível.

No entanto, você pode executar psql como outro usuário usando o comando runas .

Algo como o seguinte deve funcionar:

Runas /profile /user:postgres psql

runas

Execute a program under a different user account (non-elevated).

Syntax
      RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]
         /user:UserName program

      RUNAS [ [/noprofile | /profile] [/env] [/savecred] ]
         /smartcard [/user:UserName] program

      Display the trust levels that can be used:
      RUNAS /showtrustlevels

      Run a program at a given TrustLevel:
      RUNAS /trustlevel:TrustLevel program

Key
   /noprofile       Do not load the user's profile.
                    This causes the application to load more quickly, but
                    can cause some applications to malfunction.

   /profile         Load the user's profile. (default)

   /env             Use the current environment instead of user's.

   /netonly         Use the credentials for remote access only.

   /savecred        Use credentials previously saved by the user.
                    This option is not available on Windows 7 Home or
                    Starter Editions and will be ignored.

   /smartcard       Load the credentials from a smartcard.

   /user            UserName in the form USER@DOMAIN or DOMAIN\USER

   /trustlevel Level  One of levels enumerated in /showtrustlevels.
                      RunAs is not able to launch an application with an elevated
                      access token.

   program          The program to run.

Fonte runas

Leitura Adicional

por 20.12.2017 / 15:14