SQL Server へのログインとユーザーの追加
Microsoft SQL Server では、データベース管理者は、ログインを SQL Server インスタンスに追加し、それらのログインを SQL Server インスタンス上の各データベース内のユーザーにマップします。 テーブルとフィーチャクラスを作成するデータベース ユーザーは、それらのオブジェクトをデータベースに作成するために必要な権限を持つ必要があり、それらのオブジェクトを作成できるスキーマを所有する必要があります。 ArcGIS を使用する場合、そのスキーマの名前は、データベース ユーザー名と同じである必要があります。
データベース管理者は、データベース ユーザーの作成 ジオプロセシング ツール、または management.CreateDatabaseUser ArcPy 関数を呼び出す Python スクリプトを使用して、以下の操作をすべて実行できます。
ログインを SQL Server インスタンスに作成または追加する。
指定したログインにマップされるユーザーを作成する。
ユーザーに対応するスキーマを、指定したデータベースに作成する。
指定したデータベースにテーブル、フィーチャクラス、およびビューを作成する権限をユーザーに付与する。
ジオプロセシングを使用して、データを作成できるユーザーを追加する
ArcGIS Pro から データベース ユーザーの作成 ツールを実行するか、Python スクリプトで management.CreateDatabaseUser ArcPy 関数を呼び出して、テーブル、フィーチャクラス、およびビューを作成する権限を持つデータベース ユーザーを作成します。
データベース ユーザーの作成 ツールまたは management.CreateDatabaseUser 関数を実行するには、SQL Server インスタンスに対する sysadmin 権限を持つログインを使用してデータベースに接続している必要があります。
Microsoft Windows ログイン用のデータベース ユーザーを作成するには、ツールまたは関数を実行する前にそのログインが存在している必要があります。
**データベース ユーザーの作成 (Create Database User) **ツールの使用
データベース ユーザーの作成 ツールを使用して SQL Server にデータベース ユーザーを作成するには、次の手順に従います。
ArcGIS Pro を起動します。
SQL Server インスタンスでの sysadmin 権限を持つログインを使用してデータベースまたはジオデータベースに接続します。
データベース ユーザーの作成 ツールを開きます。
このツールは、データ管理ツールボックスのジオデータベース管理ツールセットにあります。
入力データベース接続 で、データベース接続を指定します。
SQL Server 認証ログインを作成するか、または既存の Windows 認証ログインを使用するかを選択します。
SQL Server 認証ログインを作成するには、[オペレーティング システム認証ユーザーの作成] をオフのままにします。 デフォルトでは、SQL Server インスタンスは Windows 認証のみを使用します。 インスタンスが、SQL Server 認証と Windows 認証を使用するように構成されていない場合、データベース認証ログインの作成を選択すると失敗します。
既存の Windows 認証ログインを使用する場合は、[オペレーティング システム認証ユーザーの作成] をオンにします。
ツールが作成するデータベース ユーザーの名前を指定します。
SQL Server 認証ログインを作成する場合、ここで入力した名前はログインにも使用されます。
データベース ユーザーのパスワードを入力します。
このユーザーを追加するデータベース ロールがすでに存在する場合は、そのロールを指定します。
実行 をクリックします。
Python スクリプトの実行
ユーザーの作成をスクリプト化するには、以下の手順に従います。
ArcGIS クライアント コンピューター上でテキスト ファイルを作成し、そのファイルに以下のコード ブロックのいずれかをコピーします。
自分のサイトに固有の情報を使用するようにコードを変更します。
これらの例では、SQL Server インスタンスでの sysadmin 権限を持つユーザーとして接続する既存のデータベース コネクション ファイルがあることを前提としています。 コネクション ファイルが存在しない場合は、スクリプトを実行する前にファイルを作成します。
# Name: createdatabaseuser_exampleW.py # Description: Uses existing database connection file # on a Windows computer to create a database user in SQL Server. # Import arcpy module import arcpy # Provide a database connection file for the system administrator user. connection = "C:\\ArcGIS\connection_files\<Connection file>.sde" # Process: Create database user that can create data for an existing operating system login. arcpy.management.CreateDatabaseUser(connection, "OPERATING_SYSTEM_USER", "NETWORKNAME\\username")# Name: createdatabaseuser_exampleL.py # Description: Uses existing database connection file # on a Linux computer to create a database user in SQL Server. # Import arcpy module import arcpy # Provide a database connection file for the system administrator user. connection = "<user>/connections/<Connection_file>.sde" # Process: Create a new database login and user that can create data. arcpy.management.CreateDatabaseUser(connection, "DATABASE_USER", "dbuser", "t3mpor@rypL@ceholder1").py拡張子を付けてファイルを保存します。ArcGIS Pro (Standard または Advanced) または ArcGIS Server がインストールされているコンピューターからスクリプトを実行します。
ヒント:
ArcGIS Server コンピューターからの Python の実行の詳細については、「ArcGIS Server と ArcPy」をご参照ください。
これで、テーブルとフィーチャクラスを作成する権限を持つユーザーがデータベースに作成されました。
新しいデータ所有者ユーザーは、データベースに接続して、テーブルおよびフィーチャクラスを作成できます。 データ所有者は、テーブルおよびフィーチャクラスに対する権限を他のユーザーに付与できます。 手順については、「データベースとエンタープライズ ジオデータベースの権限の付与と取り消し」をご参照ください。
SQL Server ツールを使用したログインとユーザーの作成
代わりに、データベース管理者は、SQL Server ツールを使用してログインおよびユーザーを作成することもできます。 たとえば、SQL を使用して、データベース ユーザーの作成 ツールで付与される権限とは異なる権限を持つユーザー、またはユーザーに直接付与される権限を持たないユーザーを作成します。 ArcGIS で使用するログインおよびユーザーを SQL を使って作成する場合は、以下のような注意事項があります。
データを作成するすべてのユーザーは、データベース内にスキーマを所有している必要があります。 スキーマの名前は、ユーザー名と同じにする必要があります。
個々の Windows ログインの代わりに、Windows グループに SQL Server へのアクセス権限を付与すると、ログインの作成と管理が簡単になります。 Windows グループのすべてのメンバーが SQL Server にサイン インできます。 グループに付与されたサーバー権限、データベース権限、およびデータセット権限は、グループのすべてのメンバーに自動的に適用されます。 ただし、スキーマを 1 つだけ作成して、そこにグループの全メンバーが作成したデータを格納することはできません。 ジオデータベース内にデータを作成する、グループの各ユーザーは、データを格納するための独自のスキーマを持つ必要があります。 SQL Server は、グループ メンバーがデータを最初に作成したときに、データベース内にユーザーとスキーマを作成します。 これは自動的に処理されます。スキーマとユーザーを手動で作成しないでください。
データベース権限は、ユーザーに直接付与することも、データベース ロールを介して付与することもできます。 必要な権限の詳細については、「SQL Server でのジオデータベースの権限」をご参照ください。
SQL Server ツールを使用してログイン、ユーザー、およびスキーマを作成する手順については、Microsoft SQL Server のドキュメントをご参照ください。
新しいユーザーはデータベースに接続できます。 オブジェクトを作成する権限を持つユーザーは、テーブルおよびフィーチャクラスを作成し、それらに対する権限を他のユーザーに付与することができます。 手順については、「データベースとエンタープライズ ジオデータベースの権限の付与と取り消し」をご参照ください。