Eu queria saber se havia uma maneira bastante eficiente de usar o T-SQL com sintaxe do SQL Server 2000 para GRANT SELECT, INSERT, UPDATE, DELETE, em todas as tabelas e visualizações de um banco de dados específico, excluindo 2 ou 3 dos mais de 100 objetos. Eu também gostaria de poder conceder privilégios EXEC em todos os procedimentos armazenados.
Atualmente, estou usando o código abaixo para alterá-los um por um. Fazer isso em cerca de 100 tabelas e 100 visualizações está demorando muito e demorará ainda mais na GUI (a menos que eu esteja fazendo isso errado também).
use [DATABASE_NAME]
GO
GRANT DELETE ON [dbo].[table_name]TO [user_name]
GO
use [DATABASE_NAME]
GO
GRANT INSERT ON [dbo].[table_name]TO [user_name]
GO
use [DATABASE_NAME]
GO
GRANT SELECT ON [dbo].[table_name]TO [user_name]
GO
use [DATABASE_NAME]
GO
GRANT UPDATE ON [dbo].[table_name]TO [user_name]
GO
Como posso usar o T-SQL para percorrer TODAS as tabelas e exibições de usuários para conceder certos privilégios particulares e excluir alguns objetos?
fonte