ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS Desktop

完全なプロ仕様の GIS

ArcGIS Enterprise

エンタープライズ GIS

ArcGIS Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ArcMap

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • エクステンション

例: SQL を使用して Oracle でデータベース ビューを作成する

  • テーブルに関する権限の付与
  • アクセスを制限するビューの作成
  • 2 つのテーブルを結合するビューの作成
  • ビューに対する権限の付与
複雑度:
初心者
データ要件:
独自データの使用

SQL を使用して、エンタープライズ ジオデータベース内のテーブルおよびフィーチャクラスを基にビューを作成し、ビューのユーザーが利用できる列およびレコードを制限することができ、あるいは 2 つのテーブルまたはフィーチャクラスおよびテーブルからの情報を結合するようにビューを定義することができます。空間列をビュー定義に含めた場合、ビューのユーザーは、ArcGIS Desktop クライアントでマップ内のフィーチャを視覚化できます。

このトピックの例は、Oracle データベースでビューを作成する方法を示しています。1 つのビューは、ユーザー アクセスを特定の列に制限します。もう 1 つのビューは、2 つの異なるテーブルからのコンテンツを表示します。この例は、以下の定義を持つテーブルに基づいています。

従業員のテーブル定義

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

地域のテーブル定義

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
);

テーブルに関する権限の付与

ビューを作成するユーザーがビューの基になるテーブルの所有者でない場合、テーブルの所有者はビューの作成者に少なくともテーブルの SELECT 権限を付与する必要があります。ビューの所有者がビューの権限を他のユーザーに付与する必要がある場合、テーブルの所有者は、テーブルの権限を他のユーザーに付与する権限をビューの所有者に付与する必要があります。

この例では、ビューの基になるテーブル (employees と regions) はユーザー gdb が所有しています。ビューを作成しているユーザーは、ユーザー rocket です。また、rocket はビューの権限を他のユーザーに付与します。したがって、gdb ユーザーは rocket に employees および regions テーブルの SELECT 権限を付与し、rocket がビューの SELECT 権限を他のユーザーに付与できるように WITH GRANT OPTION を指定する必要があります。

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

アクセスを制限するビューの作成

この例では、ユーザー rocket が employees テーブルを基にビュー (view_dept_201) を作成し、部署番号が 201 の行のみにアクセスを制限しています。

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

2 つのテーブルを結合するビューの作成

この例では、ビュー (emp_regions_view) は、emp_id 列に基づいて空間テーブル (フィーチャクラス) を非空間テーブルと結合しています。このビューは、regions フィーチャクラスからの ObjectID、空間列 (region)、および地域名 (rname) に加えて、employees テーブルからの従業員名および ID を含んでいます。

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;

ビューに対する権限の付与

ビューの権限を特定のユーザーに付与することができます。また、これらのユーザーにベース テーブル (employees および regions) へのアクセスを許可する必要はありません。この例では、ユーザー dispatch_mgr は 両方のビューの SELECT 権限を付与されています。

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

ユーザー dispatch_mgr は、view_dept_201 にアクセスして部署番号 201 のすべての従業員に関する従業員レコードを表示し、ArcMap または ArcGIS Pro のデータベース接続から、emp_region_view にアクセスしてすべての地域を表示できるようになりました。dispatch_mgr がビューで地域を検索した場合、ArcGIS は、地域名、およびその地域内のすべての従業員の名前と ID を返します。

ArcGIS Desktop

  • ホーム
  • ドキュメント
  • サポート

ArcGIS

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

Esri について

  • 会社概要
  • 採用情報
  • Esri ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
ご意見・ご感想をお寄せください。
Copyright © 2021 Esri. | プライバシー | リーガル