Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Quelles autorisations sont requises pour effectuer une insertion en bloc dans SQL Server à partir d'un partage réseau avec l'authentification Windows ?

Récemment, nous avons eu ce problème pour un certain nombre de nos développeurs. J'ai trouvé plusieurs façons de tester les insertions en masse.

Notre préférence était d'utiliser un compte de service SQL. Nous avons configuré le serveur SQL et l'agent SQL pour qu'ils s'exécutent en tant que compte de service, puis nous avons autorisé les développeurs à déclencher des tâches d'agent. Le compte de service a été autorisé à accéder aux partages UNC et tout a fonctionné correctement. Notez que le compte de service fonctionnera toujours correctement pour exécuter ces tâches d'agent (en supposant que les autorisations UNC sont définies). Ce sont les développeurs qui essaient de tester qui rencontreront ces problèmes.

Une autre méthode consiste à créer un partage sur le serveur SQL lui-même et à faire pointer le chemin d'insertion en bloc vers le répertoire local. Ces erreurs semblent se produire uniquement lors de l'accès aux chemins UNC. Indépendamment du fait que le chemin UNC dispose des autorisations appropriées pour vous autoriser l'accès. Par exemple, nous créons C:\test\ en tant que dossier sur le serveur SQL lui-même et autorisez-le à autoriser un développeur à y déposer des fichiers de test. Celles-ci sont ensuite appelées via la commande d'insertion en bloc.

Il peut être nécessaire d'exécuter une commande sur master pour autoriser une autorisation de groupe de connexion SQL à effectuer une insertion en bloc. C'est comme ci-dessous.

GRANT ADMINISTER BULK OPERATIONS TO "domain\usergroup"