Azure SQL Database에 연결하는 방법: 포괄적인 가이드

Azure SQL Database는 개발자와 관리자가 SQL 서버를 설치하거나 장애 조치 클러스터를 설정하는 지루한 작업을 수행할 필요가 없도록 구축된 관리형 SQL 데이터베이스 서비스입니다.

Microsoft Azure는 데이터베이스 계층 설정에서 힘든 작업을 빼앗아, 연결만 하면 되도록 만들었습니다. 이 문서에서는 Azure SQL 데이터베이스에 연결하는 여러 가지 다른 방법을 다룰 것입니다.

사전 준비 사항

Azure SQL 데이터베이스에 연결하려면 몇 가지 사전 준비 사항을 충족해야 합니다.

  1. Azure 계정 또는 해당 계정에 액세스할 수 있는 권한
  2. Azure SQL 데이터베이스 (사용자 고유의 데이터베이스를 사용할 수도 있지만, 이 문서에서는 샘플을 사용합니다.
  3. A Windows 10, Mac OS, or Linux laptop or desktop with PowerShell, Visual Studio Code and SQL Server Management Studio installed. The screenshots are all from Windows 10.

Azure SQL에 연결하는 데는 수십 가지 다른 방법이 있지만, 모두 다룰 수 없으므로 이 문서에서는 다음을 다룰 것입니다:

  • Azure Portal
  • SQL Server Management Studio
  • Visual Studio Code
  • PowerShell

Azure SQL 데이터베이스 구성

시작하기 전에 사용 가능한 데이터베이스가 있는지 확인하고 연결할 수 있는지 확인해야합니다. 빠른 시작 문서에서 지침을 사용하여 ata-demo라는 샘플 데이터베이스를 설정했습니다. 이 데이터베이스에는 SQL 관리자 (sa) 사용자 AtaAdmin과 비밀번호 Admin123이 있습니다.

사용 중인 비밀번호는 가장 안전한 것은 아니지만 데모용으로 충분합니다. Equifax의 사랑을 위해 QA 또는 프로덕션에서 이와 같이 설정할 때는 최상의 보안 관행을 사용하십시오!

다음으로 디바이스가 데이터베이스에 연결할 수 있도록 Azure Portal에 로그인해야합니다. 기존 Azure 가상 네트워크에 연결하거나 데이터베이스에 액세스 할 수있는 IP 범위를 정의할 수 있습니다. 아래 데모에서 수행되는 것과 같이 데이터베이스에 액세스 할 수있는 IP 범위를 정의합니다. 연결하려는 SQL 데이터베이스의 리소스 페이지로 이동하여 서버 방화벽 설정이라는 옵션을 찾으십시오.

Setting an Azure SQL Server firewall rule

여기에 도달하면 IP 범위를 선택할 수 있습니다. 이 페이지에는 디바이스의 IP 주소도 표시됩니다. 이 주소를 데모에서 사용할 것입니다. 하지만 실제로는 응용 프로그램 계층의 서브넷 범위 또는 가상 네트워크일 것입니다. 이 작업이 완료되면 첫 번째 데모로 넘어갈 준비가됩니다!

Azure Portal을 사용하여 Azure SQL 데이터베이스에 연결하기

Azure Portal에서 이미 있으므로 첫 번째 데모에 대해 여기에 머무를 수 있습니다.

왼쪽의 탐색 메뉴를 사용하여 개요 페이지로 돌아가고, 쿼리 편집기를 찾으십시오. 그곳에 도착하면 Microsoft 계정 또는 SQL 자격 증명으로 로그인하라는 메시지가 표시됩니다. 이전에 설정한 SA 계정을 사용하여 로그인하십시오 (AtaAdmin:Admin123).

로그인하면 쿼리 편집기 왼쪽에 테이블, 뷰 및 저장 프로시저가 표시되는 패널이 표시됩니다. 본 글 작성시점에는 이 UI에서 오른쪽 클릭 기능이 없으므로 데이터베이스와 상호 작용하는 유일한 옵션은 쿼리 편집기를 통해 가능합니다. 샘플 데이터베이스를 사용하는 경우, 아래의 샘플 쿼리를 사용할 수 있습니다.

SELECT pc.Name as CategoryName, p.name as ProductName
FROM [SalesLT].[ProductCategory] pc
JOIN [SalesLT].[Product] p
ON pc.productcategoryid = p.productcategoryid;
Querying the Azure SQL server database

방화벽 규칙이 설정되었다는 것을 알았으므로, 이제 다른 플랫폼에서도 이를 시도해 볼 수 있습니다.

SQL Server Management Studio (SSMS)를 사용하여 Azure SQL 데이터베이스에 연결하기

SQL 데이터베이스 서버를 관리하기 위한 가장 견고한 도구는 간혹 몇 년이 지난 SSMS입니다. 오랜 시간 동안 SQL 서버 데이터베이스 관리자들의 선택 도구로 사용되어 왔습니다.

SSMS는 Azure SQL 데이터베이스와도 완벽하게 호환됩니다. 설치되어 있지 않은 경우, 최신 버전을 Microsoft에서 다운로드하거나 패키지 관리자를 사용하여 설치할 수 있습니다.

SQL 데이터베이스 리소스 페이지로 돌아가서 서버 이름을 복사하십시오. 서버 이름은 <데이터베이스 이름>.database.windows.net입니다.

SQL Server Management Studio를 열고 이전에 설정한 SQL Server 인증 및 SA 사용자를 사용하여 데이터베이스 이름에 연결하십시오. 방화벽 규칙을 설정하지 않았다면 SSMS에서 Azure 계정으로 인증을 요청받게 됩니다.

데이터베이스에 인증되었고 방화벽이 설정되었으므로 <서버 이름> -> 데이터베이스로 이동하여 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 새 쿼리를 선택하여 이전에 사용한 쿼리를 실행하고 마법이 일어나는 것을 관찰할 수 있습니다.

Connecting to an Azure SQL Database with SSMS

Visual Studio Code (Code)를 사용하여 Azure SQL 데이터베이스에 연결하기

Visual Studio Code를 사용하여 Azure SQL 데이터베이스에 연결하려면 Visual Studio Code용 mssql 확장 프로그램을 설치해야 합니다. 설치 후에 Ctrl + Shift + P를 눌러 대화 상자를 열고 MS SQL: Connect를 검색하십시오.

Using the MSSql extension in Visual Studio Code

그것을 선택하면 Visual Studio Code가 데이터베이스에 연결할 정보를 입력하라는 마법사를 실행합니다. 서버 이름, 데이터베이스 이름, 사용자 이름 및 암호를 입력하라는 메시지가 표시됩니다. 이 모든 정보를 제공하면 해당 데이터베이스에 대해 쿼리를 실행하는 데 사용할 수 있는 연결 프로필로 저장됩니다.

에디터 창에서 데이터베이스에 대해 실행할 SQL 쿼리를 입력하십시오. 쿼리를 열고, Ctrl + Shift + E를 누르십시오. 그럼 어떤 연결로 쿼리를 실행할지 선택하는 프롬프트가 나타납니다. 생성한 연결을 선택하면, Code는 화면을 벗어나지 않고 결과를 표시하기 위해 다른 패널을 엽니다!

Connecting to mySql in Visual Studio Code

PowerShell을 사용하여 Azure SQL 데이터베이스에 연결하기

PowerShell을 사용하여 Azure SQL 데이터베이스에 연결하려면, Az PowerShell 모듈을 설치해야 합니다. 이 모듈은 PowerShell 갤러리에서 찾을 수 있습니다. Install-Module Az 명령을 실행하여 모듈을 다운로드하고 설치하십시오. 이 글을 작성하는 시점에서 모듈의 버전은 2.5입니다.

이 모듈은 스크립트를 실행할 컴퓨터에 한 번만 설치하면 됩니다. 다음으로, Connect-AzAccount를 실행하여 Azure에 인증하십시오. 자세한 내용은 Connect-AzAccount cmdlet의 사용 방법을 참조하십시오.

모든 것이 작동하는지 확인하기 위해 Get-AzSqlServer -ResourceGroupName <Your Resource Group> 명령을 실행하여 데이터베이스를 찾을 수 있습니다. 해당 데이터베이스가 반환된다면, 스크립트를 실행할 준비가 되었습니다.

인증을 완료하고 데이터베이스를 볼 수 있으므로, 아래 스크립트를 실행하여 쿼리를 실행할 수 있습니다. 이 코드는 Azure SQL 모듈을 가져오고, 매개변수(데이터베이스, 사용자 이름, 자격증명 및 쿼리)를 설정하고, Invoke-SqlCmd를 실행하여 Transact SQL 쿼리를 시작합니다.

# 모듈 가져오기
Import-Module Az.Sql -Force
 
# 매개변수 설정
$Params = @{
   'ServerInstance' = 'atademo.database.windows.net';
   'Database' = 'ata-demo';
   'Username' = 'ataadmin';
   'Password' = 'Admin123';
   'Query' = 'SELECT pc.Name as CategoryName, p.name as ProductName
FROM [SalesLT].[ProductCategory] pc
JOIN [SalesLT].[Product] p
ON pc.productcategoryid = p.productcategoryid;'
}
 
# 스플랫
Invoke-Sqlcmd @Params

PowerShell을 사용하여 Azure SQL 서버 및 데이터베이스를 읽고 이 정보를 아래와 같이 쿼리에 전달하는 것도 가능합니다. $rgName이 정의되어 있고 비밀번호를 보안 문자열로 전달하는 것을 가정하면, 첫 번째 스크립트와 두 번째 스크립트 사이에는 기능적인 차이가 없습니다.

Import-Module Az.Sql -Force
 
$rgName = '<Resource Group Name>'
$sqlServer = Get-AzSqlServer -ResourceGroupName $rgName
$sqlDatabase = Get-AzSqlDatabase -ServerName $sqlServer.ServerName -ResourceGroupName $rgName
 
$Params = @{
   'ServerInstance' = $sqlServer.FullyQualifiedDomainName;
   'Database' = $sqlDatabase.DatabaseName[0];
   'Username' = $sqlServer.SqlAdministratorLogin;
   'Password' = ‘<Password>’;
   'Query' = 'SELECT pc.Name as CategoryName, p.name as ProductName
       FROM [SalesLT].[ProductCategory] pc
       JOIN [SalesLT].[Product] p
       ON pc.productcategoryid = p.productcategoryid;'
}
 
Invoke-Sqlcmd @Params

마무리

Azure SQL Database에 여러 가지 방법으로 연결했으므로 전통적인 SQL Server 설치 대신 또는 함께 사용하는 것에 익숙해져야 합니다!

추가 정보

Source:
https://adamtheautomator.com/connect-to-azure-sql-database/