(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 .
NETWORKSERVICE
cuenta de usuario, no hay contraseña de cuenta de servicio. Si instaló para usar una cuenta de servicio dedicadapostgres
o una cuenta de dominio, entonces puede ayudar.NETWORK SERVICE
no hay contraseña para restablecer. Si instaló en 9.2+ usando una cuenta diferente, se aplica la misma información. Y no hay cambios en la parte de restablecer la contraseña de la cuenta de la base de datos de superusuario de Postgres . Entonces no hay realmente ningún cambio necesario.Debe distinguir entre el usuario de su sistema (Windows) llamado "postgres" y el usuario de la base de datos con el mismo nombre.
Encuentre su archivo pg_hba.conf: esto controla el acceso al servidor PostgreSQL. Deberá editarlo como usuario con derechos de administrador. Busque líneas que mencionen al usuario "postgres" y configure temporalmente el modo en "confianza". Reinicie postgresql y luego podrá conectarse sin una contraseña. Restablezca la contraseña, luego restaure el archivo a su configuración original y reinicie PostgreSQL.
El manual tiene detalles sobre los métodos de autenticación y el archivo pg_hba.conf .
fuente
Si alguien más se encuentra con este problema, mientras usa pgAdmin, le sugiero que eche un vistazo a esto: http://www.homebrewandtechnology.com/blog/graphicallychangepostgresadminpassword
fuente