Eu tenho que manter e estender um sistema legado antigo que contém métodos de serviço da web e tabelas de banco de dados que não são mais usadas. Como não tenho certeza de que as tabelas sejam realmente redundantes, tenho medo de descartá-las.
Existe alguma outra maneira de obter o mesmo efeito (as tabelas não podem mais ser usadas) sem descartá-las? Minha idéia foi transferi-los para um esquema diferente (por exemplo, Deleted
) do padrão atual dbo
,.
IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'Deleted')
BEGIN
EXEC('CREATE SCHEMA Deleted')
END
ALTER SCHEMA Deleted TRANSFER dbo.TableName;
Existe alguma outra opção ou existem desvantagens na abordagem de esquema?
fonte
Algumas outras opções são apenas renomear as tabelas ou, se elas tiverem índices agrupados, você poderá desativar o índice agrupado.
fonte
Remova as permissões na tabela das funções / grupos / contas / contas que [podem] estar usando.
Se algo explodir, coloque-o de volta [rapidamente].
Dica: Usar um script para fazer essas alterações seria uma idéia muito, muito boa.
fonte
A remoção de permissões geralmente não vai funcionar porque você não pode CERTINIR que alguém não tem permissões. Possivelmente através de um grupo, função ou mesmo porque são administradores de sistemas (embora esperemos que não).
Para tabelas, você pode desativá-las. E esse é um processo rápido. No entanto, para ativá-los, é necessário reconstruí-los e criar uma tabela grande que pode demorar um pouco.
Sua melhor aposta será mover o objeto para um novo esquema (como você sugeriu) ou renomeá-lo. Ambas as operações são rápidas e fáceis de fazer e desfazer. As permissões também permanecerão em vigor nas duas direções.
Uma etapa adicional que você pode executar é adicionar uma "nota TBD" nas propriedades estendidas do objeto. Você pode anotar quando fez a alteração e / ou qualquer anotação que possa ter sobre o motivo pelo qual considera seguro se livrar.
Tudo o que disse foi executado por alguns dias uma sessão de eventos estendida (ou rastreamento de criador de perfil) para garantir que todos os objetos estejam sendo usados. Você pode limitar fortemente a sessão apenas ao nome do objeto e quando foi tocada para reduzir a sobrecarga. Além disso, certifique-se de executar esta sessão por alguns dias em ambos os lados do final do mês e possivelmente até no final do trimestre para garantir que você tenha tudo.
fonte
Remova as permissões como Phil W. sugere.
Remova também as permissões de todos os procedimentos armazenados que usam as tabelas. No SQL Server, (não conheço outras pessoas), as permissões são encadeadas de um objeto de chamada (por exemplo, o procedimento armazenado) para o objeto chamado (por exemplo, uma tabela).
fonte