Elastic Database クライアント ライブラリへのアクセスに使用する資格情報Credentials used to access the Elastic Database client library

Elastic Database クライアント ライブラリでは、3 種類の資格情報を使用してシャード マップ マネージャーにアクセスします。The Elastic Database client library uses three different kinds of credentials to access the shard map manager. 必要に応じて、最低レベルのアクセスが可能な資格情報を使用します。Depending on the need, use the credential with the lowest level of access possible.

  • 管理の資格情報: シャード マップ マネージャーを作成または操作しますManagement credentials: for creating or manipulating a shard map manager. (用語集をご覧ください)。(See the glossary.)
  • アクセス資格情報: 既存のシャード マップ マネージャーにアクセスして、シャードに関する情報を取得します。Access credentials: to access an existing shard map manager to obtain information about shards.
  • 接続の資格情報: シャードに接続します。Connection credentials: to connect to shards.

Azure SQL Database におけるデータベースとログインの管理」も参照してください。See also Managing databases and logins in Azure SQL Database.

管理資格情報についてAbout management credentials

管理の資格情報は、シャード マップを操作するアプリケーションの ShardMapManager (Java.NET) オブジェクトを作成するときに使用されますManagement credentials are used to create a ShardMapManager (Java, .NET) object for applications that manipulate shard maps. (例については、「Elastic Database ツールを使用してシャードを追加する」および「データ依存ルーティング」をご覧ください)。(For example, see Adding a shard using Elastic Database tools and data-dependent routing). エラスティック スケール クライアント ライブラリのユーザーは、SQL ユーザーと SQL ログインを作成し、グローバル シャード マップ データベースとすべてのシャード データベースに対する読み取り/書き込みアクセス許可が各ユーザーに付与されていることを確認する必要があります。The user of the elastic scale client library creates the SQL users and SQL logins and makes sure each is granted the read/write permissions on the global shard map database and all shard databases as well. これらの資格情報は、シャード マップに変更を加えるときにグローバル シャード マップとローカル シャード マップを維持するために使用されます。These credentials are used to maintain the global shard map and the local shard maps when changes to the shard map are performed. たとえば、管理の資格情報を使用して、シャード マップ マネージャー オブジェクトを作成します (GetSqlShardMapManager (Java.NET) を使用)。For instance, use the management credentials to create the shard map manager object (using GetSqlShardMapManager (Java, .NET):

// Obtain a shard map manager.
ShardMapManager shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager(smmAdminConnectionString,ShardMapManagerLoadPolicy.Lazy);

変数 smmAdminConnectionString は、管理資格情報を格納する接続文字列です。The variable smmAdminConnectionString is a connection string that contains the management credentials. ユーザー ID とパスワードにより、シャード マップ データベースと個々のシャードの両方に対する読み取り/書き込みアクセスが提供されます。The user ID and password provide read/write access to both shard map database and individual shards. 管理接続文字列には、グローバル シャード マップ データベースを識別するためのサーバー名とデータベース名も含まれます。The management connection string also includes the server name and database name to identify the global shard map database. この処理に使用する一般的な接続文字列を次に示します。Here is a typical connection string for that purpose:

"Server=<yourserver>.database.windows.net;Database=<yourdatabase>;User ID=<yourmgmtusername>;Password=<yourmgmtpassword>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;”

値の形式としては、"username@server" ではなく、単に "username" という値を使ってください。Do not use values in the form of "username@server"—instead just use the "username" value. これは、シャード マップ マネージャー データベースと個々のシャードの両方で資格情報を有効にする必要があり、それらが別々のサーバー上に存在する場合があるためです。This is because credentials must work against both the shard map manager database and individual shards, which may be on different servers.

資格情報にアクセスするAccess credentials

シャード マップの管理用ではないアプリケーションでシャード マップ マネージャーを作成するときは、グローバル シャード マップに対する読み取り専用アクセス許可が与えられる資格情報を使用します。When creating a shard map manager in an application that does not administer shard maps, use credentials that have read-only permissions on the global shard map. これらの資格情報の下でグローバル シャード マップから取得される情報は、データ依存ルーティングの目的と、クライアント上のシャード マップ キャッシュを設定するために使用されます。The information retrieved from the global shard map under these credentials is used for data-dependent routing and to populate the shard map cache on the client. 資格情報は、GetSqlShardMapManager と同じ呼び出しパターンを通じて提供されます。The credentials are provided through the same call pattern to GetSqlShardMapManager:

// Obtain shard map manager.
ShardMapManager shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager(smmReadOnlyConnectionString, ShardMapManagerLoadPolicy.Lazy);  

ここでは、管理者以外のユーザーのアクセス用に使用されるさまざまな資格情報を反映するために smmReadOnlyConnectionString を使用しています。これらの資格情報では、グローバル シャード マップに対する書き込みアクセス許可は提供されません。Note the use of the smmReadOnlyConnectionString to reflect the use of different credentials for this access on behalf of non-admin users: these credentials should not provide write permissions on the global shard map.

接続の資格情報Connection credentials

OpenConnectionForKey (Java.NET) メソッドを使用してシャーディング キーに関連付けられているシャードにアクセスするには、追加の資格情報が必要になります。Additional credentials are needed when using the OpenConnectionForKey (Java, .NET) method to access a shard associated with a sharding key. これらの資格情報は、シャード上に存在するローカル シャード マップ テーブルへの読み取り専用アクセス許可を提供する必要があります。These credentials need to provide permissions for read-only access to the local shard map tables residing on the shard. これは、シャード上でのデータ依存ルーティングのための接続検証を行う場合に必要になります。This is needed to perform connection validation for data-dependent routing on the shard. 次のコード スニペットは、データ依存ルーティングのコンテキストでデータ アクセスを許可します。This code snippet allows data access in the context of data-dependent routing:

using (SqlConnection conn = rangeMap.OpenConnectionForKey<int>(targetWarehouse, smmUserConnectionString, ConnectionOptions.Validate))

この例の smmUserConnectionString は、ユーザー資格情報の接続文字列を保持します。In this example, smmUserConnectionString holds the connection string for the user credentials. Azure SQL DB に対するユーザー資格情報の一般的な接続文字列を次に示します。For Azure SQL DB, here is a typical connection string for user credentials:

"User ID=<yourusername>; Password=<youruserpassword>; Trusted_Connection=False; Encrypt=True; Connection Timeout=30;”  

管理者の資格情報と同じように、"username@server" という形式の値は使わないでください。As with the admin credentials, do not use values in the form of "username@server". 代わりに "username" のみを使用します。Instead, just use "username". 接続文字列にはサーバー名とデータベース名が含まれていないことにも注意してください。Also note that the connection string does not contain a server name and database name. これは、OpenConnectionForKey の呼び出しによって接続がキーに基づいた正しいシャードに自動的に転送されるためです。That is because the OpenConnectionForKey call automatically directs the connection to the correct shard based on the key. そのため、データベース名とサーバー名を指定しないでください。Hence, the database name and server name are not provided.

関連項目See also

Azure SQL Database におけるデータベースとログインの管理Managing databases and logins in Azure SQL Database

SQL Database の保護Securing your SQL Database

Elastic Database ジョブElastic Database jobs

その他のリソースAdditional resources

まだ弾力性データベース ツールを使用していない場合は、Not using elastic database tools yet? ファースト ステップ ガイドを参照してください。Check out our Getting Started Guide. 質問がある場合は、SQL Database のフォーラムに投稿してください。機能に関するご要望は、SQL Database に関するフィードバック フォーラムにお寄せください。For questions, please reach out to us on the SQL Database forum and for feature requests, please add them to the SQL Database feedback forum.