(Nota: poco de esto es relevante para los lectores que usan PostgreSQL 9.2 o superior de los instaladores de EDB, que ahora tienen una instalación predeterminada muy simplificada usando el NETWORK SERVICE
, aunque aún puede configurar otras cuentas) .
Solía net user postgres postgres
restablecer la contraseña de mi base de datos, pero en lugar de un mensaje de éxito obtengo"System error 5 has occurred. Access is denied."
Has restablecido (o intentado restablecer) la contraseña de la cuenta de servicio. PostgreSQL no se ejecutará como Administrador por razones de seguridad y el instalador generalmente lo configura con una cuenta de usuario "postgres" en PostgreSQL 9.1 y versiones anteriores 1 . En Windows, no puede iniciar un servicio como usuario sin guardar la contraseña del usuario en el registro, así que eso es lo que hace el instalador.
Si cambia la contraseña de la cuenta de usuario de Windows postgres
, el servicio PostgreSQL ya no puede iniciarse. Así que no hagas eso, tendrás que arreglar la configuración del servicio para almacenar la contraseña actualizada.
Afortunadamente, creo que otro error te impidió hacerlo. Parece que probablemente esté ejecutando su símbolo del sistema sin usar "Ejecutar como administrador" en una cuenta de usuario de Windows sin privilegios o en una máquina con UAC, por lo que no se ejecuta con los permisos de acceso necesarios para cambiar la contraseña del postgres
usuario.
Antes de intentar cambiar esa contraseña, asegúrese de que sea realmente lo que desea hacer. ¿Cuál es el problema que estás tratando de resolver aquí? ¿Está intentando instalar una actualización de la base de datos o algo más que le pide la contraseña para el postgres
usuario de Windows?
Lo más probable es que solo estés intentando iniciar sesión en la base de datos. Para eso, utiliza la contraseña (desafortunadamente completamente no relacionada) almacenada en la base de datos. Como lo has perdido / olvidado, tendrás que restablecerlo:
- Encuentra tu
pg_hba.conf
, generalmente enC:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
- Si es necesario, configure los permisos para poder modificarlo; es posible que su cuenta de usuario no pueda hacerlo hasta que use la pestaña de seguridad en el cuadro de diálogo de propiedades para otorgarle ese derecho mediante una anulación de administrador. Alternativamente, encuentre notepad / notepad ++ en su menú de inicio, haga clic derecho, elija "Ejecutar como administrador", luego use Archivo-> Abrir para abrir de
pg_hba.conf
esa manera.
Edítelo para establecer la línea "host" para el usuario "postgres" en el host "127.0.0.1/32" en "confianza". Puede agregar la línea si no está allí; solo inserte:
host all postgres 127.0.0.1/32 trust
host all postgres ::1/128 trust # if IPv6 is in use
antes de cualquier otra línea. (Puede ignorar los comentarios, las líneas que comienzan con #
).
Reinicie el servicio PostgreSQL desde el panel de control de Servicios (inicio-> ejecutar-> services.msc
)
- conéctese usando psql o PgAdmin-III o lo que prefiera
ALTER USER postgres PASSWORD 'postgres'
- elimine la línea que agregó
pg_hba.conf
o cámbiela de nuevo
- reinicie PostgreSQL nuevamente.
Consulte: ¿Cómo restablezco la contraseña de postgres para PostgreSQL en Windows?
1. 9.2 ahora usa la NETWORKSERVICE
cuenta, que no requiere contraseña, por lo que este problema desaparece .