web-dev-qa-db-fra.com

Que signifie ApplicationIntent = ReadOnly dans la chaîne de connexion

J'utilise MS Access pour me connecter à Sql Server via une connexion DSN. Il s'agit d'une table liée à un serveur principal SQL. Voici la chaîne de connexion

ODBC;DSN=mydsn;Description=mydesc;Trusted_Connection=Yes;APP=Microsoft Office 2010;DATABASE=mydb;ApplicationIntent=READONLY;;TABLE=dbo.mytable

Comme vous pouvez le voir, il y a un ApplicationIntent=READONLY tag dans la chaîne de connexion. Qu'est-ce que ça veut dire. Suis-je connecté à la base de données en lecture seule? Est-il recommandé d'effectuer des mises à jour et des insertions à l'aide de cette chaîne de connexion?

21
Luke101

Cela signifie que si vous utilisez des groupes de disponibilité dans SQL Server 2012, le moteur sait que vos connexions sont en lecture seule et peuvent être acheminées vers des réplicas en lecture seule (si elles existent). Quelques informations ici:

Configurer l'accès en lecture seule sur un réplica de disponibilité

écouteurs de groupe de disponibilité, connectivité client et basculement d'application

Si vous n'utilisez pas actuellement les groupes de disponibilité, il peut être une bonne idée de laisser cela là pour la compatibilité ascendante, mais cela dépend vraiment si oui ou non vous ne faites que lire intentionnellement. Cela devrait empêcher les écritures mais il y a quelques mises en garde. Ces éléments Connect peuvent être utiles ou vous laisser vous gratter la tête. J'avoue que je ne les ai pas lus.

ApplicationIntent = ReadOnly autorise les mises à jour d'une base de données

ApplicationIntent = ReadOnly n'envoie pas la connexion à la copie secondaire

22
Aaron Bertrand