CData Cloud は、クラウドホスト型のソリューションで、複数の標準サービスやプロトコルにまたがるSQL Server へのアクセスを実現します。SQL Server データベースに接続できるアプリケーションであれば、CData Cloud を介してSQL Server に接続できます。
CData Cloud により、他のOData エンドポイントや標準SQL Server と同じように、SQL Server への接続を標準化し、構成することができます。
このページでは、CData Cloud でのSQL Server への接続の確立 のガイド、利用可能なリソースに関する情報、および使用可能な接続プロパティのリファレンスについて説明します。
接続の確立 は、CData Cloud にデータベースを作成するためのSQL Server への認証方法と必要な接続プロパティの設定方法について示します。
利用可能な標準サービスを経由してSQL Server からデータにアクセスする方法と、CData Cloud の管理については、CData Cloud ドキュメント で詳しく説明します。
Database タブで対応するアイコンを選択して、SQL Server に接続します。必須プロパティはSettings にリストされています。Advanced タブには、通常は必要ない接続プロパティが表示されます。
CData Cloud - SQL Server を使用して、Microsoft SQL Server、Azure SQL Server、またはAzure Data Warehouse の任意のインスタンスに接続できます。
SQL Server に接続するには、次の接続プロパティを設定します。
以下の接続プロパティを設定することで、Azure SQL Server またはAzure Data Warehouse に接続できます。
SQL Server のユーザーログイン認証情報を使用してMicrosoft SQL Server に認証するには、以下のように設定します。
Cloud がプロセスを実行しているWindows ユーザーのID から自動的にログイン認証情報を取得できるようにするには、以下のように設定します。
Kerberos でSQL Server への認証を行うには、AuthScheme をKERBEROS に設定します。
Kerberos 経由でSQL Server への認証を行うには、認証プロパティを定義し、Kerberos が認証チケットを取得する方法を選択する必要があります。
Cloud は、 KRB5CCNAME および / またはKerberosKeytabFile 変数が存在するかどうかに応じて、必要なKerberos チケットを取得する3 つの方法を提供します。
MIT Kerberos 資格情報キャッシュファイル
このオプションを使用すると、MIT Kerberos チケットマネージャーまたはkinit コマンドを使ってチケットを取得できます。このオプションでは、User またはPassword 接続プロパティを設定する必要はありません。
このオプションは、KRB5CCNAME がシステムに作成されている必要があります。
MIT Kerberos 資格情報キャッシュファイル経由でチケット検索を有効にするには:
チケットの取得に成功すると、チケット情報がKerberos チケットマネージャーに表示され、クレデンシャルキャッシュファイルに保存されます。
Cloud はキャッシュファイルを使用してSQL Server に接続するためのKerberos チケットを取得します。
Note: KRB5CCNAME を編集したくない場合は、KerberosTicketCache プロパティを使用してファイルパスを手動で設定することができます。この設定後に、Cloud は指定されたキャッシュファイルを使用してSQL Server に接続するためのKerberos チケットを取得します。
Keytab ファイル
お使いの環境にKRB5CCNAME 環境変数がない場合、Keytab ファイルを使用してKerberos チケットを取得できます。
この方法を使用するには、User プロパティを目的のユーザー名に設定し、KerberosKeytabFile プロパティをユーザーに関連付けられたキータブファイルを指すファイルパスに設定します。
User およびPassword
お使いの環境にKRB5CCNAME 環境変数およびKerberosKeytabFile プロパティが設定されていない場合、ユーザーとパスワードの組み合わせを使用してチケットを取得できます。
この方法を使用するには、User およびPassword プロパティを、SQL Server での認証に使用するユーザー / パスワードの組み合わせに設定します。
このようなクロスレルム認証を有効にするには、KerberosRealm およびKerberosKDC プロパティをユーザー認証に必要な値に設定します。また、KerberosServiceRealm およびKerberosServiceKDC プロパティを、 サービスチケットの取得に必要な値に設定します。
認証するには、次を設定します。
または、AuthScheme をAzureAd、AzurePassword、AzureMSI のいずれかに設定してOAuth を使用することもできます。すべてのOAuth接続で、AzureTenant 接続プロパティをSQL Server データベースがホストされているテナントのId に設定する必要があります。
Note:Microsoft はAzure AD をEntra ID にリブランドしました。ユーザーがEntra ID 管理サイトを操作する必要があるトピックでは、Microsoft が使用している名称と同じものを使用します。ただし、名前または値が"Azure AD" を参照しているCData 接続プロパティは、依然として存在します。
Microsoft Entra ID は、マルチテナント型のクラウドベースのID およびアクセス管理プラットフォームです。 OAuth ベースの認証フローに対応しており、ドライバーによるSQL Server エンドポイントへのセキュアなアクセスを実現します。
Web アプリケーションを介したEntra ID への認証には、必ずはじめにカスタムOAuth アプリケーションを作成して登録する必要があります。 これにより、アプリケーションは独自のリダイレクトURI を定義し、クレデンシャルのスコープを管理し、組織固有のセキュリティポリシーに準拠することができるようになります。
カスタムOAuth アプリケーションの作成および登録方法の詳細については、カスタムAzure AD アプリケーションの作成 を参照してください。
AuthScheme をAzureAD に設定した後の認証手順は、環境によって異なります。 デスクトップアプリケーション、Web ベースのワークフロー、またはヘッドレスシステムから接続する方法の詳細については、以下のセクションを参照してください。
Note:Microsoft はAzure AD をEntra ID にリブランドしました。ユーザーがEntra ID 管理サイトを操作する必要があるトピックでは、Microsoft が使用している名称と同じものを使用します。ただし、名前または値が"Azure AD" を参照しているCData 接続プロパティは、依然として存在します。
サービスプリンシパルは、Microsoft Entra ID(Azure AD)アプリケーション内のセキュリティオブジェクトであり、そのアプリケーションが特定のテナント内で何を行えるかを定義します。
サービスプリンシパルはEntra 管理センターで作成でき、Azure ポータルからもアクセス可能です。
作成プロセスの過程で、サービスプリンシパルがクライアントシークレットまたは証明書のどちらを経由してEntra リソースにアクセスするかも指定します。
接続先のサービスによっては、テナント管理者がサービスプリンシパル認証を有効にするか、サービスプリンシパルを適切なロールまたはセキュリティグループに割り当てる必要があります。
サービスプリンシパルの権限は、特定のユーザーに紐づくのではなく、割り当てられたロールに基づきます。 これらのロールは、アプリケーションがアクセスできるリソースと、実行できる操作を決定します。
サービスプリンシパルを使用して認証する場合、Entra ID(Azure AD)でのサービスプリンシパルアプリの作成 で説明するようにEntra テナントにアプリケーションを登録する必要があります。
このサブセクションでは、接続前に設定する必要があるプロパティについて説明します。 これらは、クライアントシークレットで認証するか、証明書で認証するかによって異なります。
Azure 認証情報を使用してAzure Active Directory に直接認証するには、以下の接続プロパティを指定します:
Azure VM 上でSQL Server を実行しており、マネージドID(MSI)認証情報を自動的に取得して接続したい場合は、AuthScheme を AzureMSI に設定します。
VM に複数のユーザーが割り当てられたマネージドID がある場合は、OAuthClientId も指定する必要があります。
TLS を有効化するには、Encrypt をTrue に設定します。
この設定により、Cloud はサーバーとのTLS ネゴシエーションを試みます。サーバー証明書は、デフォルトのシステム信頼済み証明書ストアで検証されます。SSLServerCert 接続プロパティを使用して、証明書の検証方法をオーバーライドできます。
別の証明書を指定するには、SSLServerCert 接続プロパティを参照してください。
SQL Server Cloud はクライアント証明書の設定もサポートしています。次を設定すれば、クライアント証明書を使って接続できます。
HTTP プロキシへの認証には、以下のように設定します。
次のプロパティを設定します。
SQL Server から直接データをモデリングするだけでなく、CData Cloud には、Azure がホストするSQL Server へのOAuth 接続を支援するために設計されたストアドプロシージャもいくつか組み込まれています。ストアドプロシージャはここにリストされています。
Cloud は、データソースの型を、スキーマで使用可能な対応するデータ型にマッピングします。以下のテーブルはこれらのマッピングを説明します。
| SQL Server | CData スキーマ |
| bigint | long |
| bigint identity | long |
| binary | binary |
| bit | bool |
| char | string |
| date | date |
| datetime | datetime |
| datetimeoffset | datetime |
| datetime2 | datetime |
| decimal | decimal |
| decimal identity | decimal |
| float | float |
| geography | binary |
| geometry | binary |
| hierarchyid | binary |
| image | binary |
| int | int |
| int identity | int |
| money | decimal |
| nchar | string |
| ntext | string |
| nvarchar | string |
| numeric | decimal |
| numeric identity | decimal |
| real | float |
| rowversion | binary |
| smalldatetime | datetime |
| smallint | short |
| smallint identity | short |
| smallmoney | decimal |
| sql_variant | binary |
| table | string |
| text | string |
| time | time |
| timestamp | binary |
| tinyint | byte |
| tinyint identity | byte |
| uniqueidentifier | string |
| varbinary | binary |
| varchar | string |
| xml | string |
ストアドプロシージャはファンクションライクなインターフェースで、SQL Server の単純なSELECT/INSERT/UPDATE/DELETE 処理にとどまらずCloud の機能を拡張します。
ストアドプロシージャは、パラメータのリストを受け取り、目的の機能を実行し、プロシージャが成功したか失敗したかを示すとともにSQL Server から関連するレスポンスデータを返します。
| Name | Description |
| プロパティ | 説明 |
| AuthScheme | SQL Server への接続を認証するために使用されるスキームを指定します。 |
| Server | 接続先のSQL Server インスタンスの名前またはネットワークアドレスを指定します。 |
| Port | SQL Server インスタンスへの接続に使用するネットワーク ポートを指定します。 |
| Database | 接続先のSQL Server データベース名を指定します。 |
| User | 認証するユーザーのユーザーID を指定します。 |
| Password | 認証するユーザーのパスワードを指定します。 |
| Domain | NTLM 認証に使用されるWindows ドメインを指定します。 |
| IntegratedSecurity | SQL Server 認証の代わりにWindows Integrated Security を使用するかどうかを指定します。 |
| NTLMVersion | Windows 認証に使用するNTLM プロトコルのバージョンを指定します。 |
| Encrypt | SQL Server への接続にTLS / SSL 暗号化を有効にするかどうかを指定します。 |
| プロパティ | 説明 |
| BatchMode | SQL Server にデータを挿入する際のバッチ操作の実行モードを指定します。 |
| プロパティ | 説明 |
| AzureTenant | データにアクセスするために使用されているSQL Server テナントを識別します。テナントのドメイン名(例: contoso.onmicrosoft.com )またはディレクトリ(テナント)ID のいずれかを受け付けます。 |
| AzureEnvironment | 接続するAzure ネットワーク環境を指定します。Azure アカウントが追加されたネットワークと同じである必要があります。 |
| プロパティ | 説明 |
| OAuthClientId | カスタムOAuth アプリケーションに割り当てられたクライアントID(コンシューマーキーとも呼ばれます)を指定します。このID は、認証時にOAuth 認可サーバーにアプリケーションを識別させるために必要です。 |
| OAuthClientSecret | カスタムOAuth アプリケーションに割り当てられたクライアントシークレットを指定します。この機密情報は、OAuth 認可サーバーに対してアプリケーションを認証するために使用されます。(カスタムOAuth アプリケーションのみ) |
| Scope | データへの適切なアクセスを確実にするために、認証ユーザーのアプリケーションへのアクセス範囲を指定します。 カスタムOAuth アプリケーションが必要な場合は、通常、アプリケーションの作成時に指定します。 |
| プロパティ | 説明 |
| OAuthJWTCert | クライアント証明書のJWT 証明書ストアの名前を指定します。 |
| OAuthJWTCertType | JWT 証明書を格納しているキーストアの種類を指定します。 |
| OAuthJWTCertPassword | パスワードで保護された証明書ストアにアクセスするために使用されるOAuth JWT 証明書のパスワードを指定します。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。 |
| OAuthJWTCertSubject | ストアで一致する証明書を検索するために使用される、OAuth JWT 証明書のサブジェクトを指定します。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。 |
| プロパティ | 説明 |
| SSLServerCert | TLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。 |
| プロパティ | 説明 |
| SSHAuthMode | サービスへのSSH トンネルを確立する際に使用される認証方法。 |
| SSHClientCert | SSHUser の認証に使用する証明書。 |
| SSHClientCertPassword | SSHClientCert キーのパスワード(ある場合)。 |
| SSHClientCertSubject | SSH クライアント証明書のサブジェクト。 |
| SSHClientCertType | SSHClientCert 秘密鍵の種類。 |
| SSHServer | SSH サーバー。 |
| SSHPort | SSH ポート。 |
| SSHUser | SSH ユーザー。 |
| SSHPassword | SSH パスワード。 |
| SSHServerFingerprint | SSH サーバーのフィンガープリント。 |
| UseSSH | SQL Server 接続をSSH 経由でトンネリングするかどうか。 SSH を使用します。 |
| プロパティ | 説明 |
| Verbosity | ログファイルのVerbosity レベルを指定し、記録される情報の詳細度を制御します。サポートされる値の範囲は1から5までです。 |
| プロパティ | 説明 |
| BrowsableSchemas | レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。 |
| プロパティ | 説明 |
| ApplicationIntent | アプリケーションが、可用性グループデータベースの読み取り専用バージョンまたは読み取り / 書き込みバージョンのどちらにアクセスするかを指定します。 |
| ApplicationName | クライアントアプリケーションがSQL Server に接続する際のアプリケーション名を指定します。 |
| IncludeSystemSchemas | スキーマの検出時に、guest、sys、INFORMATION_SCHEMA、およびdb_ で始まるスキーマなどのシステムスキーマを含めるかどうかを指定します。 |
| MaxRows | 集計やGROUP BY を含まないクエリで返される最大行数を指定します。 |
| Timeout | 操作がタイムアウトするまでにprovider が待機する秒数を指定します。 |
このセクションでは、本プロバイダーの接続文字列で設定可能なAuthentication プロパティの全リストを提供します。
| プロパティ | 説明 |
| AuthScheme | SQL Server への接続を認証するために使用されるスキームを指定します。 |
| Server | 接続先のSQL Server インスタンスの名前またはネットワークアドレスを指定します。 |
| Port | SQL Server インスタンスへの接続に使用するネットワーク ポートを指定します。 |
| Database | 接続先のSQL Server データベース名を指定します。 |
| User | 認証するユーザーのユーザーID を指定します。 |
| Password | 認証するユーザーのパスワードを指定します。 |
| Domain | NTLM 認証に使用されるWindows ドメインを指定します。 |
| IntegratedSecurity | SQL Server 認証の代わりにWindows Integrated Security を使用するかどうかを指定します。 |
| NTLMVersion | Windows 認証に使用するNTLM プロトコルのバージョンを指定します。 |
| Encrypt | SQL Server への接続にTLS / SSL 暗号化を有効にするかどうかを指定します。 |
SQL Server への接続を認証するために使用されるスキームを指定します。
string
"Password"
このプロパティは、ドライバーがSQL Server に対してどのように認証を行うかを決定します。AzureMSI などのID ベースの認証方式を使用する場合を除き、User およびPassword プロパティと組み合わせて使用する必要があります。
認証スキームは、どの資格情報またはトークンが必要とされるか、またそれらがサーバーによってどのように検証されるかを制御します。
以下の値がサポートされています:
AzureMSI やAzureServicePrincipalCert などの一部の認証スキームでは、追加プロパティ(OAuthClientId やOAuthClientSecret など)が必要になる場合があります。 詳細は各プロパティの説明を参照してください。
接続先のSQL Server インスタンスの名前またはネットワークアドレスを指定します。
string
""
このプロパティは、接続したいSQL Server の場所を識別します。 ホスト名、IP アドレス、または完全修飾ドメイン名(FQDN)を指定できます。名前付きインスタンスに接続する場合は、server\instance の形式を使用できます。例:sqlhost\sqlexpress
サーバーがクラウドまたはロードバランサーの背後でホストされている場合は、データベース管理者またはホスティングプロバイダーから提供された適切なアドレスまたはエンドポイントを使用してください。
ローカルインスタンスに接続する場合は、localhost、127.0.0.1、または .(ドット)を使用できます。 サーバー名が不明な場合は、SQL Server Management Studio の「サーバーへの接続」ダイアログで確認できます。
SQL Server インスタンスへの接続に使用するネットワーク ポートを指定します。
string
"1433"
このプロパティは、SQL Server インスタンスがリッスンしているTCP ポートを識別します。デフォルトのSQL Server ポートは1433であり、ほとんどの標準インストールで使用されます。
SQL Server がデフォルト以外のポート(たとえば、カスタム構成やクラウドホスト環境)を使用するように構成されている場合は、このプロパティに適切な値を設定する必要があります。 Port は、Server およびDatabase プロパティの設定と一致している必要があり、接続を正常に確立するために重要です。
Note:サーバーが動的ポートを使用するように構成されている場合は、正しいポート番号をデータベース管理者またはSQL Server 構成マネージャーから取得する必要があります。
接続先のSQL Server データベース名を指定します。
string
""
このプロパティは、Cloud が対象のサーバー上で接続すべき、特定のSQL Server データベースを定義します。 SQL Server インスタンスは複数のデータベースをホストできるため、意図したデータにアクセスするには正しいデータベースを指定する必要があります。
データベースは、Server プロパティで指定されたSQL Server インスタンス上に存在している必要があります。 このプロパティが設定されていない場合、接続は失敗するか、サーバーの設定や権限に応じてmaster などのシステムデータベースにデフォルトで接続される可能性があります。
このプロパティは、複数のデータベースが存在する環境で、適切なデータベースをターゲットにするために有用です。
接続文字列でmyDatabaseName を使用して、特定のデータベースに接続してください。
Note:指定されたデータベースにアクセスするために、指定されたユーザー資格情報が適切な権限を持っていることを確認してください。
NTLM 認証に使用されるWindows ドメインを指定します。
string
""
このプロパティは、NTLM(Windows)認証を使用してSQL Server に対して認証を行う場合に使用されます。ユーザーアカウントに関連付けられたドメイン名を指定します。
NTLM 認証では、ドメインは同じWindows セキュリティポリシーの下で管理されるコンピュータとユーザーアカウントの論理的なグループです。 このプロパティは、プロバイダーが正しいドメインコンテキストで資格情報を検証するのに役立ちます。
このプロパティは、Windows ドメイン資格情報が必要なSQL Server インスタンスに接続する際に有用です。
空白のままにした場合、Cloud はローカルマシンのドメインを使用して認証を試みることがあります。
Note: このプロパティは、AuthScheme がNTLM に設定されている場合にのみ適用されます。Password、Kerberos、AzureAD などの他の認証方式では使用されません。
SQL Server 認証の代わりにWindows Integrated Security を使用するかどうかを指定します。
bool
false
このプロパティがtrue に設定されている場合、Cloud は現在のWindows ユーザーID を使用してSQL Server に対して認証を行います。 これは一般的にWindows 認証と呼ばれ、ドメイン環境やSQL Server が統合ログイン用に設定されている場合によく使用されます。
false に設定されている場合、Cloud はSQL Server 認証を使用し、接続時には明示的なユーザー名とパスワードの指定が必要です。
このプロパティは、AuthScheme がNTLM に設定されている場合にのみ適用されます。
このプロパティは、SQL Server がドメインベースの認証用に構成されており、ユーザー資格情報がActive Directory によって管理されている企業環境やオンプレミス環境で有用です。
明示的な資格情報を渡すことを避け、実行中のアプリケーションのWindows アカウントコンテキストに依存したい場合は、このプロパティをtrue に設定してください。
Note:このプロパティを使用する場合は、SQL Server インスタンスが Windows 認証をサポートするように構成されていることを確認してください。
Windows 認証に使用するNTLM プロトコルのバージョンを指定します。
string
"1"
このプロパティは、AuthScheme がNTLM に設定されている場合に、NTLM(NT LAN Manager)プロトコルのどのバージョンを使用するかを決定します。 NTLM は、ドメインベースおよびWindows Integrated Security のシナリオで一般的に使用されるMicrosoft の認証プロトコルです。
受け入れ可能な値:
NTLMv2 は、より強力な暗号化とセキュリティ機能を提供します。ただし、一部のレガシーシステムではNTLMv1 のみがサポートされている場合があります。
このプロパティは、特定のセキュリティ要件や互換性制約がある環境に接続する際に有用です。
より安全な認証を有効にするには、NTLMVersion=2 を設定してください。ただし、NTLMv1 を明示的に必要とするシステムを使用している場合を除きます。
このプロパティは、AuthScheme がNTLM に設定されている場合にのみ適用されます。SQL Server およびネットワークインフラストラクチャが選択されたNTLM バージョンをサポートしていることを確認してください。
SQL Server への接続にTLS / SSL 暗号化を有効にするかどうかを指定します。
string
"True"
このプロパティは、SQL Server との接続を確立する際に、プロバイダーがTLS / SSL 暗号化を使用するかどうかを制御します。暗号化は転送中のデータを保護し、コンプライアンスやセキュリティ要件の達成に役立ちます。
受け入れ可能な値:
暗号化が有効で、カスタムの信頼済み証明書を指定する必要がある場合は、SSLServerCert プロパティを使用してください。
このプロパティは、クライアントとSQL Server 間のデータベース通信を保護するのに有用です。
このセクションでは、本プロバイダーの接続文字列で設定可能なBulk プロパティの全リストを提供します。
| プロパティ | 説明 |
| BatchMode | SQL Server にデータを挿入する際のバッチ操作の実行モードを指定します。 |
SQL Server にデータを挿入する際のバッチ操作の実行モードを指定します。
string
"STANDARD"
このプロパティは、SQL Server に対してバルク挿入を行う際に、Cloud がどのように処理を行うかを制御します。
以下の2つのモードがサポートされています。
BCP モードはデータの挿入に限定されており、更新や削除はサポートされません。さらに、一部の環境では、BCP が必要とする低レベル通信を制限するファイアウォールやネットワークルールが存在する場合があります。
このプロパティは、バルクデータ操作のパフォーマンスと動作を制御するのに役立ちます。パフォーマンスが重要で挿入操作のみが必要な場合は、BCP を使用してください。 更新や削除を含むより広範なSQL サポートが必要な場合は、STANDARD を使用してください。
BCP モードを使用するには、TCP レベルでのバルク転送を許可するようにサーバー構成を追加で行う必要がある場合があります。このモードを選択する場合は、ファイアウォール設定やSQL Server の権限がBCP アクセスをサポートしていることを確認してください。
このセクションでは、本プロバイダーの接続文字列で設定可能なAzure Authentication プロパティの全リストを提供します。
| プロパティ | 説明 |
| AzureTenant | データにアクセスするために使用されているSQL Server テナントを識別します。テナントのドメイン名(例: contoso.onmicrosoft.com )またはディレクトリ(テナント)ID のいずれかを受け付けます。 |
| AzureEnvironment | 接続するAzure ネットワーク環境を指定します。Azure アカウントが追加されたネットワークと同じである必要があります。 |
データにアクセスするために使用されているSQL Server テナントを識別します。テナントのドメイン名(例: contoso.onmicrosoft.com )またはディレクトリ(テナント)ID のいずれかを受け付けます。
string
""
テナントとは、Microsoft Entra ID(旧称:Azure AD)を通じて管理される、組織のユーザーやリソースのためのデジタルコンテナです。 各テナントには一意のディレクトリID が関連付けられており、多くの場合、カスタムドメイン(例:microsoft.com やcontoso.onmicrosoft.com)も関連付けられています。
Microsoft Entra 管理センターでディレクトリ(テナント)ID を確認するには、Microsoft Entra ID -> プロパティに移動し、「ディレクトリ(テナント)ID」と表示されている値をコピーします。
このプロパティは以下の場合に必要です。
テナントの値は、2つの形式のいずれかで指定できます。
テナントを明示的に指定することで、認証リクエストが正しいディレクトリにルーティングされるようになります。これは、ユーザーが複数のテナントに所属している場合や、サービスプリンシパルベースの認証を使用する場合に特に重要です。
この値が必要な場面で省略されると、認証に失敗したり、誤ったテナントに接続されたりする可能性があります。その結果、認可されていないまたはリソースが見つからないといったエラーが発生する可能性があります。
接続するAzure ネットワーク環境を指定します。Azure アカウントが追加されたネットワークと同じである必要があります。
string
"GLOBAL"
Azure アカウントがGlobal ネットワークとは異なるネットワーク(China、USGOVT、USGOVTDOD など)の一部である場合は、必要です。
このセクションでは、本プロバイダーの接続文字列で設定可能なOAuth プロパティの全リストを提供します。
| プロパティ | 説明 |
| OAuthClientId | カスタムOAuth アプリケーションに割り当てられたクライアントID(コンシューマーキーとも呼ばれます)を指定します。このID は、認証時にOAuth 認可サーバーにアプリケーションを識別させるために必要です。 |
| OAuthClientSecret | カスタムOAuth アプリケーションに割り当てられたクライアントシークレットを指定します。この機密情報は、OAuth 認可サーバーに対してアプリケーションを認証するために使用されます。(カスタムOAuth アプリケーションのみ) |
| Scope | データへの適切なアクセスを確実にするために、認証ユーザーのアプリケーションへのアクセス範囲を指定します。 カスタムOAuth アプリケーションが必要な場合は、通常、アプリケーションの作成時に指定します。 |
カスタムOAuth アプリケーションに割り当てられたクライアントID(コンシューマーキーとも呼ばれます)を指定します。このID は、認証時にOAuth 認可サーバーにアプリケーションを識別させるために必要です。
string
""
このプロパティは2つのケースで必要となります:
(ドライバーが埋め込みOAuth 資格情報を提供する場合、この値はすでにCloud によって設定されており、手動で入力する必要がないことがあります。)
OAuthClientId は、認証付きの接続を構成する際に、OAuthClientSecret やOAuthSettingsLocation などの他のOAuth 関連プロパティと一緒に使用されるのが一般的です。
OAuthClientId は、ユーザーがOAuth 経由で認証を行う前に設定する必要がある、主要な接続パラメータの1つです。 この値は、通常、ID プロバイダーのアプリケーション登録設定で確認できます。 Client ID、Application ID、Consumer Key などとラベル付けされた項目を探してください。
クライアントID は、クライアントシークレットのような機密情報とは見なされませんが、アプリケーションの識別情報の一部であるため、慎重に取り扱う必要があります。公開リポジトリや共有設定ファイルでこの値を露出させないようにしてください。
接続設定時にこのプロパティを使用する方法の詳細については、接続の確立 を参照してください。
カスタムOAuth アプリケーションに割り当てられたクライアントシークレットを指定します。この機密情報は、OAuth 認可サーバーに対してアプリケーションを認証するために使用されます。(カスタムOAuth アプリケーションのみ)
string
""
このプロパティ(アプリケーションシークレットまたはコンシューマシークレットとも呼ばれます)は、安全なクライアント認証を必要とするすべてのフローでカスタムOAuth アプリケーションを使用する場合に必要です。たとえば、Web ベースのOAuth、サービスベースの接続、証明書ベースの認可フローなどが該当します。 組み込みOAuth アプリケーションを使用する場合は必要ありません。
クライアントシークレットは、OAuth フローのトークン交換ステップで使用されます。このステップでは、ドライバーが認可サーバーにアクセストークンを要求します。 この値が欠落しているか正しくない場合、認証はinvalid_client またはunauthorized_client エラーで失敗します。
OAuthClientSecret は、ユーザーがOAuth 経由で認証を行う前に設定する必要がある、主要な接続パラメータの1つです。この値は、OAuth アプリケーションを登録する際にID プロバイダーから取得できます。
Notes:
接続設定時にこのプロパティを使用する方法の詳細については、接続の確立 を参照してください。
データへの適切なアクセスを確実にするために、認証ユーザーのアプリケーションへのアクセス範囲を指定します。 カスタムOAuth アプリケーションが必要な場合は、通常、アプリケーションの作成時に指定します。
string
""
スコープは、認証ユーザーがどのようなアクセス権を持つかを定義するために設定されます。例えば、読み取り、読み取りと書き込み、機密情報への制限付きアクセスなどです。システム管理者は、スコープを使用して機能またはセキュリティクリアランスによるアクセスを選択的に有効化できます。
InitiateOAuth がGETANDREFRESH に設定されている場合、要求するスコープを変更したい場合はこのプロパティを使用する必要があります。
InitiateOAuth がREFRESH またはOFF のいずれかに設定されている場合、このプロパティまたはScope 入力を使用して、要求するスコープを変更できます。
このセクションでは、本プロバイダーの接続文字列で設定可能なJWT OAuth プロパティの全リストを提供します。
| プロパティ | 説明 |
| OAuthJWTCert | クライアント証明書のJWT 証明書ストアの名前を指定します。 |
| OAuthJWTCertType | JWT 証明書を格納しているキーストアの種類を指定します。 |
| OAuthJWTCertPassword | パスワードで保護された証明書ストアにアクセスするために使用されるOAuth JWT 証明書のパスワードを指定します。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。 |
| OAuthJWTCertSubject | ストアで一致する証明書を検索するために使用される、OAuth JWT 証明書のサブジェクトを指定します。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。 |
クライアント証明書のJWT 証明書ストアの名前を指定します。
string
""
OAuthJWTCertType フィールドは、OAuthJWTCert により指定された証明書ストアの種類を指定します。 ストアがパスワードで保護されている場合は、OAuthJWTCertPassword を使用してパスワードを指定します。
OAuthJWTCert は、OAuthJWTCertSubject フィールドとともにクライアント証明書を指定するために使われます。 OAuthJWTCert に値が設定され、かつOAuthJWTCertSubject が設定されている場合、CData Cloud は証明書の検索を開始します。 詳しくは、OAuthJWTCertSubject を参照してください。
証明書ストアの指定はプラットフォームに依存します。
注記
JWT 証明書を格納しているキーストアの種類を指定します。
string
"PEMKEY_BLOB"
| 値 | 説明 | 注記 |
| USER | 現在のユーザーが所有する証明書ストア。 | Windows のみ使用可能です。 |
| MACHINE | マシンストア。 | Java やその他の非Windows 環境では使用できません。 |
| PFXFILE | 証明書を含むPFX(PKCS12)ファイル。 | |
| PFXBLOB | PFX(PKCS12)形式の証明書ストアをbase-64 でエンコードした文字列。 | |
| JKSFILE | 証明書を含むJava キーストア(JKS)ファイル。 | Java 専用。 |
| JKSBLOB | Java キーストア(JKS)形式の証明書ストアをbase-64 でエンコードした文字列。 | Java 専用。 |
| PEMKEY_FILE | 秘密鍵とオプションの証明書を含むPEM でエンコードされたファイル。 | |
| PEMKEY_BLOB | 秘密鍵とオプションの証明書をbase-64 でエンコードした文字列。 | |
| PUBLIC_KEY_FILE | PEM またはDER でエンコードされた公開鍵証明書を含むファイル。 | |
| PUBLIC_KEY_BLOB | PEM またはDER でエンコードされた公開鍵証明書をbase-64 でエンコードした文字列。 | |
| SSHPUBLIC_KEY_FILE | SSH 形式の公開鍵を含むファイル。 | |
| SSHPUBLIC_KEY_BLOB | SSH 形式の公開鍵ををbase-64 でエンコードした文字列。 | |
| P7BFILE | 証明書を含むPKCS7 ファイル。 | |
| PPKFILE | PuTTY 秘密キー(PPK)を含むファイル。 | |
| XMLFILE | XML 形式の証明書を含むファイル。 | |
| XMLBLOB | XML 形式の証明書を含む文字列。 | |
| BCFKSFILE | Bouncy Castle キーストアを含むファイル。 | |
| BCFKSBLOB | Bouncy Castle キーストアを含む文字列(base-64エンコード)。 |
パスワードで保護された証明書ストアにアクセスするために使用されるOAuth JWT 証明書のパスワードを指定します。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。
string
""
このプロパティは、パスワードで保護された証明書ストアを開くために必要なパスワードを指定します。 パスワードが必要かどうかを判断するには、ご利用の証明書ストアのドキュメントまたは設定を参照してください。
ストアで一致する証明書を検索するために使用される、OAuth JWT 証明書のサブジェクトを指定します。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。
string
"*"
このプロパティの値は、ストアで一致する証明書を検索するために使用されます。検索プロセスは以下のように動作します。
値を '*' に設定すると、ストアの先頭の証明書が自動的に選択されます。 証明書のサブジェクトは識別名フィールドおよび値のカンマ区切りのリストです。 例:CN=www.server.com, OU=test, C=US, [email protected]。
一般的なフィールドには以下のものが含まれます。
| フィールド | 説明 |
| CN | 共通名。一般的には、www.server.com のようなホスト名です。 |
| O | 法人名 |
| OU | 法人の部署名 |
| L | 法人の住所(市町村名) |
| S | 法人の住所(都道府県) |
| C | 国名 |
| E | E メールアドレス |
フィールド値にカンマが含まれる場合は、引用符で囲んでください。例:"O=ACME, Inc."。
このセクションでは、本プロバイダーの接続文字列で設定可能なSSL プロパティの全リストを提供します。
| プロパティ | 説明 |
| SSLServerCert | TLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。 |
TLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。
string
""
TLS/SSL 接続を使用している場合は、このプロパティを使用して、サーバーが受け入れるTLS/SSL 証明書を指定できます。このプロパティに値を指定すると、マシンによって信頼されていない他の証明書はすべて拒否されます。
このプロパティは、次のフォームを取ります:
| 説明 | 例 |
| フルPEM 証明書(例では省略されています) | -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE----- |
| 証明書を保有するローカルファイルへのパス。 | C:\cert.cer |
| 公開鍵(例では省略されています) | -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY----- |
| MD5 Thumbprint(hex 値はスペースまたはコロン区切り) | ecadbdda5a1529c58a1e9e09828d70e4 |
| SHA1 Thumbprint(hex 値はスペースまたはコロン区切り) | 34a929226ae0819f2ec14b4a3d904f801cbb150d |
Note:'*' を使用してすべての証明書を受け入れるように指定することも可能ですが、セキュリティ上の懸念があるため推奨されません。
このセクションでは、本プロバイダーの接続文字列で設定可能なSSH プロパティの全リストを提供します。
| プロパティ | 説明 |
| SSHAuthMode | サービスへのSSH トンネルを確立する際に使用される認証方法。 |
| SSHClientCert | SSHUser の認証に使用する証明書。 |
| SSHClientCertPassword | SSHClientCert キーのパスワード(ある場合)。 |
| SSHClientCertSubject | SSH クライアント証明書のサブジェクト。 |
| SSHClientCertType | SSHClientCert 秘密鍵の種類。 |
| SSHServer | SSH サーバー。 |
| SSHPort | SSH ポート。 |
| SSHUser | SSH ユーザー。 |
| SSHPassword | SSH パスワード。 |
| SSHServerFingerprint | SSH サーバーのフィンガープリント。 |
| UseSSH | SQL Server 接続をSSH 経由でトンネリングするかどうか。 SSH を使用します。 |
サービスへのSSH トンネルを確立する際に使用される認証方法。
string
"Password"
SSHUser の認証に使用する証明書。
string
""
公開鍵認証を使用するには、SSHClientCert に有効な秘密鍵が含まれている必要があります。 公開鍵はオプションで、含まれていない場合はCloud が秘密鍵から生成します。 Cloud は公開鍵をサーバーに送信し、ユーザーが公開鍵を認証した場合に接続が許可されます。
SSHClientCertType フィールドは、SSHClientCert により指定されたキーストアの種類を指定します。 ストアがパスワードで保護されている場合は、SSHClientCertPassword でパスワードを指定します。
一部の種類のキーストアは、複数のキーを含むことができるコンテナです。 デフォルトでは、Cloud はストアの最初のキーを選択しますが、SSHClientCertSubject を使用して特定のキーを指定することも可能です。
SSHClientCert キーのパスワード(ある場合)。
string
""
このプロパティは、証明書ベースの認証を使用する場合のSSH トンネリングに必要です。 SSH 証明書がパスワードで保護されたキーストアにある場合、証明書にアクセスするためにこのプロパティを使用してパスワードを指定します。
SSH クライアント証明書のサブジェクト。
string
"*"
証明書のサブジェクトは、証明書をロードするときにストア内の証明書を検索するために使用されます。
完全に一致するものが見つからない場合、ストアはプロパティの値を含むサブジェクトを検索します。
それでも一致するものが見つからない場合、プロパティは空白で設定され、証明書は選択されません。
"*" に設定すると、証明書ストアの1番目の証明書が選択されます。
証明書のサブジェクトは識別の名前フィールドおよび値のカンマ区切りのリストです。 例えば、"CN=www.server.com, OU=test, C=US, [email protected]"。共通のフィールドとその説明は以下のとおりです。
| フィールド | 説明 |
| CN | 共通名。一般的には、www.server.com のようなホスト名です。 |
| O | 法人名 |
| OU | 法人の部署名 |
| L | 法人の住所(市町村名) |
| S | 法人の住所(都道府県) |
| C | 国名 |
| E | Eメールアドレス |
フィールド値にカンマが含まれている場合は、それを引用符で囲む必要があります。
SSHClientCert 秘密鍵の種類。
string
"PEMKEY_BLOB"
このプロパティには次の値の1つを設定できます。
| 種類 | 説明 | 許容されるBlob 値 |
| MACHINE/USER | Blob 値はサポートされていません。 | |
| JKSFILE/JKSBLOB | base64のみ | |
| PFXFILE/PFXBLOB | PKCS12形式(.pfx)のファイル。証明書と秘密鍵の両方を含む必要があります。 | base64のみ |
| PEMKEY_FILE/PEMKEY_BLOB | PEM 形式のファイル。RSA、DSA、またはOPENSSH の秘密鍵を含む必要があります。オプションで、秘密鍵と一致する証明書を含むことができます。 | base64またはプレーンテキスト。 |
| PPKFILE/PPKBLOB | puttygen ツールで作成されたPuTTY 形式の秘密鍵。 | base64のみ |
| XMLFILE/XMLBLOB | .NET のRSA クラスによって生成される形式のXML キー:RSA.ToXmlString(true)。 | base64またはプレーンテキスト。 |
SSH サーバー。
string
""
SSH サーバー。
SSH ポート。
string
"22"
SSH ポート。
SSH ユーザー。
string
""
SSH ユーザー。
SSH パスワード。
string
""
SSH パスワード。
SSH サーバーのフィンガープリント。
string
""
SSH サーバーのフィンガープリント。
SQL Server 接続をSSH 経由でトンネリングするかどうか。 SSH を使用します。
bool
false
デフォルトでは、Cloud はSQL Server に直接接続しようとします。 このオプションを有効にすると、Cloud は代わりにSSHServer とのSSH 接続を確立し、その接続を経由してSQL Server への接続をトンネリングします。
このセクションでは、本プロバイダーの接続文字列で設定可能なLogging プロパティの全リストを提供します。
| プロパティ | 説明 |
| Verbosity | ログファイルのVerbosity レベルを指定し、記録される情報の詳細度を制御します。サポートされる値の範囲は1から5までです。 |
ログファイルのVerbosity レベルを指定し、記録される情報の詳細度を制御します。サポートされる値の範囲は1から5までです。
string
"1"
このプロパティは、Cloud がログファイルに含める詳細レベルを定義します。 Verbosity レベルを高くするとログに記録される情報の詳細が増えますが、ログファイルが大きくなり取り込まれるデータが増えるためパフォーマンスが低下する可能性があります。
デフォルトのVerbosity レベルは1で、通常の運用にはこれが推奨されます。 より高いVerbosity レベルは主にデバッグを目的としています。 各レベルの詳細については、ログ を参照してください。
LogModules プロパティと組み合わせることで、Verbosity は特定の情報カテゴリに対するログの詳細度を調整できます。
このセクションでは、本プロバイダーの接続文字列で設定可能なSchema プロパティの全リストを提供します。
| プロパティ | 説明 |
| BrowsableSchemas | レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。 |
レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
string
""
利用可能なデータベーススキーマをすべてリストすると余分な時間がかかり、パフォーマンスが低下します。 接続文字列にスキーマのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。
このセクションでは、本プロバイダーの接続文字列で設定可能なMiscellaneous プロパティの全リストを提供します。
| プロパティ | 説明 |
| ApplicationIntent | アプリケーションが、可用性グループデータベースの読み取り専用バージョンまたは読み取り / 書き込みバージョンのどちらにアクセスするかを指定します。 |
| ApplicationName | クライアントアプリケーションがSQL Server に接続する際のアプリケーション名を指定します。 |
| IncludeSystemSchemas | スキーマの検出時に、guest、sys、INFORMATION_SCHEMA、およびdb_ で始まるスキーマなどのシステムスキーマを含めるかどうかを指定します。 |
| MaxRows | 集計やGROUP BY を含まないクエリで返される最大行数を指定します。 |
| Timeout | 操作がタイムアウトするまでにprovider が待機する秒数を指定します。 |
アプリケーションが、可用性グループデータベースの読み取り専用バージョンまたは読み取り / 書き込みバージョンのどちらにアクセスするかを指定します。
string
"ReadWrite"
このプロパティは、可用性グループを使用する高可用性SQL Server 環境で使用されます。可用性グループは、異なるサーバー間でデータベースの複数のコピーを維持する機能です。
可用性グループでは:
ApplicationIntent をReadOnly に設定すると、SQL Server リスナーは、利用可能な場合に読み取り専用のセカンダリレプリカに接続をルーティングすることがあります。 これにより、データの更新を必要としないクエリをセカンダリで処理することで、プライマリサーバーの負荷を軽減できます。このプロパティがReadWrite に設定されている場合、接続はプライマリレプリカにルーティングされます。
このプロパティは、読み取りトラフィックが多い環境で、パフォーマンスとスケーラビリティを向上させるのに役立ちます。特に、読み取り専用レプリカが構成されている可用性グループで有効です。
可用性グループが読み取り専用ルーティングに対応していない場合、このプロパティをReadOnly に設定すると接続が失敗する可能性があります。 必ずデータベース管理者またはデプロイ構成を確認してください。
クライアントアプリケーションがSQL Server に接続する際のアプリケーション名を指定します。
string
""
このプロパティは、接続メタデータの一部としてサーバーに送信されるアプリケーション名を設定します。 SQL Server では、この値は通常、監視ツールやログ記録ツールで確認でき、特定のアプリケーション接続を識別、監査、またはトラブルシューティングするのに役立ちます。
この値は接続に必須ではありませんが、複数のアプリケーションやサービスが同じデータベースにアクセスする場合には、一意のアプリケーション名を設定することが推奨されます。
このプロパティは、SQL Server 管理者が受信接続を監視または分析する環境で有用です。アプリケーションごとの識別に役立ちます。
この値は、HTTP ベースの通信が関与する場合(たとえば、Web プロキシやゲートウェイがヘッダーを検査する場合)には、User-Agent としても使用されます。
スキーマの検出時に、guest、sys、INFORMATION_SCHEMA、およびdb_ で始まるスキーマなどのシステムスキーマを含めるかどうかを指定します。
bool
true
このプロパティを有効にすると、Cloud は、ユーザー定義スキーマとともにシステム定義スキーマもクエリおよび公開するようになります。 システムスキーマには通常、メタデータ、組み込みビュー、および内部データベースオブジェクトが含まれます。
以下のスキーマが対象です。
このプロパティを無効にすると、ほとんどのデータアクセスシナリオでは関係のない内部構造を省略して、スキーマビューを簡略化できます。
このプロパティは、ユーザーがアプリケーションデータのみを扱う必要がある環境で、内部SQL Server オブジェクトの可視性を制御するのに便利です。 メタデータの検出を簡素化したり、データエクスプローラーやスキーマブラウザなどのツールで表示される内容を制限したい場合は、このプロパティをfalse に設定してください。
集計やGROUP BY を含まないクエリで返される最大行数を指定します。
int
-1
このプロパティのデフォルト値である-1 は、クエリに明示的にLIMIT 句が含まれていない限り、行の制限が適用されないことを意味します。 (クエリにLIMIT 句が含まれている場合、クエリで指定された値がMaxRows 設定よりも優先されます。)
MaxRows を0より大きい整数に設定することで、クエリがデフォルトで過度に大きな結果セットを返さないようにします。
このプロパティは、非常に大きなデータセットを返す可能性のあるクエリを実行する際に、パフォーマンスを最適化し、過剰なリソース消費を防ぐのに役立ちます。
操作がタイムアウトするまでにprovider が待機する秒数を指定します。
int
30
このプロパティは、コマンドが完了するのをCloud が待機する最大時間(秒単位)を定義します。指定された時間を超えると、タイムアウトエラーが発生します。
Timeout を0に設定すると、操作はタイムアウトしません。成功するか、別のエラーで失敗するまで実行され続けます。
Timeout を正の整数に設定すると、Cloud は指定された時間を超えた場合に操作をキャンセルし、エラーが発生します。
タイムアウトは、クエリの実行、接続の確立、データストリームの読み取りなど、さまざまな操作に適用されます。
このプロパティは、長時間実行される操作を制御したり、予測可能な動作を必要とするアプリケーションで安全な実行時間の上限を設定したりするのに役立ちます。
Note: タイムアウトの動作は、クエリやストアドプロシージャなどのコマンドの種類やネットワーク状況によって異なる場合があります。 この値を設定する際は、データベース操作の通常の応答時間を考慮してください。
LZMA from 7Zip LZMA SDK
LZMA SDK is placed in the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original LZMA SDK code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
LZMA2 from XZ SDK
Version 1.9 and older are in the public domain.
Xamarin.Forms
Xamarin SDK
The MIT License (MIT)
Copyright (c) .NET Foundation Contributors
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
NSIS 3.10
Copyright (C) 1999-2025 Contributors THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
1. DEFINITIONS
"Contribution" means:
a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and b) in the case of each subsequent Contributor:
i) changes to the Program, and
ii) additions to the Program;
where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
"Contributor" means any person or entity that distributes the Program.
"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
"Program" means the Contributions distributed in accordance with this Agreement.
"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.
2. GRANT OF RIGHTS
a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
3. REQUIREMENTS
A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:
a) it complies with the terms and conditions of this Agreement; and
b) its license agreement:
i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;
ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;
iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and
iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.
When the Program is made available in source code form:
a) it must be made available under this Agreement; and
b) a copy of this Agreement must be included with each copy of the Program.
Contributors may not remove or alter any copyright notices contained within the Program.
Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.
4. COMMERCIAL DISTRIBUTION
Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.
For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.
5. NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.
6. DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. GENERAL
If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.
Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.
This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.