2009-09-21 8 views
4

J'utilise LinqToSQL et une connexion de confiance pour gérer les sélections de bases de données/mises à jour/insertions/suppressions. Dans le passé, j'ai toujours utilisé des procédures stockées et accordé uniquement l'autorisation d'exécution à l'identité du pool d'applications pour le sproc particulier dans la base de données. C'est mon premier projet LinqToSql (et j'adore ce que ça aide). Je préférerais ne pas accorder l'accès dbo à l'identité du pool d'applications pour que LinqToSql fonctionne (mais si cela est recommandé, cela ne me dérange pas). Quel type d'autorisations puis-je accorder à l'identité du pool d'applications afin que LinqToSql dispose des autorisations minimales? Ou devrais-je simplement aller avec les permissions dbo et en finir avec ça?Quelles autorisations doivent être accordées à l'utilisateur SQL Server pour LinqToSql?

Comme par KristoferA's answer ce sont les autorisations que j'Accordée l'identité du pool d'applications dans la base de données:
EXEC sp_addrolemember 'db_datareader', 'app_pool_identity'
EXEC sp_addrolemember 'db_datawriter', 'app_pool_identity'

Pas exactement le même niveau de sécurité que l'octroi ne les droits d'exécution aux sprocs nécessaires, mais je suis très bon avec cela étant donné les énormes gains de développement que j'ai réalisés en utilisant Linq2SQL. Et c'est mieux que d'accorder l'accès complet à dbo.

Répondre

1

db_datareader et db_datawriter est suffisant si vous voulez juste lire et écrire des données sans déconner avec les changements de schéma et d'autres choses ...

0

LinqToSQL crée dynamiquement le SQL généré. En tant que tel, il a besoin d'un accès complet aux commandes du langage de manipulation de données (insertion, mise à jour, suppression). Votre compte d'application ne doit pas avoir besoin d'accéder aux commandes de langage de définition de données (créer, supprimer, modifier, etc.).