Quais práticas recomendadas eu posso usar para que a conta de usuário mestre da minha instância do Amazon RDS para Oracle não seja bloqueada?
A conta de usuário mestre da minha instância do Amazon Relational Database Services (Amazon RDS) para Oracle está bloqueada. Quero saber o que causou o bloqueio da conta e o que posso fazer para que ela não seja bloqueada novamente.
Resolução
Identifique a causa raiz
Um motivo comum pelo qual a conta de usuário mestre fica bloqueada é porque você configurou os seguintes parâmetros personalizados:
- FAILED_LOGIN_ATTEMPTS: a conta é bloqueada quando o número de tentativas consecutivas de login fracassadas excede o valor definido para esse parâmetro.
- PASSWORD_LIFE_TIME: a duração do uso da senha excede o valor definido para esse parâmetro, portanto, não é possível fazer login com a senha. A conta é então marcada como expirada.
Observação: se você definir um valor de PASSWORD_GRACE_TIME e não alterar a senha dentro do período de carência, a senha expirará e outras conexões serão rejeitadas. - INACTIVE_ACCOUNT_TIME: a conta mestre é bloqueada quando você não a usa para fazer login no banco de dados pelo número de dias consecutivos definido para esse parâmetro.
Observação: o valor mínimo desse parâmetro é de 15 dias. Não há valor máximo.
Para obter mais informações, consulte Create profile (Criar perfil) no site do Oracle.
Para identificar por que a conta está bloqueada, execute o seguinte comando para verificar as configurações atuais do perfil da conta mestre:
SELECT profile, resource_name, limit FROM dba_profiles WHERE resource_type = 'PASSWORD' AND profile IN ( SELECT profile FROM dba_users WHERE username = 'EXAMPLE-MASTER-USERNAME' );
Exemplos de cenários
Parâmetro FAILED_LOGIN_ATTEMPTS
Você cria um perfil com o parâmetro FAILED_LOGIN_ATTEMPTS que permite somente uma entrada de senha incorreta. Em seguida, você usa a senha errada para fazer login na conta e recebe o seguinte erro:
"ERROR:
ORA-01017: invalid username/password; logon denied."
Você tenta fazer login novamente. Mas como o parâmetro FAILED_LOGIN_ATTEMPTS está definido como 1, você recebe o seguinte erro:
"ERROR:
ORA-28000: The account is locked."
Parâmetro PASSWORD_LIFE_TIME
Você usa o parâmetro PASSWORD_LIFE_TIME no perfil da sua conta mestre para limitar a duração do uso da senha. Em seguida, você excede o valor definido para esse parâmetro e recebe o seguinte erro:
"ERROR:
ORA-28001: the password has expired."
Desbloqueie a conta
Observação: se você receber mensagens de erro ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Para desbloquear sua conta, use o console do Aurora e do RDS, a AWS CLI ou uma conta de banco de dados diferente.
Console do Aurora e do RDS ou AWS CLI
Primeiro, redefina a senha do usuário administrador da sua instância de banco de dados. Em seguida, é possível desbloquear e reabrir a conta.
Uma conta de banco de dados diferente
Se você tiver outra conta de banco de dados com o privilégio ALTER USER, poderá usar essa conta para desbloquear a conta de usuário mestre.
Para identificar contas com o privilégio ALTER USER, execute o seguinte comando:
SELECT grantee, privilege FROM dba_sys_privs WHERE privilege = 'ALTER USER' AND grantee IN ( SELECT username FROM dba_users WHERE oracle_maintained = 'N' );
Exemplo de saída:
GRANTEE PRIVILEGE-------------------------------------------------------------------------------------------------------------------------------- EXAMPLE-USER ALTER USER
Para identificar contas que concedem o privilégio ALTER USER por meio de um perfil, execute o seguinte comando:
SELECT DISTINCT dba_users.username FROM dba_role_privs JOIN dba_users ON dba_role_privs.grantee = dba_users.username AND granted_role IN ( SELECT role FROM role_sys_privs WHERE privilege = 'ALTER USER' ) AND dba_users.oracle_maintained = 'N'
Exemplo de saída:
USERNAME----------------------------------------------------------------------------------- EXAMPLE-MASTER-USERNAME RDSADMIN USER1 EXAMPLE-USER
Observação: como o exemplo é uma conta interna do RDS, RDSADMIN aparece na saída. Ele não aparece na sua saída.
Para desbloquear a conta, conclua as seguintes etapas:
-
Execute o comando a seguir para conectar-se ao banco de dados com a conta que tem o privilégio ALTER USER:
-bash-4.2$ sqlplus EXAMPLE-USER@oraSQL*Plus: Release 19.0.0.0.0 - Production on Tue Sep 14 13:35:55 2021 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Last Successful login time: Tue Sep 14 2021 13:33:23 +00:00 Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.12.0.0.0Observação: substitua EXAMPLE-USER pela conta que tem o privilégio ALTER USER.
-
Execute o comando a seguir para desbloquear a conta de usuário mestre:
SQL> ALTER USER EXAMPLE-MASTER-USERNAME ACCOUNT UNLOCK;User altered.Se a senha expirar, execute o seguinte comando para redefini-la:
SQL> ALTER USER EXAMPLE-MASTER-USERNAME IDENTIFIED BY EXAMPLE-MASTER-USER-NEW-PWD;User altered. -
Para se desconectar do banco de dados e sair do SQL*Plus, execute o seguinte comando:
SQL> exitDisconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - ProductionVersion 19.12.0.0.0Depois de fazer login com a conta de usuário mestre, você recebe a seguinte mensagem:
bash-4.2$ sqlplus EXAMPLE-MASTER-USERNAME@oraSQL*Plus: Release 19.0.0.0.0 - Production on Tue Sep 14 13:36:36 2021Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Last Successful login time: Tue Sep 14 2021 13:35:12+00:00Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.12.0.0.0SQL> SHOW USER;USER is "EXAMPLE-MASTER-USERNAME"
Não é possível redefinir a senha da sua conta mestre
Sua conta mestre pode ter sido bloqueada de uma redefinição de senha porque você definiu os parâmetros PASSWORD_REUSE_MAX e PASSWORD_VERIFY_FUNCTION.
PASSWORD_REUSE_MAX
Se você usar a mesma senha mais do que o valor definido para o parâmetro PASSWORD_REUSE_MAX, receberá a seguinte mensagem de erro:
"Unable to reset your password. Error information: ORA-28007: the password cannot be reused ORA-06512: at line 1."
Para obter mais informações sobre os eventos mais recentes da sua instância do RDS, consulte Visualizar eventos do Amazon RDS.
Para resolver esse problema, redefina a senha da sua conta mestre para uma que você nunca tenha usado no console do Aurora e do RDS. Se você tiver outra conta de banco de dados com o privilégio ALTER USER, também será possível alterar a senha dessa conta. Para reutilizar a senha sem restrições, atualize o parâmetro PASSWORD_REUSE_MAX do perfil da conta mestre para UNLIMITED.
PASSWORD_VERIFY_FUNCTION
O parâmetro PASSWORD_VERIFY_FUNCTION verifica políticas estritas de senha, como o tamanho mínimo da senha ou a exigência de usar o número mínimo de caracteres. Se você tentar redefinir a senha e ela não atender às regras definidas, você receberá a seguinte mensagem de erro:
"ORA-28003: password verification for the specified password failed."
Para resolver esse problema, certifique-se de que a nova senha atenda às regras definidas no parâmetro PASSOWRD_VERIFY_FUNCTION.
Use o perfil DEFAULT para que a conta do usuário mestre não seja bloqueada
Se as políticas de segurança da sua organização permitirem, use o perfil DEFAULT em vez de um perfil personalizado. O perfil DEFAULT fornece à sua conta de usuário mestre tentativas ilimitadas de login malsucedidas. Além disso, a senha da conta de usuário mestre nunca expira nem é desativada devido à inatividade. No entanto, é uma prática recomendada redefinir periodicamente a senha no console do Aurora e do RDS.
Para visualizar os limites do perfil DEFAULT, execute o seguinte comando:
SELECT resource_name, limit FROM dba_profiles WHERE resource_type = 'PASSWORD' AND profile = 'DEFAULT' AND resource_name IN ( 'FAILED_LOGIN_ATTEMPTS', 'PASSWORD_LIFE_TIME', 'PASSWORD_VERIFY_FUNCTION', 'INACTIVE_ACCOUNT_TIME', 'PASSWORD_REUSE_TIME', 'PASSWORD_REUSE_MAX' );
Exemplo de saída:
RESOURCE_NAME LIMIT-------------------------------- -------------------------------------------------------------------------------------------------------------------------------- FAILED_LOGIN_ATTEMPTS UNLIMITED PASSWORD_LIFE_TIME UNLIMITED PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_VERIFY_FUNCTION NULL INACTIVE_ACCOUNT_TIME UNLIMITED 6 rows selected.
Se sua conta mestre tiver um perfil personalizado, alterne a conta para usar o perfil DEFAULT.
Para verificar o perfil atual da sua conta mestre, execute o seguinte comando:
SELECT PROFILE FROM dba_users WHERE USERNAME = 'EXAMPLE-MASTER-USERNAME';
Para alterar o perfil da sua conta mestre para DEFAULT, execute o seguinte comando:
SQL> ALTER USER EXAMPLE-MASTER-USERNAME PROFILE default;User altered.
Observação: se você modificou os parâmetros de senha do seu perfil DEFAULT que podem afetar o login, redefina o perfil DEFAULT para as configurações de fábrica. Para redefinir para as configurações de fábrica, execute o seguinte comando:
SQL> ALTER PROFILE default LIMIT failed_login_attempts UNLIMITED password_life_time UNLIMITED inactive_account_time UNLIMITED; Profile altered.
Se sua organização tiver políticas que exijam que você redefina a senha da conta mestre com configurações restritas, use as seguintes práticas recomendadas:
- Use o console do Aurora e do RDS para redefinir periodicamente a senha antes que ela expire.
- Se você tiver um parâmetro PASSWORD_VERIFY_FUNCTION com requisitos rígidos para verificação de senha, cumpra esses requisitos ao configurar a nova senha.
- Use sua conta de usuário mestre com base no parâmetro INACTIVE_ACCOUNT_TIME para que a conta permaneça ativada.
- Use o Secrets Manager para gerenciar senhas de usuário mestre das suas instâncias de banco de dados e clusters de banco de dados multi-AZ.
Rastreie tentativas de login malsucedidas
Para rastrear tentativas de login que não são válidas, modifique o parâmetro AUDIT_TRAIL de inicialização do Oracle para db no grupo de parâmetros personalizado da instância de banco de dados. Para obter mais informações, consulte AUDIT_TRAIL no site do Oracle.
Se sua instância de banco de dados usa um grupo de parâmetros padrão, não é possível alterar os valores dos parâmetros. Você deve criar um novo grupo de parâmetros personalizado, definir o valor do parâmetro e anexar o novo grupo de parâmetros à sua instância. Em seguida, reinicialize a instância para associar o novo grupo de parâmetros à instância. Para obter mais informações, consulte Como modificar os valores de um grupo de parâmetros de banco de dados do Amazon RDS?
Depois de modificar o parâmetro no grupo de parâmetros personalizado, você deve reinicializar sua instância de banco de dados para que o banco de dados do RDS para Oracle entre em vigor.
Depois que o status da sua instância do RDS estiver available, faça login no banco de dados com a conta mestre ou qualquer conta com o privilégio AUDIT_TRAIL. Se você não ativou a auditoria para tentativas malsucedidas de login, execute o seguinte comando para ativá-la:
AUDIT SESSION WHENEVER NOT SUCCESSFUL;
Em seguida, execute o seguinte comando para rastrear as tentativas de login malsucedidas da sua conta mestre:
SELECT username, os_username, userhost, TO_CHAR(timestamp, 'MON-DD-YYYY HH24:MI:SS') what_time FROM dba_audit_trail WHERE returncode = 1017 AND username = 'EXAMPLE-USER';
Observação: para rastrear os dados de tentativas de login malsucedidas de todas as suas contas de banco de dados, remova o EXAMPLE-USER da cláusula WHERE no comando anterior.
- Tópicos
- Database
- Idioma
- Português

Conteúdo relevante
feita há um ano