Cours 4D affectation des tables aux schémas

Moteur SQL

Schémas
Le moteur SQL intégré de 4D v11 SQL implémente le concept de schémas. Cette implémentation se traduit par des modifications d’interface et la prise en charge de nouvelles commandes SQL.
La création, la modification et la suppression des schémas s’effectuent via des commandes SQL. Une nouvelle option de l’Inspecteur permet également d’affecter les tables aux schémas.
Présentation
Un schéma est un objet virtuel contenant des tables de la base. Dans le SQL, le concept de schémas a pour but de permettre l’attribution de droits d’accès spécifiques à des ensembles d’objets de la base de données.
Les schémas découpent la base en entités indépendantes dont l’assemblage représente la base entière. Autrement dit, une table appartient toujours à un et un seul schéma.
Lorsqu’une base de données est créée ou convertie avec 4D v11 SQL r3 ou une version ultérieure, un schéma par défaut est créé afin de regrouper toutes les tables de la base. Ce schéma est nommé « DEFAULT_SCHEMA ». Il ne peut pas être supprimé ni renommé.
Dans les versions précédentes de 4D, les droits d’accès via le SQL étaient définis globalement pour la base. Désormais, ils seront définis par schémas. Chaque schéma pourra se voir attribuer un type d’accès parmi les suivants :

  • „ Lecture seulement (données)
  • „ Lecture/Ecriture (données)
  • „ Complet (données et structure)

Création d’un schéma
Les schémas peuvent être créés uniquement par programmation, à l’aide de la commande SQL suivante : CREATE SCHEMA Nom_Schema
Lorsque vous créez un nouveau schéma, par défaut les droits associés  sont les suivants :

  • „ Lecture seulement (Données) : Tout le monde
  • „ Lecture/Ecriture (Données) : Tout le monde
  • „ Complet (Données & Structure) : Personne

Affectation des tables aux schémas
Chaque table appartient à un seul schéma. Vous pouvez affecter un schéma à une table soit via l’Inspecteur, soit par programmation.
„Affectation en structure
Vous pouvez affecter un schéma à une table dans la zone SQL de l’Inspecteur de table (fenêtre de structure), via un pop up menu listant les schémas définis dans la base :
„ Affectation par programmation
Il est également possible d’affecter une table à un schéma au moment  de sa création à l’aide du langage SQL.
– Création d’une table et affectation au schéma MonSchema1 : CREATE TABLE MonSchema1.MaTable
Si le schéma MONSCHEMA1 n’existe pas, une erreur est retournée et la  table est assignée au schéma par défaut.
– Création d’une table et affectation au schéma par défaut :
CREATE TABLE MaTable
Modification de l’affectation
Pour modifier l’affectation courante d’un schéma, vous pouvez utiliser  la commande SQL ALTER TABLE: ALTER TABLE Nom_TableSET SCHEMA Nom_Schema
– Transfert de la table « MaTable » au schéma « MonSchema2 » : ALTER TABLE MaTable SET SCHEMA MonSchema2
Modifier les droits  d’accès
Vous pouvez modifier les droits d’accès associés à un schéma à l’aide de  la commande SQL GRANT:
GRANT [READ | READ_WRITE | ALL] ON Nom_SchemaTO 4D_User_Group 4D_User_Group représente le nom du groupe d’utilisateurs 4D auquel  vous souhaitez affecter les droits d’accès au schéma.
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!] Les mots-clés READ, READ-WRITEet ALLcorrespondent aux types d’accès  définis dans la page SQL des Préférences :
„READinstaure le mode d’accès Lecture seulement (données) „READ_WRITE instaure le mode d’accès Lecture/Ecriture (données) „ ALL instaure le mode d’accès complet (données et structure).
– 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

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Cours 4D v11 SQL Release 3 ( 575 KO) (Cours PDF)
Cours 4d

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *