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 Db2 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 les vues
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 IBM Db2. 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 integer not null,
 name varchar(32), 
 department smallint not null,
 hire_date date not null
);

Définition de table pour les régions

CREATE TABLE regions( objectid integer not null, emp_id integer not null, reg_id integer not null, rname varchar(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 les tables.

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.

db2 => connect to testdb user gdb using gdb.dbg
   Database Connection Information
 Database server        = DB2 10.5.5
 SQL authorization ID   = GDB
 Local database alias   = TESTDB
db2 => GRANT SELECT 
 ON employees 
 TO USER rocket;
db2 => GRANT SELECT 
 ON regions 
 TO USER rocket;

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 :

db2 => connect to testdb user rocket using nopeeking
   Database Connection Information
 Database server        = DB2 10.5.5
 SQL authorization ID   = ROCKET
 Local database alias   = TESTDB
db2 => 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.

connect to testdb user gdb using gdb.dbg 
   Database Connection Information 
Database server      = DB2 10.5.5 
SQL authorization ID = GDB 
Local database alias = TESTDB
CREATE VIEW emp_regions_view 
 AS SELECT (e.emp_name,e.emp_id,r.objectid,r.rname,r.region)
 FROM employees e, regions r
 WHERE e.emp_id = r.emp_id;

Accorder des privilèges sur les vues

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 :

db2 => connect to testdb user rocket using nopeeking
   Database Connection Information
 Database server        = DB2 10.5.5
 SQL authorization ID   = ROCKET
 Local database alias   = TESTDB
db2 => GRANT SELECT 
 ON rocket.view_dept_201 
 TO USER dispatch_mgr;
db2 => GRANT SELECT
 ON rocket.emp_region_view
 TO USER 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