SQL Server のジオデータベース所有者の比較

Microsoft SQL Server データベースのジオデータベースでは、ジオデータベースを構成するテーブル、ビュー、関数、ストアド プロシージャは、sde というデータベース ユーザーまたは dbo データベース ユーザーが所有できます。 どちらのユーザーがジオデータベースを所有しても、ジオデータベース管理者と見なされます。 ジオデータベースでは、ユーザー名とスキーマ名が一致している必要があるため、sde ユーザーが所有するジオデータベースは sde スキーマ ジオデータベースと呼ばれ、dbo が所有するジオデータベースは dbo スキーマ ジオデータベースと呼ばれます。

注意:

SQL Server がデータやその他のオブジェクトへのアクセスを管理する方法を理解することは大切です。 そのため、SQL Server のセキュリティ モデルについて詳しくない場合は、Microsoft SQL Server のドキュメントをご参照ください。 SQL Server は、ログインをインスタンス レベルで認証し、対応するユーザーをデータベース レベルで認証します。 インスタンス全体、特定のデータベース、あるいはデータベース内のデータに対して、さまざまな権限を付与することができます。 これは、使用するジオデータベース所有者のタイプを決定する際に影響する可能性があります。

ジオデータベース作成時の接続に使用したログインによって、そのジオデータベースを所有するデータベース ユーザーが決まります。 接続に使用したオペレーティング システム ログインまたは SQL Server ログインがデータベースの dbo ユーザーにマップされている場合、dbo スキーマのジオデータベースが作成されます。 接続に使用したオペレーティング システム ログインまたは SQL Server ログインがデータベースの sde というユーザーにマップされている場合、sde スキーマのジオデータベースが作成されます。

sde ユーザー

データベースの sde ユーザーは、SQL Server 認証のログインまたはオペレーティング システム認証のログインと関連付けることができます。 sde ユーザーは、sde というスキーマに対する権限を持ち、そのスキーマは sde ユーザーのデフォルト スキーマである必要があります。 また、sde ユーザーは、ジオデータベースを作成および管理できるデータベースの権限を付与される必要があります。

dbo ユーザー

dbo ユーザーとそのデフォルト スキーマは、すべてのデータベースに自動的に存在します。 ログインは、次のいずれかの方法でデータベースの dbo にできます。

  • 特定のデータベースを作成するか、その所有者にする
  • sysadmin 固定サーバー ロールのメンバーになる

特定のデータベースの dbo ユーザーにマップされたログインは、そのデータベースで最高の権限を持ちます。そのため、ジオデータベースを作成および管理するために十分な権限があります。 特定のデータベースの dbo にマップされたログインは、SQL Server インスタンスまたはその他のデータベースに対して、そのログインに明示的に付与されていない限り、上位の権限は持ちません。

sysadmin 固定サーバー ロールのメンバーであるログインは、SQL Server インスタンス上にあるすべてのデータベースの dbo にマップされ、SQL Server インスタンス全体で最高の権限も持ちます。 このログインは、ジオデータベースの作成および管理に十分な権限を持ち、インスタンス内のその他のセキュリティ保護可能なリソースを作成、変更、削除、管理できます。

dbo ユーザーが所有するすべてのデータベース オブジェクトは、dbo スキーマに格納されます。

ジオデータベースを所有するユーザーの選択

2 種類のジオデータベース スキーマには、性能や機能の違いはありません。 どちらにも長所と短所があります。 システムと選択したセキュリティ モデルに最も適したユーザー (とスキーマ) を選択してください。

使用する認証タイプに基づいた 2 種類のスキーマの比較を以下に示します。

schema (スキーマ)認証利点欠点

dbo (sysadmin のメンバー)

オペレーティング システムまたは SQL Server ログイン

  • SQL Server データベース管理者がジオデータベース管理者も兼務する場合、同じ人が実行するタスクに応じてログインを使い分けなくてもよいように、dbo スキーマを使用するのが理にかなっている場合があります。
  • 複数のジオデータベース管理者が必要な場合は、sysadmin 固定サーバー ロールに複数のログインを追加できます。
  • ログインは、SQL Server インスタンスのすべてのセキュリティ保護可能なリソースに対して上位の権限を持ちます。
  • dbo スキーマ ジオデータベースは、クラウドベースのデータベース サービスでサポートされていません。

dbo (特定のデータベースの dbo にマップ)

オペレーティング システムまたは SQL Server ログイン

  • ジオデータベース管理者は、特定のデータベース内にあるジオデータベースとデータベースの管理を実行できます。
  • 上位の権限は、特定のデータベース以外には適用されません。
  • ジオデータベース管理者を追加する必要がある場合、その他のログインを sysadmin 固定サーバー ロールに配置して、このデータベースの dbo にすることもできます。
  • ユーザーは、このデータベースで上位の権限を持ちます。
  • ログインをデータベースの所有者として設定する必要があります。つまり、ログインとデータベースの両方をデータベース ツールを使用して作成する必要があり、[エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ツールを使用してこれらを作成することはできません。
  • dbo スキーマ ジオデータベースは、クラウドベースのデータベース サービスでサポートされていません。

SDE

SQL Server ログイン

  • ジオデータベースを管理するために、sde ユーザーには特定のデータベース内でいくつかのステートメントを実行する権限だけが必要です。
  • sde スキーマ ジオデータベースは、同じ人がデータベース管理者とジオデータベース管理者を兼務していない場合に役立ちます。 データベース管理者は、データベース ツールを使用してデータベース、(必要な権限が付与された) sde ユーザー、および sde スキーマを作成することができ、sde ユーザーは [エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ジオプロセシング ツールを使用してジオデータベースを作成することができます。
  • クラウドベースのデータベース サービスでジオデータベースを作成する際に sde SQL Server ログインを使用することができます。
  • sde ユーザーにマップできるログインは 1 つだけです。
  • SQL Server インスタンスは、混合モード認証を使用できる必要があります。

SDE

オペレーティング システム ログイン

  • ジオデータベースを作成して管理するために、sde ユーザーには特定のデータベース内でいくつかのステートメントを実行する権限だけが必要です。
  • sde スキーマ ジオデータベースは、同じ人がデータベース管理者とジオデータベース管理者を兼務していない場合に役立ちます。 データベース管理者は、データベース ツールを使用してデータベース、(必要な権限が付与された) sde ユーザー、および sde スキーマを作成することができ、sde ユーザーは [エンタープライズ ジオデータベースの有効化 (Enable Enterprise Geodatabase)] ジオプロセシング ツールを使用してジオデータベースを作成することができます。
  • 既存のドメイン ログインを sde ユーザーにマップできます。
  • オペレーティング システム認証の sde ログインは、SQL Server インスタンスがオペレーティング システム認証しか許可していないサイトで使用できます。
  • sde ユーザーにマップできるログインは 1 つだけです。
  • [エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ツールを使用してジオデータベースを作成する場合、このツールでは sde ユーザーがオペレーティング システム ログインにマップされないため、sde ユーザーを先に作成する必要があります。