AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 61781
Accepted
arthur
arthur
Asked: 2014-03-27 02:17:10 +0800 CST2014-03-27 02:17:10 +0800 CST 2014-03-27 02:17:10 +0800 CST

Restaurando a conta de superusuário no servidor postgres

  • 772

Estou com uma situação completamente curiosa com um dbms postgres. Eu instalei o banco de dados e devido a uma configuração incorreta dos meus scripts de instalação, tornei a função de superusuário um usuário comum. Agora eu tenho uma instalação completamente nova do postgres com apenas o banco de dados de modelo e um único usuário 'postgres' que não pode fazer praticamente nada. Como posso tornar o usuário postgres superusuário novamente?

Tentei reinstalar o servidor no ubuntu 12.04 aptitude reinstall postgresql-9.1, mas a função parece não ser afetada. Muito provavelmente porque a reinstalação não afeta os arquivos onde as funções são gravadas.

postgresql role
  • 2 2 respostas
  • 5591 Views

2 respostas

  • Voted
  1. Best Answer
    Craig Ringer
    2014-03-27T02:33:11+08:002014-03-27T02:33:11+08:00

    Os direitos de superusuário não estão em nenhum arquivo de configuração, eles fazem parte da pg_catalog.pg_authidtabela do banco de dados, que é compartilhada entre todos os bancos de dados em uma instalação do PostgreSQL.

    Você precisa parar o servidor PostgreSQL e reiniciá-lo no modo de usuário único , onde está sempre executando como superusuário.

    Lá, você pode ALTER USER myuser SUPERUSERconceder direitos de superusuário. Saia do modo de usuário único e inicie o backup do servidor.

    Os detalhes exatos dependem um pouco da distro e da versão, mas algo como:

    service postgresql stop
    sudo -u postgres postgres --single /var/lib/pgsql/9.1/main/data
    
    ALTER USER postgres SUPERUSER;
    
    (control-D to exit)
    
    service postgresql start
    

    Em alguns sistemas, pode ser necessário usar um caminho explícito para o postgresexecutável, como /usr/pgsql-9.1/bin/postgres. Novamente, os caminhos podem variar com base na versão e distribuição.

    • 5
  2. OvG
    2015-06-03T05:50:43+08:002015-06-03T05:50:43+08:00

    Para Windows é necessário:

    • crie um usuário local chamado 'postgres'
    • atribuir direitos de gravação para este usuário na pasta de dados
    • pare o serviço postgres de services
    • abra um prompt de comando como usuário postgres (por exemplo runas /user:postgres cmd)
    • execute o postgres no modo de usuário único

      "<PATHTOPOSTGRES>\postgres.exe" --single -D "<PATHTODATA>/data"
      

      onde o banco de dados relevante é inferido do nome de usuário (postgres)

    • Execute os comandos necessários para que seu usuário volte ao anormal (super):

      backend> ALTER USER postgres SUPERUSER;
      backend> ALTER USER postgres LOGIN;
      backend> ALTER USER postgres REPLICATION;
      backend> ALTER USER postgres CREATEDB;
      backend> ALTER USER postgres CREATEROLE;
      backend> ALTER USER postgres INHERIT;
      backend> ALTER USER postgres CONNECTION LIMIT -1;
      backend> ALTER USER postgres VALID UNTIL 'infinity';
      backend> ALTER USER postgres UNENCRYPTED PASSWORD 'MYPASSWORD';
      
    • Ctrl-C para sair

    • inicie o serviço postgres a partir dos serviços

    Observe que o 'bug' no PGAdmin 16.1 anterior relacionado à abertura das propriedades de um usuário pode ter sido a causa.

    • 1

relate perguntas

  • Posso ativar o PITR depois que o banco de dados foi usado

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

  • Os procedimentos armazenados impedem a injeção de SQL?

  • Sequências Biológicas do UniProt no PostgreSQL

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve