SQL Server でのジオデータベースの作成

Standard または Advancedのライセンスで利用可能。

ジオデータベースを Microsoft SQL Server データベース内に作成するには、ジオプロセシング ツールまたは Python スクリプトを ArcGIS クライアントから実行します。

ArcGIS Pro 3.5 からジオデータベースを作成する場合、そのジオデータベースのバージョンは 11.5.0.x になります。

まず、下記の前提条件に目を通した上で、状況に当てはまる手順を実行します。

前提条件

ジオデータベースを SQL Server 内に作成する前に、次のことを行っておく必要があります。

  1. 使用する ArcGIS、SQL Server、およびオペレーティング システムの組み合わせに互換性があることを確認します。
  2. ジオデータベースの格納に使用する SQL Server のバージョンへの接続に必要な SQL Server ODBC クライアントをダウンロードします。
  3. ArcGIS Server キーコード ファイルを入手し、ジオデータベースの作成に使用する ArcGIS クライアントからアクセスできる位置に配置します。
  4. ジオデータベースを作成するユーザー (これによってデータベースの作成者が決まる) と、ジオデータベースの作成に使用するツールを決定します。 次のうち、状況に当てはまる手順に従ってください。

SQL Server およびジオデータベースの管理者である場合

データベース管理者とジオデータベース管理者の両方のロールを実行するため、両方のログインのパスワードを知っている場合、[エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ジオプロセシング ツールまたは ArcPy 関数を使用して、ジオデータベースを SQL Server データベースに作成できます。

[エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ツールを使用してジオデータベースを設定すると、データベース オブジェクトが作成され、必要な権限が付与されます。 このためには、ツールで次のデフォルト設定を使用して、次のデータベース オブジェクトを作成します。

  • データベース ファイル (MDF および LDF) を、サーバー上の SQL Server のデフォルトの場所に作成します。
  • これにより、SQL Server データベース オプション READ_COMMITTED_SNAPSHOT および ALLOW_SNAPSHOT_ISOLATION が ON に設定されます。
  • SQL Server のモデル データベースに対して定義したデータベース ファイルのデフォルトのサイズが使用されるか、または MDF ファイルの場合は 500 MB、LDF ファイルの場合は 125 MB のどちらか大きい方が使用されます。
  • sde という名前のスキーマにジオデータベースを作成した場合、ツールは、sde データベース認証ログインを SQL Server インスタンスに作成し、sde ユーザーをデータベースに作成して sde ログインにマップし、sde スキーマをデータベースに作成し、ジオデータベースを作成する権限および SQL Server インスタンスへの接続を削除する権限を sde ユーザーに付与します。
  • SQL Server インスタンス内にジオデータベース オブジェクトを作成します。

ツールまたは関数を実行してジオデータベースを作成する前に、SQL Server インスタンスをインストールして構成する必要があります。

SQL Server のインストールと構成

ジオデータベースを作成する前に、SQL Server をインストールしてインスタンスを構成する必要があります。 インスタンスの構成方法は、各組織の要件に応じて変わります。

注意:

SQL Server インスタンスでは大文字と小文字を区別しない照合順序を使用する必要があり、このデータベースはトルコ語の照合順序を使用できません。

ユーザー (または IT 部門) は、SQL Server をインストールした後、リモート接続を許可するように SQL Server インスタンスを構成する必要があります。デフォルトでは、リモート接続は無効化されています。

SQL Server のインストールと構成の詳細については、Microsoft のドキュメントをご参照ください。

SQL Server をインストールおよび構成した後に、ArcGIS クライアントと SQL Server クライアントをインストールします。

クライアントのインストール

ArcGIS Pro (Desktop Standard または Desktop Advanced) または ArcGIS Server (エンタープライズ エディション) をインストールし、Python スクリプトを実行してジオデータベースを作成できます。 スクリプトの代わりに [エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ジオプロセシング ツールを実行するには、ArcGIS Pro をインストールします。

注意:

次のセクションでは、ArcGIS Server (Enterprise エディション) のキーコード ファイルを使用してジオデータベースを認証する必要があります。 ArcGIS Server コンピューターから Python スクリプトを実行してジオデータベースを作成する場合以外でも、ArcGIS Server をインストールして認証し、キーコード ファイルを取得します。 場合によって、ArcGIS Server コンピューターから、[エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ジオプロセシング ツールがアクセスできる場所にキーコード ファイルをコピーする必要があります。

ほとんどの場合、ArcGIS クライアントは、SQL Server とは別のコンピューターにインストールされます。 このため、データベースに接続するには、サポートされている SQL Server クライアントを ArcGIS クライアント コンピューターにインストールする必要があります。 使用しているバージョンの SQL Server に接続するためにどのバージョンの SQL Server クライアントをインストールすべきかを判断するには、「SQL Server に対する ArcGIS のシステム要件」をご参照ください。

Microsoft Windows コンピューター上の SQL Server に接続するには、My Esri または Microsoft Download Center から SQL Server クライアントをダウンロードします。 Linux コンピューター上の SQL Server に接続するには、Microsoft Download Center から SQL Server クライアント ファイルをダウンロードします。 Microsoft の指示に従って、SQL Server クライアントを ArcGIS クライアント コンピューターにインストールしてください。

次の手順に従って、ジオデータベースを作成する必要のあるクライアントをインストールして構成します。 ソフトウェアをインストールする権限がない場合は、代わりに IT 部門にこの手順を行ってもらう必要があります。

  1. ジオデータベースの作成に使用する ArcGIS クライアントをインストールします。

    ソフトウェア インストール ガイドに記載されている手順に従います。

  2. SQL Server クライアントを ArcGIS クライアント コンピューターにインストールします。

    SQL Server クライアントを 64 ビット オペレーティング システムにインストールする場合は、64 ビット SQL Server クライアントの実行可能ファイルを使用します。 32 ビット SQL Server クライアントを 64 ビット オペレーティング システムで実行した場合は、正常に動作しません。

これで、ジオデータベースを作成できるようになりました。

ジオデータベースの作成

ArcGIS Pro (Desktop Standard または Desktop Advanced) から [エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ツールを実行するか、ArcGIS Pro (Desktop Standard または Desktop Advanced) または ArcGIS Server (エンタープライズ エディション) クライアントから Python スクリプトを実行して、データベースとジオデータベースを作成できます。

[エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ツールの実行

ArcGIS Pro にアクセスできる場合は、ジオプロセシング ツールを実行してジオデータベースを作成できます。

以下の手順に従って、ArcGIS Pro[エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ツールを使用してジオデータベースを作成します。

  1. ArcGIS Pro を起動します。
  2. [エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ツールを開きます。

    このツールは、データ管理ツールボックスのジオデータベース管理ツールセットで検索または選択できます。 ジオプロセシング ツールを開く方法に関する一般情報については、「ジオプロセシング ツールの検索」をご参照ください。

  3. [データベース プラットフォーム] ドロップダウン リストで [SQL Server] を選択します。
  4. [インスタンス] テキスト ボックスに、接続先の SQL Server インスタンスの名前を入力します。
  5. [データベース] テキスト ボックスに、ジオデータベースを格納するデータベースの名前を入力します。

    SQL Server インスタンス内にその名前のデータベースがまだ存在しない場合は、作成されます。 そのデータベースが存在する場合、それを使用してジオデータベースが格納されます。

  6. SQL Server にシステム管理者として接続します。 SQL Server の sysadmin 固定サーバー ロールのメンバーであるオペレーティング システム認証のログインを使用するか、sysadmin ユーザーのデータベース ユーザー名およびパスワードを入力します。
    • sysadmin ロールのデータベース ユーザーとして認証するには、[データベース管理者] テキスト ボックスに sysadmin のユーザー名、[データベース管理者パスワード] テキスト ボックスにそのパスワードを入力します。
    • sysadmin オペレーティング システム認証ログインを使用して認証するには、[オペレーティング システム認証] をオンにします。 このオプションを使用する場合、正しいログインを使用して Windows にサイン インする必要があります。
  7. ジオデータベースを格納するスキーマを選択します。
    • sde というユーザーをジオデータベース管理者とし、ジオデータベースを sde ユーザーのスキーマに格納する場合は、[SDE 所有スキーマ] をオンにします。
    • dbo ユーザーをジオデータベース管理者として、ジオデータベースを dbo スキーマに格納する場合は、[SDE 所有スキーマ] をオフにします。

    sde スキーマまたは dbo スキーマへのジオデータベースの格納の詳細については、「SQL Server のジオデータベース所有者の比較」をご参照ください。

  8. SDE 所有スキーマを選択した場合、[ジオデータベース管理者] テキスト ボックスには sde が入力されています。 この名前のユーザーがデータベース内に存在しない場合は、ユーザーとそのスキーマが作成され、ジオデータベースの作成に必要な権限がユーザーに付与されます。

    データベース認証を使用し、ジオデータベースの格納に dbo スキーマを使用している場合、[ジオデータベース管理者] テキスト ボックスに SQL Server インスタンスの dbo ユーザーの名前を入力します。

    オペレーティング システム認証を使用してデータベースに接続している場合、dbo スキーマ ジオデータベースを作成するには、現在のログインが SQL Server の sysadmin 固定サーバー ロールの中にある必要があります。

  9. [ジオデータベース管理者パスワード] テキスト ボックスに、ジオデータベース管理者のパスワードを入力します。

    指定したジオデータベース管理者がデータベース内にすでに存在する場合、既存のユーザーのパスワードを正しく入力する必要があります。このツールでは、パスワードは変更されません。

  10. [認証ファイル] フィールドでファイルを指定するには、ArcGIS Server (Enterprise エディション) を認証したときに作成されたキーコード ファイルを参照して選択します。

    このファイルは、Windows サーバーの場合は \\Program Files\ESRI\License<release#>\sysgen フォルダー、Linux サーバーの場合は /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen に作成されます。 キーコード ファイルを、[エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ツールでアクセスできる場所にコピーします。 まだ行っていない場合には、この時点で ArcGIS Server を認証して、このファイルを作成します。

  11. [実行] をクリックします。

    ジオデータベース作成に関連するメッセージは、sde_setup.log ファイルに書き込まれます。このファイルは、ツールが実行されるコンピューター上の %TEMP% 変数で指定されたディレクトリに作成されます。 ジオデータベースの作成時に問題が発生した場合は、このファイルを確認して問題を解決します。

既存のデータベースを指定しなかった場合、SQL Server のデフォルトの場所にデータベースとログ ファイルが作成されます。 データベース内にジオデータベースが作成されます。 sde スキーマのジオデータベースを選択した場合、データベース認証の sde ログイン、データベース ユーザーおよびスキーマが作成されます。

次に、データをジオデータベースに読み込む権限のあるユーザーを作成できます。

Python スクリプトの実行

ジオデータベースを作成するには、下に示したスクリプトをコピーおよび保存して、ArcGIS Pro (Standard または Advanced) または ArcGIS Server (エンタープライズ エディション) から実行します。

ヒント:

ArcGIS Server コンピューターからの Python の実行については、「ArcGIS Server および ArcPy」をご参照ください。

  1. ArcGIS クライアント コンピューター上でテキスト ファイルを作成し、そのファイルに以下のスクリプトをコピーして、サイト固有のオプションと情報を入力します。
    """
    Name: create_enterprise_gdb.py
    Description: Create an enterprise geodatabase in SQL Server with provided DBMS connection information
    Author: Esri
    """
    
    # Import system modules
    import arcpy, os
    
    # Local variables
    # Replace the path with the location of your keycodes file
    # Replace all arcpy.management.CreateEnterpriseGeodatabase information except "SQL_SERVER" and license with values specific to your site
    license = os.fsencode("\\Program Files\\path\\to\\authorization_file\\keycodes")
    
    try:
        arcpy.management.CreateEnterpriseGeodatabase("SQL_SERVER",
                                                     "gisprod",
                                                     "entgdb",
                                                     "DATABASE_AUTH",
                                                     "sa",
                                                     "N0pe3king!",
                                                     "SDE_SCHEMA",
                                                     "sde",
                                                     "sdepwdGLSCfhjWXQGQ",
                                                     "",
                                                     license
    
    )
        for i in range(arcpy.GetMessageCount()):
            arcpy.AddReturnMessage(i)
        arcpy.AddMessage("+++++++++\n")
    except:
        for i in range(arcpy.GetMessageCount()):
            arcpy.AddReturnMessage(i)
  2. スクリプトに記載されているとおりに値を置換します。
  3. .py 拡張子を付けてファイルを保存します。
  4. スクリプトを実行します。

    ジオデータベース作成に関連するメッセージは、sde_setup.log ファイルにあります。このファイルは、スクリプトを実行したコンピューター上の TEMP 変数または TMP 変数で指定されたディレクトリに作成されます。 ジオデータベースの作成時に問題が発生した場合は、このファイルを確認して問題を解決します。

これで、ジオデータベースが SQL Server に作成されました。

次に、データをジオデータベースに読み込む権限のあるユーザーを作成できます。

SQL Server 管理者がデータベースを作成し、ジオデータベース管理者がジオデータベースを作成する場合

ジオデータベースを作成するユーザーがデータベース管理者のパスワードを使用できない場合、データベース管理者は、データベースとジオデータベース管理者のログイン、ユーザー、スキーマを作成する必要があります。 ジオデータベースが sde スキーマに格納される場合、データベース管理者は sde ログイン、sde ユーザー、および sde スキーマを作成します。 ジオデータベースが dbo スキーマに格納される場合、データベース管理者は、ログインとユーザーを作成し、データベースの所有者になるユーザーを割り当てます。 ジオデータベースの格納オプションの詳細については、「SQL Server のジオデータベース所有者の比較」をご参照ください。

ジオデータベース管理者は、ジオデータベース管理者としてデータベースに接続し、[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ジオプロセシング ツールまたは Python スクリプトを使用してジオデータベースを作成します。

[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールは、データベース接続ファイルを入力として受け取り、ジオデータベースのシステム テーブル、ビュー、関数、プロシージャを作成します。

SQL Server のインストールと構成

ジオデータベース管理者がジオデータベースを作成するには、まず、SQL Server 管理者が以下を実行する必要があります。

  • SQL Server をインストールしてインスタンスを構成します。 インスタンスの構成方法は、各組織の要件に応じて変わります。 次に進む前に、使用するデータベース管理システム、ArcGIS、およびハードウェアの組み合わせがサポートされていることを ArcGIS のシステム要件で確認してください。 リモート接続を許可するように SQL Server インスタンスを構成します。デフォルトでは、リモート接続は無効化されています。 SQL Server のインストールと構成の詳細については、Microsoft のドキュメントをご参照ください。

    注意:

    SQL Server インスタンスでは大文字と小文字を区別しない照合順序を使用する必要があり、このデータベースはトルコ語の照合順序を使用できません。

  • データベースを作成します。
  • SQL Server データベース オプション READ_COMMITTED_SNAPSHOT および ALLOW_SNAPSHOT_ISOLATIONON に設定します。 SQL Server 管理者がこれらのオプションを ON に設定していないが、ジオデータベース管理者にデータベースでの ALTER 権限を付与している場合は、[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールを実行すると、データベース上でこれらの設定が変更されます。 SQL Server 管理者がこれらのオプションを設定しておらず、ジオデータベース管理者にこれらの設定を変更するのに十分な権限がない場合は、ジオデータベースの作成に失敗します。
  • sde という名前のデータベース ユーザーまたはデータベース所有者になるデータベース ユーザーにマップするログインを追加または作成します。
  • sde スキーマ ジオデータベースを使用する場合、sde という名前のスキーマをデータベースに作成します。 このスキーマを、sde ユーザーのデフォルトのスキーマとして設定します。
  • sde スキーマ ジオデータベースを使用する場合、sde ユーザーは、少なくとも CREATE FUNCTIONCREATE PROCEDURECREATE TABLECREATE VIEW 権限を持つ必要があります。 その他の権限については、「SQL Server のジオデータベースの権限」をご参照ください。

クライアントのインストール

ジオデータベース管理者 (または IT スタッフ) は、ArcGIS Pro (Desktop Standard または Desktop Advanced) または ArcGIS Server (Enterprise エディション) をインストールして、Python スクリプトを実行してジオデータベースを作成できます。 スクリプトの代わりに [エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ジオプロセシング ツールを実行するには、ArcGIS Pro をインストールします。

注意:

次のセクションでは、ArcGIS Server (Enterprise エディション) のキーコード ファイルを使用してジオデータベースを認証する必要があります。 ArcGIS Server コンピューターから Python スクリプトを実行してジオデータベースを作成する場合以外でも、ArcGIS Server をインストールして認証し、キーコード ファイルを取得する必要があります。 場合によって、ArcGIS Server コンピューターから、[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ジオプロセシング ツールがアクセスできる場所にキーコード ファイルをコピーする必要があります。

ほとんどの場合、ArcGIS クライアントは、SQL Server とは別のコンピューターにインストールされます。 このため、データベースに接続するには、サポートされている SQL Server クライアントを ArcGIS クライアント コンピューターにインストールしておく必要があります。 使用しているバージョンの SQL Server に接続するためにどのバージョンの SQL Server クライアントをインストールすべきかを判断するには、「SQL Server に対する ArcGIS のシステム要件」をご参照ください。

Microsoft Windows コンピューター上の SQL Server に接続するには、My Esri または Microsoft Download Center から SQL Server クライアントをダウンロードします。 Linux コンピューター上の SQL Server に接続するには、Microsoft Download Center から SQL Server クライアント ファイルをダウンロードします。 Microsoft の指示に従って、SQL Server クライアントをクライアント コンピューターにインストールしてください。

  1. ジオデータベースの作成に使用する ArcGIS クライアントをインストールします。

    ソフトウェア インストール ガイドに記載されている手順に従います。

  2. SQL Server クライアントを ArcGIS クライアント コンピューターにインストールします。

    SQL Server クライアントを 64 ビット オペレーティング システムにインストールする場合は、64 ビット SQL Server クライアントの実行可能ファイルを使用します。 32 ビット SQL Server クライアントを 64 ビット オペレーティング システムで実行した場合は、正常に動作しません。

ArcGIS クライアントをデータベースに接続し、ジオデータベースを作成する準備が整いました。 これを行うには、次のセクションに記載されているいずれかの方法を使用します。

ジオデータベースの作成

ジオデータベース管理者は、ArcGIS Pro (Desktop Standard または Desktop Advanced) から [エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールを実行するか、ArcGIS Pro (Desktop Standard または Desktop Advanced) または ArcGIS Server (エンタープライズ エディション) コンピューターから Python スクリプトを実行して、既存のデータベース内にジオデータベースを作成できます。

[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールの実行

ArcGIS Pro から [エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールを実行して、ジオデータベースを既存の SQL Server データベース内に作成できます。

以下の手順に従って、ArcGIS Pro[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールを使用してジオデータベースを作成します。

  1. ArcGIS Pro を起動します。
  2. ジオデータベース管理者として SQL Server データベースに接続します。

    [データベース コネクション] ダイアログ ボックスで、ユーザーのパスワードを保存します。

  3. [エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールを開きます。

    ジオプロセシング ツールを開く方法に関する一般情報については、「ジオプロセシング ツールの検索」をご参照ください。

  4. 手順 2 で作成したデータベース接続を [入力データベース接続] フィールドにドラッグします。
  5. ArcGIS Server の認証時に作成された ArcGIS Server 認証ファイルを選択し、そのファイルを [認証ファイル] テキスト ボックスに追加します。

    ウィザードを使用して ArcGIS Server を認証する際に、ソフトウェアがインストールされているサーバーにキーコード ファイルが書き込まれます。 キーコード ファイルは、Windows サーバーの場合は Program Files\ESRI\License<release>\sysgenLinux サーバーの場合は /arcgis/server/framework/runtime/.wine/drive_c/Program Files/ESRI/License<release#>/sysgen に作成されます。 このファイルを、[エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ツールがアクセスできる場所にコピーします。 まだ作成していない場合には、ArcGIS Server を認証して作成します。

  6. [実行] をクリックします。

    ジオデータベース作成に関連するメッセージは、sde_setup.log ファイルに書き込まれます。このファイルは、ツールが実行されるコンピューター上の %TEMP% 変数で指定されたディレクトリに作成されます。 ジオデータベースの作成時に問題が発生した場合は、このファイルを確認して問題を解決します。

データベース内にジオデータベースが作成されます。

次に、データベース管理者は、データをジオデータベースに読み込む権限のあるユーザーを作成できます。

Python スクリプトの実行

Windows コンピューター上にインストールされた ArcGIS Pro (Desktop Standard または Desktop Advanced) または ArcGIS Server (エンタープライズ エディション) からスクリプトを実行してジオデータベースを作成するには、下に示すスクリプトを使用できます。

ヒント:

ArcGIS Server コンピューターからの Python の実行については、「ArcGIS Server および ArcPy」をご参照ください。

以下の手順に従って Python スクリプトを実行し、ジオデータベースを既存の SQL Server データベースに作成します。

  1. ArcGIS クライアント コンピューター上でテキスト ファイルを作成し、そのファイルに以下のスクリプトをコピーして、サイト固有のオプションと情報を入力します。

    # Name: enable_enterprise_gdb.py
    # Description: Create an enterprise geodatabase in an existing SQL Server database
    
    # Import system modules
    import arcpy, os
    
    # Local variables
    # Replace paths with those appropriate to your site
    license = "\\Program Files\\path\\to\\authorization_file\\keycodes"
    tempdir = "C:\\temp\\"
    connection_file_name = "egdb_connection.sde"
    
    # Check for the .sde file and delete it if present
    connection_file_name_path = os.path.join(tempdir, connection_file_name)
    
    arcpy.env.overwriteOutput=True
    if os.path.exists(connection_file_name_path):
    	os.remove(connection_file_name_path)
    
    # Create a connection to the geodatabase as the geodatabase administrator
    # Replace all values except tempdir, connection_file_name, "SQL_SERVER", and "SAVE_USERNAME"
    arcpy.CreateDatabaseConnection_management(tempdir,
                                              connection_file_name,
                                              "SQL_SERVER",
                                              "gisprod",
                                              "DATABASE_AUTH",
                                              "sde",
                                              "Tgdbst@rtsh3r3",
                                              "SAVE_USERNAME",
                                              "entgdb"
    )
    # Enable geodatabase
    try:
        arcpy.EnableEnterpriseGeodatabase_management(connection_file_name_path, license)
    except:
        for i in range(arcpy.GetMessageCount()):
            arcpy.AddReturnMessage(i)

  2. スクリプトに記載されているとおりに値を置換します。
  3. .py 拡張子を付けてファイルを保存します。
  4. スクリプトを実行します。

    ジオデータベース作成に関連するメッセージは、sde_setup.log ファイルにあります。このファイルは、スクリプトを実行したコンピューター上の TEMP 変数または TMP 変数で指定されたディレクトリに作成されます。 ジオデータベースの作成時に問題が発生した場合は、このファイルを確認して問題を解決します。

これで、ジオデータベースが SQL Server データベースに作成されました。

次に、データベース管理者は、データをジオデータベースに読み込む権限のあるユーザーを作成できます。