지난번에 SQL Azure 에서 방화벽 설정하는 방법에서 방화벽 룰 설정에 사용되는

저장 프로시저에 대해서 알아 보았는데요.

간단하게 원도우 애플리케이션으로 해당 프로시저를 이용하여 방화벽 룰의 리스트를 표시하고

추가, 제거 하는 예제를 만들어 보겠습니다.

기존 SQL Server 에서 데이터베이스에 접속하고 쿼리 실행, 프로시저 실행하는 부분은 같습니다.

아래 시스템 테이블과 프로시저를 이용하여 SQL Azure 방화벽 룰 예제에 대해 살펴 보겠습니다.

간단한 TIP 에 해당하는 SQL Azure 를 사용할 때 데이터베이스 개발 시 특별히 다른 점이 없다는 것을

코드로 보여드리기 위한 예제 입니다..

SQL Azure Database Stored Procedures

시스템 테이블, 프로시저

 

sys.firewall_rules (SQL Azure Database)

설정된 방화벽 조회

sp_delete_firewall_rule (SQL Azure Database)

방화벽 삭제

sp_set_firewall_rule (SQL Azure Database)

방화벽 추가

 

 .NET Framework 4 기준 원도우 애플리케이션 프로젝트를 생성하고 다음과 같이 폼 디자인을

구성 하였습니다.

폼화면.png

 

데이터베이스 서버에 접속하는 코드에 해당 됩니다.

접속이 되지 않을 경우 애플리케이션이 실행되는 로컬 호스트의 IP SQL Azure 방화벽 룰

허용이 되어 있지 않은 경우 이므로 Azure 포털에서 IP를 추가해줘야 합니다.

 

Namespace 참조

using System.Data;

using System.Data.SqlClient;

 

 

연결 문자열 프로퍼티

Private string SQLAzureMasterConnectionString { get; set; }

 

SqlConnection 클래스의 연결 문자열을 지정하고 가져오는 Property 입니다.

 

Connect 버튼 – SQL Azure 서버에 접속

private void btnConnect_Click(object sender, EventArgs e)

{

string serverName = this.txtServerName.Text.Trim();

string userId = this.txtUserId.Text.Trim();

string pwd = this.txtUserPwd.Text.Trim();

 

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();

builder.DataSource = string.Format("tcp:{0},1433", serverName);

builder.InitialCatalog = "master";

builder.UserID = userId;

builder.Password = pwd;

builder.Pooling = true;

this.SQLAzureMasterConnectionString = builder.ToString();

 

BindFireWall();

}

 

SqlConnectionBulider 클래스를 사용하여 연결 문자열을 만듭니다.

 

BindFireWall() – 방화벽 룰 리스트 출력 메서드

private void BindFireWall()

{

List<FirewallRule> rules = new List<FirewallRule>();

 

using (SqlConnection conn = new SqlConnection(this.SQLAzureMasterConnectionString))

using (SqlCommand cmd = conn.CreateCommand())

{

conn.Open();

cmd.CommandText = "SELECT name, start_ip_address, end_ip_address FROM sys.firewall_rules";

 

using (SqlDataReader reader = cmd.ExecuteReader())

{

while (reader.Read())

{

rules.Add(new FirewallRule(reader["name"] as string,

reader["start_ip_address"] as string,

reader["end_ip_address"] as string));

}

}

}

 

this.dgvFirewallList.DataSource = rules;

}

 

sys.sysfirewall_rules 시스템 테이블을 조회하여 현재 방화벽 설정되어 있는 목록을 가져옵니다.

SqlCommand 클래스로 T-SQL 명령어를 실행하고 SqlDataReader 로 데이터를 읽어 리스트를 구성합니다.

역시나 사용법에 있어서 별다른 차이가 없습니다.;;

 

 

룰 추가 버튼 - 방화벽 룰 추가

private void btnaddRule_Click(object sender, EventArgs e)

{

using (SqlConnection conn = new SqlConnection(this.SQLAzureMasterConnectionString))

using (SqlCommand cmd = conn.CreateCommand())

{

conn.Open();

cmd.CommandText = "sp_set_firewall_rule";

cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = txtRuleName.Text.Trim();

cmd.Parameters.Add("@start_ip_address", SqlDbType.VarChar).Value = txtStart_IP.Text.Trim();

cmd.Parameters.Add("@end_ip_address", SqlDbType.VarChar).Value = txtEnd_IP.Text.Trim();

cmd.ExecuteNonQuery();

}

BindFireWall();

}

 

Sp_set_firewall_rule 프로시저를 호출하여 방화벽 룰을 추가하는 코드 입니다.

SqlCommand 클래스를 사용하여 저장 프로시저를 호출하는 코드.. 너무 익숙한 코드입니다..

 

룰 삭제 버튼 방화벽 룰 삭제

private void btnDelRule_Click(object sender, EventArgs e)

{

using (SqlConnection conn = new SqlConnection(this.SQLAzureMasterConnectionString))

using (SqlCommand cmd = conn.CreateCommand())

{

conn.Open();

cmd.CommandText = "sp_delete_firewall_rule";

cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = txtRuleName.Text.Trim();

cmd.ExecuteNonQuery();

}

BindFireWall();

 

}

 

Rule 삭제 시 sp_delete_firewall_rule 프로시저를 호출하는 코드 입니다.

 

다음 화면과 같이 DataGridView 로 데이터가 바인딩되어 리스트가 표시됩니다.

실행화면.png

 

이번 예제는 아.. 프로시저 사용해서 간단하게 이런 프로그램 정도 만들 수 있겠구나.. 라는 정도로

참고하시면 좋을 듯 합니다.. ‘’)..)

 

참고: MSDN Windows Azure 자료


Azure - 클라우드 컴퓨팅 - 시리즈 강좌 리스트
[Azure강좌] 1. 클라우드와 원도우 애저 소개
[Azure강좌] 2. SDK 설치와 Azure 무료 신청
[Azure강좌] 3. ASP.NET(Web Role) Hello World
[Azure강좌] 4. 프로젝트 패키지 Azure 배포
[Azure강좌] 5. Windows Azure Storage 서비스와 계정 설정
[Azure강좌] 6. 테이블 서비스와 StorageClient 라이브러리 #1
[Azure강좌] 7. SQL Azure 소개와 서버 구성
[Azure강좌] 8. 데이터베이스 생성과 SSMS 사용
[Azure강좌] 9. SQL Azure 마이그레이션 위자드 사용하기
[Azure강좌] 10. SQL Azure 방화벽 설정
[Azure강좌] 11. SQL Azure Manage 툴 사용해 보기
[Azure강좌] 12. 테이블 서비스와 StorageClient 라이브러리 #2
[Azure강좌] 13. SQL Azure ASP.NET GridView 바인딩
[Azure강좌] 14. Blob 서비스와 Container
[Azure강좌] 15. Blob 리스트 조회, 업로드 다운로드 예제
[Azure강좌] 16. 웹사이트 콘텐트 Blob 스토리지 이용
[Azure강좌] 17. Windows Azure CDN 설정
[Azure강좌] 18. Queue 서비스와 생성, 삭제, 메타데이터 추가
[Azure강좌] 19. Queue 의 메시지 피킹 및 가져오기, 추가, 삭제
[Azure강좌] 20. [Tip] SQL Azure 방화벽 룰 설정 예제 애플리케이션


Azure - 클라우드 컴퓨팅 - 동영상 참고 자료

[Azure 동영상 강좌] 1. 클라우드와 원도우 애저 소개 (애저 포털 둘러보기) 

[Azure 동영상 강좌] 2. SDK 설치와 Azure 무료 신청
[Azure 동영상 강좌] 3. ASP.NET(Web Role) Hello World
[Azure 동영상 강좌] 4. 프로젝트 패키지 Azure 배포
[Azure 동영상 강좌] 5. Windows Azure Storage 서비스와 계정 설정
[Azure 동영상 강좌] 6. 테이블 서비스와 StorageClient 라이브러리 #1
[Azure 동영상 강좌] 7. SQL Azure 소개와 서버 구성
[Azure 동영상 강좌] 8. 데이터베이스 생성과 SSMS 사용
[Azure 동영상 강좌] 9. SQL Azure 마이그레이션 위자드 사용하기
[Azure 동영상 강좌] 10. SQL Azure 방화벽 설정
[Azure 동영상 강좌] 11. SQL Azure Manage 툴 사용해 보기
[Azure 동영상 강좌] 12. 테이블 서비스와 StorageClient 라이브러리 #2
[Azure 동영상 강좌] 13. SQL Azure ASP.NET GridView 바인딩
[Azure 동영상 강좌] 14. Blob 서비스와 Container
[Azure 동영상 강좌] 15. Blob 리스트 조회, 업로드 다운로드 예제
[Azure 동영상 강좌] 16. 웹사이트 콘텐트 Blob 스토리지 이용
[Azure 동영상 강좌] 17. Windows Azure CDN 설정
[Azure 동영상 강좌] 18. Queue 서비스와 생성, 삭제, 메타데이터 추가
[Azure 동영상 강좌] 19. Queue 의 메시지 피킹 및 가져오기, 추가, 삭제
[Azure 동영상 강좌] 20. [Tip] SQL Azure 방화벽 룰 설정 예제 애플리케이션





profile

안녕하세요. 이호엽 입니다!

ASP.NET 프론티어 

블로그: algorizm.tistory.com