Como posso duplicar ou clonar minhas permissões de login de usuário do RDS for SQL Server?
Quero clonar minhas permissões de login de usuário do Amazon Relation Database (Amazon RDS) para Microsoft SQL Server. Como faço isso?
Resolução
Observação: esse script não faz nenhuma alteração nos novos logins, a menos que o usuário que estiver executando o script tenha acesso para conceder essas permissões. Se o usuário não tiver acesso para conceder permissões, as permissões não aparecerão no script. Isso ocorre porque o login usado para acessar o script não tem privilégios de visualização. Além disso, se você tentar adicionar o script de permissões manualmente quando não tiver privilégios concedidos, o script falhará.
1. Copie e execute o script MSSQL_RDS_CLONE_Login para criar um procedimento armazenado no ambiente no qual você quer duplicar o usuário. Mais tarde, você usará esse procedimento armazenado para criar uma duplicata das permissões de login do usuário, do usuário do banco de dados, do nível do servidor e das permissões do nível do banco de dados.
Você pode criar o procedimento armazenado em qualquer banco de dados de usuário que não esteja no banco de dados do sistema Amazon RDS para SQL Server. Substitua [DB_NAME] pelo nome do banco de dados do usuário, de acordo com o caso de uso.
Este script cria três procedimentos armazenados:
- DuplicateLogin: duplica o login e o usuário do banco de dados para os logins em cada banco de dados contendo as permissões sendo copiadas.
- GrantUserRoleMembership: duplica as permissões e funções do usuário do banco de dados para o novo usuário.
- DuplicateRDS: consolida os resultados dos procedimentos armazenados DuplicateLogin e GrantUserRoleMembership.
2. Depois de criar o procedimento armazenado, abra uma nova janela TSQL e execute o procedimento armazenado usando o formato a seguir.
Observação: antes de executar o script, verifique se os resultados estão em formato de texto pressionando CTRL+T no teclado.
--SQL login EXEC DuplicateRDS @NewLogin=[<duplicate_login_name>] ,@NewLoginPwd = password ,@LoginToDuplicate = master_login , @WindowsLogin = F ,@DatabaseName=NULL
-- Windows login EXEC DuplicateRDS @NewLogin=[<domain\duplicate_login_name>] ,@LoginToDuplicate = master_login ,@NewLoginPwd = NULL , @WindowsLogin = T ,@DatabaseName=NULL
3. Depois que o script for gerado, copie o script da guia Results (Resultados) e execute-o em uma nova janela de consulta. Depois que o script for executado, seu login do SQL Server será gerado com permissões de servidor e banco de dados semelhantes às do login principal.
Observação: esse exemplo exclui as permissões SSISDB para ssis_admin e ssis_logreader. Se você precisar dessas permissões, forneça-as separadamente.
ALTER ROLE [ssis_admin] ADD MEMBER [mydomain\user_name] ALTER ROLE [ssis_logreader] ADD MEMBER [mydomain\user_name] GO
Observação: a saída do script poderá ocorrer de forma não ordenada devido ao uso de tabelas temporárias no procedimento armazenado. Se isso ocorrer, descarte e recrie o procedimento armazenado para colocá-lo no formato correto.
4. Se você tiver usuários órfãos, execute o script a seguir. Esse script verifica se há usuários órfãos nos bancos de dados nos quais o script falhou e os remove.
Este script verifica se há usuários órfãos:
Use [DB_NAME] ; GO exec sp_change_users_login @Action='Report' ; GO
Este script descarta os usuários órfãos:
Use [DB_NAME] ; GO exec sp_revokedbaccess 'username' GO
5. Se você não quiser manter os procedimentos armazenados após duplicar o login (por exemplo, devido à conformidade), execute o seguinte script:
USE [DB_NAME] GO DROP PROCEDURE [dbo].[DuplicateRDS] GO DROP PROCEDURE [dbo].[DuplicateLogin] GO DROP PROCEDURE [dbo].[GrantUserRoleMembership] GO
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos