Scénario: ExampleHMO à l'aide du contrôle d'accès aux lignes et aux colonnes-Mises à jour des données

Pendant qu'il est à l'hôpital, Bob change de traitement. Par conséquent, ses enregistrements dans la base de données ExampleHMO doivent être mis à jour.

Le Dr Lee, qui est le médecin de Bob, conseille un changement de traitement et change le médicament de Bob. L'enregistrement de Bob dans les systèmes ExampleHMO doit être mis à jour. Les règles de droits d'accès aux lignes définies dans la base de données ExampleHMO indiquent que toute personne ne pouvant pas afficher les données d'une ligne ne peut pas mettre à jour les données de cette ligne. Etant donné que le PCPID de Bob contient l'ID de M. Lee et que le droit de ligne est défini, M. Lee peut à la fois afficher et mettre à jour l'enregistrement de Bob à l'aide de l'exemple d'instruction SQL suivant:

UPDATE PATIENT SET PHARMACY = 'codeine' WHERE NAME = 'Bob';
Le Dr Lee vérifie la mise à jour:
Select * FROM PATIENT WHERE NAME = 'Bob';

SSN         USERID    NAME    ADDRESS      PHARMACY    ACCT_BALANCE   PCP_ID

----------- --------- ------- ------------ ----------- -------------- ------
123-45-6789 BOB       Bob     123 Some St. codeine     0.00           LEE
Il est un patient qui est sous la garde du Dr James, l'un des collègues du Dr Lee. Le Dr Lee tente la même mise à jour sur le dossier de Dug:
UPDATE PATIENT SET PHARMACY = 'codeine' WHERE NAME = 'Dug';
SQL0100W  No row was found for FETCH, UPDATE or DELETE; or the result of a query
 is an empty table. SQLSTATE=02000
Etant donné que l'ID PCPID de Creuser Ne contient pas l'ID de M. Lee et que le droit d'accès aux lignes est défini, M. Lee ne peut pas afficher ni mettre à jour l'enregistrement de Dug.