Postgres rodando em RDS acessível apenas através de um cluster EKS... assim eu tenho um pod (genérico) em nosso cluster que me permite acessar nossa instância postgres. Eu preciso alterar a senha da função que estou usando/conectado como (usuário root). O problema é que quando tento alertar o usuário ou função postgres diz que o usuário/função não existe mesmo que eu possa vê-lo claramente E estou logado como o usuário! Estou logado no postgres como root (nível do SO) e estou como usuário root do postgres (não postgres, mas um superusuário que chamarei ABcDeFGh
nesta pergunta)
postgres=> select user;
user
----------
ABcDeFGh
(1 row)
postgres=> select rolname, rolsuper from pg_roles;
rolname | rolsuper
---------------------------+----------
pg_monitor | f
pg_read_all_settings | f
pg_read_all_stats | f
pg_stat_scan_tables | f
pg_read_server_files | f
pg_write_server_files | f
pg_execute_server_program | f
pg_signal_backend | f
rds_superuser | f
rds_replication | f
rds_iam | f
rds_password | f
rds_ad | f
rdsadmin | t
ABcDeFGh | f
rdsrepladmin | f
rdstopmgr | f
(20 rows)
O usuário com o qual estou logado é ABCDeFGh. Mesmo consultas específicas (aliás, eu não sou um cara do postgres, então)
postgres=> \dg ABcDeFGh
List of roles
Role name | Attributes | Member of
-----------+------------+-----------
postgres=> \dg abcdefgh
List of roles
Role name | Attributes | Member of
-----------+------------+-----------
postgres=> \du abcdefgh
List of roles
Role name | Attributes | Member of
-----------+------------+-----------
postgres=> \du ABcDeFGh
List of roles
Role name | Attributes | Member of
-----------+------------+-----------
mas isso (lista truncada):
postgres=> \du
List of roles
Role name | Attributes | Member of
---------------------+------------------------------------------------------------+-------------------------------------------------------------
ABcDeFGh | Create role, Create DB +| {rds_superuser}
| Password valid until infinity |
e este (lista truncada):
postgres=> \dg
List of roles
Role name | Attributes | Member of
---------------------+------------------------------------------------------------+-------------------------------------------------------------
ABcDeFGh | Create role, Create DB +| {rds_superuser}
| Password valid until infinity |
(e agora acabei de notar que \du
e \dg
são a mesma coisa ou parecem ser apelidos um do outro)
Então isso é muito confuso e frustrante. Como se pode ver, estou usando todas as letras minúsculas e a versão com distinção entre maiúsculas e minúsculas do nome para alter
e \dg
. O erro que recebo ao tentar alterar a senha é role
ou user
não existe. Claramente parece existir.
alter role 'ABcDeFGh' with password '<REDACTED>' valid until '2023-01-02T00:13:34+00:00';
ERROR: syntax error at or near "'ABcDeFGh'"
Toda a documentação que consegui encontrar não explica o que pode estar acontecendo aqui. O usuário existe claramente porque estou logado como usuário. Eu realmente odeio perder meu tempo com esse tipo de lixo ambíguo do software.