2016-09-28 7 views
0

SQL Server에서 세션을 설정하는 방법을 묻는 것이 좋습니다. 한 시나리오에서 한 사용자가 현재 테이블의 열에 액세스 할 때 다른 사용자가 테이블의 값 (데이터)에 액세스 할 수 없거나 각 사용자가 동시에 거래 할 수 없다는 것입니다. 가능한가?Session on SQL SERVER 2008

+0

존재하지 않는 용어 나 기존의 용어를 잘못된 방식으로 사용하기 때문에 질문이 이해가되지 않습니다. "세션"이란 무엇입니까? 데이터베이스에는 그러한 용어가 없습니다. "거래"를 의미 할 수도 있지만 무결성을 보장하기 위해 필요하지는 않습니다. 여러 사용자가 동일한 데이터를 읽거나 시나리오를 읽고 쓰는 데 문제가 없습니다. 당신의 실제 * 문제는 무엇입니까? 한 번에 한 명의 사용자 만 액세스 할 수 있도록 제한해야하는 이유는 무엇입니까? –

+0

질문 문구가 혼란 스럽습니다. 단일 사용자에 대한 액세스를 제한 하시겠습니까, 아니면 액세스가 제한되어 있고 여러 사용자를 허용하고 싶다고 생각하십니까? 다른 트랜잭션 레벨이나 스냅 샷 격리를 사용하여 두 가지 문제점을 수정할 수 있습니다. 트랜잭션을 피하기 위해 클라이언트에서 낙관적 동시성을 사용할 수 있습니다. 그러나 해결해야 할 문제 *를 설명해야합니다. –

+0

실제 문제는 시스템에 여러 사용자가 있다는 것입니다. 여러 사용자가 열에 액세스하지 못하도록 막으려하고 있습니다. 예를 들어 사용자 1이 현재 테이블 A 열 1의 값에 액세스 할 때 다른 사용자는 테이블 A의 해당 열에 액세스하려고 할 때 해당 값을 볼 수 없습니다. – MDP

답변

0

데이터베이스에 대한 연결의 잠금 속성을 조사해야합니다. 기본적으로 테이블은 고정되어 있습니다. 믿을 수는 있습니다.이 점을 무시할 수 있어야합니다.

+1

잘못되었습니다. 잠금 장치와 트랜잭션을 혼동하고 있습니다. 테이블은 기본적으로 "잠김"되지 않습니다. 연결에 잠금 속성이 없습니다. 트랜잭션 격리 모드에 따라 서버는 특정 개체 (예 : 읽거나 쓰는 행)를 잠급니다. –