Ir para o conteúdo

Como faço para restaurar o acesso do usuário principal à minha instância do Amazon RDS para SQL Server?

5 minuto de leitura
0

O usuário principal da minha instância do Amazon Relational Database Service (Amazon RDS) para SQL Server perdeu o acesso. Ou quero conceder ao usuário principal acesso a um banco de dados criado por outro usuário.

Breve descrição

Para restaurar as permissões do usuário principal, modifique a instância de banco de dados do RDS e defina uma nova senha de usuário administrador.

Quando você cria uma nova instância de banco de dados, o usuário primário padrão recebe automaticamente determinadas permissões para a instância de banco de dados. Depois de criar a instância de banco de dados, você não pode alterar o nome de usuário do usuário principal.

Observação: não use o usuário principal para conexões de banco de dados de aplicações. Em vez disso, crie um login com apenas as permissões necessárias para as tarefas específicas da sua aplicação.

Resolução

Observação: neste artigo, usuário principal refere-se ao usuário mestre da sua instância do Amazon RDS para SQL Server.

O usuário principal pode perder a permissão para se conectar à instância de banco de dados, acessar um banco de dados específico ou realizar determinadas ações. Conclua as etapas na seção a seguir que correspondam à sua situação.

O usuário principal não consegue se conectar à instância de banco de dados

O usuário principal não consegue se conectar à instância de banco de dados quando a permissão Connect SQL está definida explicitamente como NEGAR. Por padrão, o login do Amazon RDS System Administrator (rdsa) concede a permissão Connect SQL ao usuário principal. No entanto, no Microsoft SQL Server, um NEGAR explícito tem prioridade sobre um CONCEDER explícito.

Para solucionar esse problema, conclua as etapas a seguir:

  1. Conecte-se à instância do RDS para SQL Server com as credenciais de login do usuário que definiu um NEGAR explícito na permissão Connect SQL para o usuário principal.
  2. Execute o seguinte comando T-SQL para revogar o NEGAR explícito:
    USE master;
    GO
    REVOKE CONNECT SQL TO master_user AS grantor_principal;
    GO
    Observação: substitua master_user pelo seu login de usuário primário do RDS e grantor_principal pelo concedente principal.

O usuário principal não pode acessar um banco de dados específico

A seguir estão os motivos pelos quais o usuário principal não pode acessar um banco de dados específico:

  • Outra conta de login criou o banco de dados. O login do usuário principal não tem mapeamento de usuários do banco de dados nem permissões do banco de dados.
  • Um administrador excluiu o usuário do banco de dados que foi mapeado para o login do usuário principal e tinha permissões válidas.

Para resolver o problema, redefina a senha do usuário principal. Isso cria um usuário do banco de dados que mapeia para o login do usuário principal. Como alternativa, crie um usuário do banco de dados para o login do usuário principal no banco de dados afetado e conceda ao usuário a permissão db_owner.

Quando você redefine somente a senha do usuário principal, essa operação não causa tempo de inatividade. No entanto, se você fizer outras modificações simultaneamente na instância de banco de dados, como uma alteração na classe da instância, essas alterações combinadas poderão causar tempo de inatividade. O usuário do AWS Identity and Access Management (IAM) que redefine a senha deve ter permissão para realizar a ação ModifyDBInstance no recurso.

Ao atualizar a senha do usuário principal, você restaura o seguinte para o usuário principal:

  • Permissões do sistema
  • Perfis em nível de servidor
  • Permissões em nível de servidor
  • Acesso aos procedimentos armazenados no sistema
  • Acesso a procedimentos armazenados específicos do RDS

O usuário principal não pode realizar determinadas ações

O usuário principal tem a permissão db_owner do perfil no banco de dados, mas não pode realizar determinadas ações, como CONECTAR, SELECIONAR, INSERIR, ATUALIZAR e ALTERAR. Isso ocorre quando um administrador define explicitamente as permissões NEGAR no banco de dados que substituem as permissões db_owner do perfil.

Execute o seguinte comando T-SQL para visualizar a lista de perfis do banco de dados e os usuários do banco de dados que são membros dos perfis:

USE DATABASE_NAME;
GO
SELECT DP1.name AS DatabaseRoleName,
   isnull (DP2.name, 'No members') AS DatabaseUserName
 FROM sys.database_role_members AS DRM
 RIGHT OUTER JOIN sys.database_principals AS DP1
   ON DRM.role_principal_id = DP1.principal_id
 LEFT OUTER JOIN sys.database_principals AS DP2
   ON DRM.member_principal_id = DP2.principal_id
WHERE DP1.type = 'R'
ORDER BY DP1.name;

Observação: substitua DATABASE_NAME pelo nome do seu banco de dados.

Execute os comandos a seguir para obter a lista de permissões que um usuário tem em um banco de dados específico:

USE DATABASE_NAME;
GO
EXECUTE AS USER = 'master_user';
SELECT * FROM sys.fn_my_permissions(NULL, 'DATABASE');
GO

Observação: substitua master_user pelo usuário primário e DATABASE_NAME pelo nome do seu banco de dados.

No exemplo anterior, um administrador adiciona o usuário principal aos perfis fixos do banco de db_denydatawriter e db_denydatareader. Mesmo que o usuário principal seja membro do perfil db_owner, o NEGAR explícito substitui as permissões SELECIONAR, INSERIR, ATUALIZAR e EXCLUIR no banco de dados.

Para solucionar esse problema, conclua as etapas a seguir:

  1. Use a senha principal para fazer login na instância do RDS para SQL Server.
  2. Execute o seguinte comando T-SQL para remover o usuário primário como membro de db_denydatawriter e db_denydatareader:
    USE DATABASE_NAME;
    GO
    ALTER ROLE db_denydatawriter DROP MEMBER MASTER_USER;
    ALTER ROLE db_denydatareader DROP MEMBER MASTER_USER;
    GO

Observação: substitua DATABASE_NAME pelo nome do banco de dados e MASTER_USER pelo usuário principal.

O usuário principal agora tem as permissões SELECIONAR, INSERIR, ATUALIZAR e EXCLUIR no banco de dados.

Informações relacionadas

Redefinir a associação ao perfil db_owner para o usuário principal no Amazon RDS para SQL Server

Segurança do Microsoft SQL Server

DENY (Transact-SQL) no site da Microsoft

AWS OFICIALAtualizada há 5 meses
1 Comentário

This article was reviewed and updated on 2026-02-18.

ESPECIALISTA

respondeu há 6 dias