다음을 통해 공유


연결 설정

적용 대상: .NET Framework .NET .NET Standard

ADO.NET 다운로드

Microsoft SQL Server에 연결하려면 SQL Server용 Microsoft SqlClient 데이터 공급자의 SqlConnection 개체를 사용합니다. 연결 문자열을 안전하게 저장하고 검색하려면 연결 정보 보호를 참조하세요.

연결 닫기

사용이 끝나면 해당 연결이 풀로 반환되도록 닫아 두는 것이 좋습니다. Visual Basic 또는 C#의 Using 블록은 처리되지 않은 예외가 발생하더라도 코드에 블록이 있으면 연결을 자동으로 제거합니다. 자세한 내용은 using 문Using 문을 참조하세요.

연결 개체의 Close 또는 Dispose 메소드를 사용할 수도 있습니다. 명시적으로 닫히지 않은 연결은 풀에 추가되거나 반환되지 않을 수 있습니다. 예를 들어, 범위를 벗어났지만 명시적으로 닫히지 않은 연결은 최대 풀 크기에 도달했으며 여전히 유효한 경우에만 연결 풀로 반환됩니다.

참고 항목

Connection, DataReader 또는 클래스의 Finalize 메서드에 있는 다른 관리되는 개체에서 Close 또는 Dispose를 호출하지 마세요. 종료자에서는 클래스에 직접 속한 관리되지 않는 리소스만 해제합니다. 클래스에 관리되지 않는 리소스가 없는 경우 클래스 정의에 Finalize 메서드를 포함하지 마세요. 자세한 내용은 가비지 수집을 참조하세요.

참고 항목

연결이 연결 풀에서 반환될 경우에는 실제로 해제된 것이 아니므로 연결이 연결 풀에서 반입되거나 연결 풀로 반환되는 경우 서버에서 로그인 및 로그아웃 이벤트가 발생하지 않습니다. 자세한 내용은 SQL Server 연결 풀링(ADO.NET)을 참조하세요.

SQL Server에 연결

유효한 문자열 형식 이름 및 값은 ConnectionString 개체의 SqlConnection 속성을 참조하세요. SqlConnectionStringBuilder 클래스를 사용하여 런타임에 구문상 유효한 연결 문자열을 만들 수도 있습니다. 자세한 내용은 연결 문자열 작성기를 참조하세요.

다음 코드 예제에서는 SQL Server 데이터베이스에 대해 연결을 만들어 여는 방법을 보여 줍니다.

using Microsoft.Data.SqlClient;

class Program1
{
    static void Main()
    {
        string s = GetConnectionString();

        OpenSqlConnection(s);
        Console.ReadLine();
    }

    private static void OpenSqlConnection(string connectionString)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
            Console.WriteLine("State: {0}", connection.State);
        }
    }

    static private string GetConnectionString()
    {
        // To avoid storing the connection string in your code, 
        // you can retrieve it from a configuration file, using the 
        // System.Configuration.ConfigurationSettings.AppSettings property 
        return "Data Source=(local);Initial Catalog=AdventureWorks;"
            + "Integrated Security=SSPI;";
    }
}

통합 보안 및 ASP.NET

트러스트된 연결이라고도 하는 SQL Server 통합 보안은 연결 문자열에 사용자 ID와 암호를 노출하지 않아 안전하게 SQL Server에 연결할 수 있으므로 연결 인증에 권장되는 방식입니다. 통합 보안에서는 실행 중인 프로세스의 현재 보안 ID, 즉 토큰을 사용합니다. 데스크톱 애플리케이션의 경우에 ID는 일반적으로 현재 로그온한 사용자의 ID입니다.

ASP.NET 애플리케이션의 보안 ID는 여러 가지 서로 다른 옵션 중 하나로 설정할 수 있습니다. ASP.NET 애플리케이션이 SQL Server에 연결할 때 사용하는 보안 ID를 더 잘 이해하려면 ASP.NET 가장, ASP.NET 인증방법: Windows 통합 보안을 사용하여 SQL Server에 액세스를 참조하세요.

참고 항목