Je me demandais s'il y avait un moyen assez efficace d'utiliser T-SQL avec la syntaxe SQL Server 2000 pour GRANT SELECT, INSERT, UPDATE, DELETE, sur toutes les TABLES et VUES pour une base de données particulière tout en excluant 2 ou 3 des plus de 100 objets. J'aimerais également pouvoir accorder des privilèges EXEC sur toutes les procédures stockées.
Actuellement, j'utilise le code ci-dessous pour les modifier un par un. Faire cela pour environ 100 tableaux et 100 vues prend beaucoup trop de temps et prendra encore plus de temps à travers l'interface graphique (à moins que je ne me trompe aussi).
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
Comment puis-je utiliser T-SQL pour parcourir TOUTES les tables et vues utilisateur pour accorder certains privilèges tout en excluant quelques objets?
la source