Est-il possible d'utiliser SqlBulkCopy dans SQL 2008 sans l'autorisation "db_datawriter"?

security sqlbulkcopy sql-server sql-server-2008

Question

Je souhaite limiter les possibilités d'accès de ma base de données à l'utilisation exclusive de procédures stockées. Tout fonctionne bien sauf System.Data.SqlClient.SqlBulkCopy . Je ne l'utilise que dans une classe pour l'importation massive de données.

Est-il possible d'éviter ce problème?

J'ai essayé d'accorder un droit avant d'appeler SqlBulkCopy et de le supprimer après:

EXEC [db_mod].[sys].[sp_addrolemember] N'db_datawriter', N'my_user'
EXEC [db_mod].[sys].[sp_droprolemember] N'db_datawriter', N'my_user'

mais une telle approche soulève une erreur:

L'utilisateur n'a pas la permission d'effectuer cette action.

Je l'exécute sous le même utilisateur. Comment puis-je permettre ce dont j'ai besoin?

Réponse populaire

L'erreur décrite à la suite d'une tentative de sp_addrolemember () est liée au fait que l'utilisateur actuel ne dispose pas des privilèges nécessaires pour modifier les paramètres de compte et de sécurité.

En ce qui concerne l'exécution de SqlBulkCopy, des privilèges d'écriture sont nécessaires. Le rôle db_datawriter est un moyen pratique de les fournir, mais vous pouvez peut-être envisager d'autres solutions. Par exemple, au lieu d’augmenter (ne serait-ce que temporairement) les privilèges de sécurité du compte actuel, vous pouvez modifier les paramètres de sécurité associés à cette base de données / ces tables.

La modification des paramètres de sécurité de "sécurisables", tels que les objets de base de données, requiert également certains privilèges d'administration, mais ceux-ci peuvent être associés à la propriété de la base de données. Ils peuvent donc être disponibles même si les privilèges de modification d'un compte ne le sont pas.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi