다음을 통해 공유


연결 문자열

연결 문자열은 데이터베이스에 연결하는 방법을 지정하는 데 사용됩니다. Microsoft.Data.Sqlite의 연결 문자열은 세미콜론으로 구분된 키워드 및 값 목록으로 표준 ADO.NET 구문을 따릅니다.

키워드

다음 연결 문자열 키워드는 Microsoft.Data.Sqlite에서 사용할 수 있습니다.

데이터 원본

데이터베이스 파일의 경로입니다. DataSource(공백 없음) 및 Filename은 이 키워드의 별칭입니다.

SQLite는 경로를 현재 작업 디렉터리에 대한 상대 경로로 처리합니다. 절대 경로를 지정할 수도 있습니다.

비어 있는 경우 SQLite는 연결이 닫힐 때 삭제되는 임시 디스크 데이터베이스를 만듭니다.

:memory:인 경우 메모리 내 데이터베이스가 사용됩니다. 자세한 내용은 메모리 내 데이터베이스를 참조하세요.

|DataDirectory| 대체 문자열로 시작하는 경로는 상대 경로와 동일하게 처리됩니다. 설정하는 경우 DataDirectory 애플리케이션 도메인 속성 값을 기준으로 상대 경로가 만들어집니다.

이 키워드는 URI 파일 이름도 지원합니다.

모드

연결 모드입니다.

설명
ReadWriteCreate 읽기 및 쓰기를 위해 데이터베이스를 열고 존재하지 않는 경우 데이터베이스를 만듭니다. 기본값입니다.
ReadWrite 읽기 및 쓰기를 위해 데이터베이스를 엽니다.
읽기 전용 데이터베이스를 읽기 전용 모드로 엽니다.
메모리 메모리 내 데이터베이스를 엽니다.

캐시

연결에 사용되는 캐싱 모드입니다.

설명
기본값 기본 SQLite 라이브러리의 기본 모드를 사용합니다. 기본값입니다.
프라이빗 각 연결이 전용 캐시를 사용합니다.
공유됨 연결이 캐시를 공유합니다. 이 모드는 트랜잭션 및 테이블 잠금의 동작을 변경할 수 있습니다.

암호

암호화 키입니다. 지정된 경우 연결을 연 후 즉시 PRAGMA key를 보냅니다.

Warning

네이티브 SQLite 라이브러리에서 암호화를 지원하지 않는 경우 암호는 적용되지 않습니다.

참고 항목

Password 키워드는 버전 3.0에 추가되었습니다.

외래 키

외래 키 제약 조건을 사용할지 여부를 나타내는 값입니다.

참고 항목

Foreign Keys 키워드는 버전 3.0에 추가되었습니다.

설명
True 연결을 연 후 즉시 PRAGMA foreign_keys = 1을 보냅니다.
False 연결을 연 후 즉시 PRAGMA foreign_keys = 0을 보냅니다.
(비어 있음) PRAGMA foreign_keys를 보내지 않습니다. 기본값입니다.

e_sqlite3에서와 같이 SQLITE_DEFAULT_FOREIGN_KEYS가 네이티브 SQLite 라이브러리를 컴파일하는 데 사용된 경우 외래 키를 사용하도록 설정할 필요가 없습니다.

재귀 트리거

재귀 트리거를 사용할지 여부를 나타내는 값입니다.

참고 항목

Recursive Triggers 키워드는 버전 3.0에 추가되었습니다.

설명
True 연결을 연 후 즉시 PRAGMA recursive_triggers을 보냅니다.
False PRAGMA recursive_triggers를 보내지 않습니다. 기본값입니다.

기본 시간 제한

명령 실행에 대한 기본 제한 시간(초)입니다. 기본값은 30입니다. 명령 시간 제한는 이 키워드의 별칭입니다.

이 값은 DefaultTimeout을 사용하여 재정의할 수 있으며, 이는 다시 CommandTimeout을 사용하여 재정의할 수 있습니다.

참고 항목

Default Timeout 키워드는 버전 6.0에 추가되었습니다.

풀링

연결이 풀링되는지 여부를 나타내는 값입니다.

참고 항목

Pooling 키워드는 버전 6.0에서 추가되었습니다.

설명
True 연결이 풀링됩니다. 기본값입니다.
False 연결은 풀링되지 않습니다.

연결 문자열 작성기

SqliteConnectionStringBuilder를 강력한 형식으로 연결 문자열을 만드는 방법으로 사용할 수 있습니다. 연결 문자열 삽입 공격을 방지하는 데도 사용할 수 있습니다.

var connectionString = new SqliteConnectionStringBuilder(baseConnectionString)
{
    Mode = SqliteOpenMode.ReadWriteCreate,
    Password = password
}.ToString();

Important

사용 가능한 가장 안전한 인증 흐름을 사용하는 것이 권장됩니다. Azure SQL에 연결하려는 경우, 권장되는 인증 방법은 Azure 리소스에 대한 관리 ID입니다.

예제

기본

동시성 향상을 위해 공유 캐시를 사용하는 기본 연결 문자열입니다.

주의

공유 캐시 모드와 미리 쓰기 로깅을 혼합하는 것은 권장되지 않습니다. 최적의 성능을 위해서는 데이터베이스가 미리 쓰기 로깅을 사용하도록 구성된 경우 Cache=Shared를 제거합니다.

Data Source=Application.db;Cache=Shared

암호화됨

암호화된 데이터베이스입니다.

Data Source=Encrypted.db;Password=MyEncryptionKey

읽기 전용

앱이 수정할 수 없는 읽기 전용 데이터베이스입니다.

Data Source=Reference.db;Mode=ReadOnly

메모리 내

전용 메모리 내 데이터베이스입니다.

Data Source=:memory:

공유 가능한 메모리 내

이름 Sharable로 식별되는 공유 가능한 메모리 내 데이터베이스입니다.

Data Source=Sharable;Mode=Memory;Cache=Shared

참고 항목