ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Aide
  • Sign Out
ArcGIS Desktop

ArcGIS Online

La plateforme cartographique de votre organisation

ArcGIS Desktop

Un SIG professionnel complet

ArcGIS Enterprise

SIG dans votre entreprise

ArcGIS Developers

Outils de création d'applications de localisation

ArcGIS Solutions

Modèles d'applications et de cartes gratuits pour votre secteur d'activité

ArcGIS Marketplace

Téléchargez des applications et des données pour votre organisation.

  • Documentation
  • Support
Esri
  • Se connecter
user
  • Mon profil
  • Déconnexion

ArcMap

  • Accueil
  • Commencer
  • Carte
  • Analyser
  • Gérer les données
  • Outils
  • Extensions

Exemple : Créer des vues de base de données dans Oracle avec SQL

  • Accorder des privilèges sur les tables
  • Créer une vue pour limiter l’accès
  • Créer une vue pour joindre deux tables
  • Accorder des privilèges sur la vue
Complexité :
Débutant
Conditions requises pour les données
Utiliser vos propres données

Vous pouvez utiliser SQL pour créer une vue sur des tables et des classes d’entités dans une géodatabase d’entreprise afin de restreindre les colonnes et les enregistrements disponibles pour l’affichage des utilisateurs ou définir une vue pour joindre les informations provenant de deux tables ou d’une classe d’entités et d’une table. Lorsque vous incluez la colonne spatiale dans la définition de la vue, les utilisateurs de la vue peuvent visualiser les entités dans une carte dans un client ArcGIS Desktop.

Les exemples de cette rubrique présentent comment créer des vues dans une base de données Oracle. Une vue limite l'accès utilisateur aux colonnes spécifiques. L’autre vue présente le contenu de deux tables différentes. Les exemples sont basés sur les tables avec les définitions suivantes :

Définition de table pour les employés

CREATE TABLE employees (
 emp_id number(38) unique not null,
 name varchar2(32),
 department number not null,
 hire_date date not null
);

Définition de table pour les régions

CREATE TABLE employees ( objectid number(38) unique not null, reg_id number(38) unique not null, emp_id number(38) not null, rname nvarchar(32),  region st_geometry
);

Accorder des privilèges sur les tables

Si l’utilisateur qui crée la vue n’est pas le propriétaire de la table ou des tables sur lesquelles la vue repose, le propriétaire des tables doit au moins accorder au créateur de la vue les privilèges nécessaires pour réaliser des sélections dans la table. Si le propriétaire de la vue doit accorder des privilèges sur la vue à d'autres utilisateurs, le propriétaire de la table doit accorder au propriétaire de la vue la possibilité d'accorder des privilèges sur la table à d'autres utilisateurs.

Dans cet exemple, les tables sur lesquelles reposent les vues (employés et régions) sont la propriété de l’utilisateur gdb. L’utilisateur qui crée les vues est l’utilisateur rocket. En outre, l’utilisateur rocket accorde les privilèges sur les vues d’autres utilisateurs. Par conséquent, l’utilisateur gdb doit accorder à l’utilisateur rocket le privilège de sélectionner à partir des tables pour les employés et les régions et inclure l’option WITH GRANT OPTION de telle sorte que l’utilisateur rocket puisse accorder aux autres utilisateurs les privilèges SELECT sur les vues.

conn gdb/gdb.bdg
GRANT SELECT 
 ON gdb.employees 
 TO rocket WITH GRANT OPTION;
GRANT SELECT 
 ON gdb.regions 
 TO rocket WITH GRANT OPTION;

Créer une vue pour limiter l’accès

Dans cet exemple, l’utilisateur rocket crée une vue (view_dept_201) sur la table des employés afin de limiter l’accès aux seules lignes où le département a la valeur 201 :

CREATE VIEW view_dept_201 
 AS (SELECT emp_id,name,department,hire_date)
 FROM gdb.employees 
 WHERE department = 201;

Créer une vue pour joindre deux tables

Dans cet exemple, la vue emp_regions_view joint une table spatiale (classe d’entités) à une table non spatiale en fonction de la colonne emp_id. Cette vue inclut l’ObjectID, la colonne spatiale (region) et le nom de la région (rname) de la classe d’entités regions, ainsi que le nom et l’ID des employés issus de la table employees.

CREATE VIEW emp_region_view  AS SELECT (e.emp_name,e.emp_id,r.rname,r.objectid,r.region) 
 FROM employees e,region r 
 WHERE e.emp_id = r.emp_id;

Accorder des privilèges sur la vue

Vous pouvez accorder des privilèges sur les vues à des utilisateurs spécifiques sans devoir leur accorder l’accès aux tables de base (employees et regions). Dans cet exemple, les privilèges SELECT sont accordés à l’utilisateur dispatch_mgr sur les deux vues :

conn rocket/nopeeking
GRANT SELECT ON rocket.view_dept_201
 TO dispatch_mgr;

L’utilisateur dispatch_mgr peut désormais accéder à view_dept_201 pour visualiser les enregistrements des employés de tous les employés du département 201, ainsi qu’à emp_region_view à partir d’une connexion à une base de données dans ArcMap ou ArcGIS Pro pour afficher toutes les régions. Lorsque dispatch_mgr interroge une région de la vue, ArcGIS renvoie le nom de la région, ainsi que le nom et l’ID de tous les employés de cette région.

ArcGIS Desktop

  • Accueil
  • Documentation
  • Support

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

A propos d'Esri

  • A propos de la société
  • Carrières
  • Blog d’Esri
  • Conférence des utilisateurs
  • Sommet des développeurs
Esri
Donnez-nous votre avis.
Copyright © 2021 Esri. | Confidentialité | Légal