4D v16

GRANT

Accueil

 
4D v16
GRANT

GRANT  


 

 

GRANT [READ | READ_WRITE | ALL] ON nom_sql TO nom_sql

La commande GRANT permet de définir les droits d’accès associés au schéma nom_sql (premier paramètre). Ces droits seront attribués au groupe d'utilisateurs 4D désigné par le second paramètre nom_sql.

Les mots-clés READ, READ_WRITE et ALL permettent de définir les types d'accès autorisés pour la table :

  • READ instaure le mode d’accès Lecture seulement (données). Par défaut : <Tout le monde>
  • READ_WRITE instaure le mode d’accès Lecture/Ecriture (données). Par défaut : <Tout le monde>
  • ALL instaure le mode d’accès complet (données et structure). Par défaut : <Personne>

A noter que chaque type d'accès est défini indépendamment des autres. En particulier, si vous affectez un groupe au type d'accès READ uniquement, cela n'aura aucun effet car le groupe ainsi que tous les autres continueront de bénéficier de l'accès READ_WRITE (affecté à tous par défaut). Pour définir des accès READ, il est nécessaire d'appeler deux fois la commande GRANT (cf. exemple 2).

Le contrôle des accès s’applique uniquement aux connexions depuis l’extérieur. Le code SQL exécuté à l’intérieur de 4D via les balises Debut SQL/Fin SQL ou les commandes telles que SQL EXECUTER bénéficie toujours d’un accès sans restriction.

Note de compatibilité : Lors de la conversion d’une ancienne base en version 11.3 ou suivante, les droits d’accès globaux (tels que définis dans la page SQL des Préférences de l’application) sont transférés au schéma par défaut.

Le second paramètre nom_sql doit contenir le nom du groupe d’utilisateurs 4D auquel vous souhaitez affecter les droits d’accès au schéma. Ce groupe doit exister dans la base 4D.

Note : 4D permet de définir des noms de groupes comportant des espaces ou des caractères accentués, qui ne sont pas acceptés par le standard SQL. Dans ce cas, vous devez encadrer le nom avec les caractères [ et ]. Par exemple : GRANT READ ON [le schéma] TO [les admins!]

Seuls le Super_Utilisateur et l’Administrateur de la base peuvent modifier des schémas.

4D assure le principe d’intégrité référentielle indépendamment des droits d’accès. Imaginons par exemple que vous disposiez de deux tables Table1 et Table2 reliées par un lien de type N vers 1 (Table2 -> Table1). Table1 appartient au schéma S1 et Table2 au schéma S2. Un utilisateur disposant des droits d’accès du schéma S1 mais pas de ceux du schéma S2 peut supprimer des enregistrements dans la Table1. Dans ce cas, afin de respecter les principes d’intégrité référentielle, tous les enregistrements de la Table2 liés aux enregistrements supprimés de la Table1 seront également supprimés.

Vous souhaitez autoriser l’accès en lecture écriture des données du schéma MonSchema1 au groupe "Power_Users" :

GRANT READ_WRITE ON MonSchema1 TO POWER_USERS

Vous souhaitez autoriser un accès en lecture seulement au groupe "Readers". Ce cas nécessite d'affecter également au moins un groupe au type d'accès READ_WRITE (ici "Admins") afin qu'il ne soit plus affecté à tous par défaut :

GRANT READ ON MonSchema2 TO Readers /*Affectation de l'accès en lecture seulement */
GRANT READ_WRITE ON MonSchema2 TO Admins /*Stopper l'accès à tous en lecture écriture*/



Voir aussi  

ALTER SCHEMA
CREATE SCHEMA
REVOKE

 
PROPRIÉTÉS 

Produit : 4D
Thème : Commandes SQL
Nom intl. : GRANT

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Référence SQL ( 4D v16)