Azure SQL Database と Azure SQL Managed Instance の接続とクエリに関する記事
適用対象: Azure SQL Database
Azure SQL Managed Instance
次のドキュメントには、Azure SQL Database と Azure SQL Managed Instance に接続してクエリを実行する方法を示す Azure の例へのリンクが含まれています。 トランスポート層セキュリティのいくつかの関連する推奨事項については、「データベース接続に関する TLS の考慮事項」を参照してください。
接続とクエリの簡単な概要については、「Azure SQL データベース Essentials シリーズ」のこちらのビデオをご覧ください:
クイックスタート
クイック スタート | 説明 |
---|---|
SQL Server Management Studio | このクイック スタートでは、SSMS を使用してデータベースに接続し、Transact-SQL ステートメントを使用してデータベース内のデータに対してクエリ、挿入、更新、削除を実行する方法について説明します。 |
Azure Data Studio | このクイックスタートでは、Azure Data Studio を使用してデータベースに接続した後、Transact-SQL (T-SQL) ステートメントを使用して、Azure Data Studio チュートリアルで使用される TutorialDB を作成する方法を示します。 |
Azure Portal | このクイックスタートでは、クエリ エディターを使用してデータベース (Azure SQL Database のみ) に接続し、Transact-SQL ステートメントを使用してデータベース内のデータに対してクエリ、挿入、更新、削除を実行する方法について説明します。 |
Visual Studio Code | このクイック スタートでは、Visual Studio Code を使ってデータベースに接続し、Transact-SQL ステートメントを使ってデータベース内のデータに対してクエリ、挿入、更新、削除を実行する方法について説明します。 |
Visual Studio での .NET | このクイックスタートでは、Visual Studio で .NET Framework を使って C# プログラムを作成してデータベースに接続し、Transact-SQL ステートメントを使用してデータに対してクエリを実行する方法について説明します。 |
.NET core | このクイック スタートでは、Windows/Linux/macOS で .NET Core を使って C# プログラムを作成してデータベースに接続し、Transact-SQL ステートメントを使用してデータに対してクエリを実行する方法について説明します。 |
Go | このクイック スタートでは、Go を使用してデータベースに接続する方法を紹介します。 Transact-SQL ステートメントを使用してデータを照会および変更する方法についても説明します。 |
Java | このクイック スタートでは、Java を使ってデータベースに接続した後、Transact-SQL ステートメントを使ってデータに対してクエリを実行する方法について説明します。 |
Node.js | このクイック スタートでは、Node.js を使ってプログラムを作成してデータベースに接続し、Transact-SQL ステートメントを使ってデータに対してクエリを実行する方法について説明します。 |
PHP | このクイック スタートでは、PHP を使ってプログラムを作成してデータベースに接続し、Transact-SQL ステートメントを使ってデータに対してクエリを実行する方法について説明します。 |
Python | このクイック スタートでは、Python を使ってデータベースに接続し、Transact-SQL ステートメントを使ってデータに対してクエリを実行する方法について説明します。 |
Ruby | このクイック スタートでは、Ruby を使ってプログラムを作成してデータベースに接続し、Transact-SQL ステートメントを使ってデータに対してクエリを実行する方法について説明します。 |
サーバーの接続情報を取得する
Azure SQL Database のデータベースに接続するために必要な接続情報を取得します。 後の手順で、完全修飾サーバー名またはホスト名、データベース名、およびログイン情報が必要になります。
Azure portal にサインインします。
[SQL Database] または [SQL Managed Instance] ページに移動します。
[概要] ページで、Azure SQL Database のデータベースの場合は [サーバー名] の横の完全修飾サーバー名を確認し、Azure SQL マネージド インスタンスまたは Azure VM 上の SQL Server の場合は [ホスト] の横の完全修飾サーバー名 (または IP アドレス) を確認します。 サーバー名またはホスト名をコピーするには、名前をポイントして [コピー] アイコンを選択します。
Note
Azure VM 上の SQL Server の接続情報については、SQL Server インスタンスへの接続に関するページをご覧ください。
ADO.NET の接続情報を取得する (省略可能 - SQL Database のみ)
Azure Portal のデータベースウィンドウに移動し、[設定]の[接続文字列]を選択します。
完全な ADO.NET 接続文字列を確認します。
使用する場合は、ADO.NET の接続文字列をコピーします。
データベース接続に関する TLS の考慮事項
トランスポート層セキュリティ (TLS) は、Azure SQL Database または Azure SQL Managed Instance 内のデータベースへの接続のために Microsoft で提供またはサポートされているすべてのドライバーで使用されています。 特別な構成は必要ありません。 SQL Server インスタンス、Azure SQL Database 内のデータベース、または Azure SQL Managed Instance のインスタンスへのすべての接続について、すべてのアプリケーションで次の構成またはそれと同等の構成を設定することをお勧めします。
- Encrypt = On
- TrustServerCertificate = Off
一部のシステムでは、これらの構成キーワードとは異なりますが同等のキーワードが使われています。 これらの構成を指定すると、サーバーから受信した TLS 証明書の ID をクライアント ドライバーが確認することが保証されます。
また、Payment Card Industry - データ セキュリティ基準 (PCI-DSS) に準拠する必要がある場合は、クライアントにおいて TLS 1.1 および 1.0 を無効にすることをお勧めします。
Microsoft 以外のドライバーは、既定では TLS を使用しない場合があります。 これは Azure SQL Database または Azure SQL Managed Instance に接続するときに問題になる可能性があります。 埋め込みドライバーを使用するアプリケーションでは、これらの接続設定を制御できない場合があります。 このようなドライバーおよびアプリケーションについては、機密データを操作するシステムで使う前に、そのセキュリティを調べることをお勧めします。
ライブラリ
さまざまなライブラリとフレームワークを使用して、Azure SQL Database または Azure SQL Managed Instance に接続できます。 Linux または Windows 上の SQL Server、または Linux 上の SQL Server コンテナーを使用してアプリを構築します。
次の表は、クライアント アプリケーションがさまざまな言語から SQL Server への接続に使用できる接続ライブラリやドライバーを示しています。クライアント アプリケーションはオンプレミスおよびクラウドで実行される SQL Server と共にこれらを使用できます。 Linux、Windows、またはコンテナーでそれらを使って、Azure SQL Database、Azure SQL Managed Instance、Azure Synapse Analytics に接続できます。
言語 | プラットフォーム | その他のリソース | ダウンロード | はじめに |
---|---|---|---|---|
C# | Windows、Linux、macOS | Microsoft ADO.NET for SQL Server | ダウンロード | |
C++ | Windows、Linux、macOS | Microsoft ODBC Driver for SQL Server | ダウンロード | |
Go | Windows、Linux、macOS | Microsoft SQL Server 用 Go ドライバー | インストール | 開始するには |
Java | Windows、Linux、macOS | SQL Server 用 Microsoft JDBC ドライバー | ダウンロード | |
Node.js | Windows、Linux、macOS | SQL Server 用 Node.js ドライバー | インストール | |
PHP | Windows、Linux、macOS | SQL Server 用 PHP SQL ドライバー | ダウンロード | |
Python | Windows、Linux、macOS | Python SQL ドライバー | インストール オプション: * pymssql * pyodbc |
|
Ruby | Windows、Linux、macOS | SQL Server 用 Ruby ドライバー | インストール |
データ アクセス フレームワーク
次の表に、クライアント アプリケーションが SQL Server、Azure SQL Database、Azure SQL Managed Instance、または Azure Synapse Analytics で使用できるオブジェクト リレーショナル マッピング (ORM) フレームワークと Web フレームワークの例を示します。 フレームワークは、Linux、Windows、またはコンテナーで使用できます。
言語 | プラットフォーム | ORM |
---|---|---|
C# | Windows、Linux、macOS | Entity Framework Entity Framework Core |
Go | Windows、Linux、macOS | GORM |
Java | Windows、Linux、macOS | Hibernate ORM |
Node.js | Windows、Linux、macOS | Sequelize ORM |
PHP | Windows、Linux、macOS | Laravel (Eloquent) Doctrine |
Python | Windows、Linux、macOS | Django |
Ruby | Windows、Linux、macOS | Ruby on Rails |
次のステップ
- 接続アーキテクチャについては、「Azure SQL Database 接続アーキテクチャ」をご覧ください。
- クライアント アプリケーションからの接続に使用する SQL Server 用ドライバーを探します
- Azure SQL データベースまたは Azure SQL Managed Instance に接続します:
- .NET (C#) を使用した接続とクエリ
- Go を使用した接続とクエリ
- Java を使用した接続とクエリ
- Node.js を使用した接続とクエリ
- PHP を使用した接続とクエリ
- Python を使用した接続とクエリ
- Ruby を使用した接続とクエリ
- Linux に SQL Server コマンドライン ツール sqlcmd および bcp をインストールする - Linux ユーザーの場合、sqlcmd を使用して Azure SQL Database または Azure SQL Managed Instance に接続してみてください。
- 再試行ロジックのコード例: