[sql] SQL Server에서 사용자와 로그인의 차이점

나는 최근에 일반적으로 엉망이 아닌 SQL Server의 여러 영역을 실행하고 있습니다. 나를 혼란스럽게 한 것 중 하나는 로그인 및 사용자 영역입니다. 꽤 간단한 주제 인 것 같습니다 …

각 로그인은 1 명의 사용자 만 가질 수 있고 각 사용자는 1 개의 로그인 만 가질 수 있습니다.

로그인은 여러 테이블에 연결되어 해당 사용자를 여러 테이블에 연결할 수 있습니다.

그래서 제 질문은 왜 로그인과 사용자가 있습니까? 그들은 거의 같은 것 같습니다. 차이점은 무엇입니까, 또는 내가없는 것 같은 것은 무엇입니까?



답변

“로그인”은 서버에 주요 항목을 부여합니다.

“사용자”는 단일 DATABASE에 로그인 항목을 부여합니다.

하나의 “로그인”은 많은 사용자 (데이터베이스 당 하나)와 연관 될 수 있습니다.

위의 각 개체에는 자체 수준에서 권한이 부여 될 수 있습니다. 각각에 대한 설명은 다음 기사를 참조하십시오


답변

데이터베이스 서버에서 인증을 수행 할 수 있지만 데이터베이스에 대한 권한 범위를 지정할 수 있기 때문에 둘 다 갖는 이유 중 하나입니다. 이렇게하면 데이터베이스를 다른 서버로 이동하면 데이터베이스 서버에서 사용자-로그인 관계를 항상 다시 매핑 할 수 있지만 데이터베이스를 변경할 필요는 없습니다.


답변

Laurentiu Cristofor의이 주제에 관한 정말 좋은 MSDN 블로그 게시물 이 있다고 생각합니다 .

SQL Server 보안에 대해 이해해야 할 첫 번째 중요한 것은 서버와 데이터베이스라는 두 가지 보안 영역이 있다는 것입니다. 서버 영역에는 여러 데이터베이스 영역이 포함됩니다. 모든 작업은 일부 데이터베이스의 컨텍스트에서 수행되지만 작업을 수행하려면 먼저 서버에 액세스 한 다음 데이터베이스에 액세스해야합니다.

서버에 대한 액세스는 로그인을 통해 부여됩니다. 로그인의 주요 범주는 SQL Server 인증 로그인과 Windows 인증 로그인의 두 가지입니다. 나는 보통 짧은 이름의 SQL 로그인과 Windows 로그인을 사용하여 이것을 언급 할 것이다. Windows 인증 로그인은 Windows 사용자에게 매핑 된 로그인이거나 Windows 그룹에 매핑 된 로그인 일 수 있습니다. 따라서 서버에 연결하려면 이러한 유형 또는 로그인 중 하나를 통해 액세스해야합니다. 로그인은 서버 영역에 대한 액세스를 제공합니다.

그러나 작업은 일반적으로 데이터베이스에서 수행되고 데이터베이스는 별도의 영역이기 때문에 로그인으로는 충분하지 않습니다. 데이터베이스에 대한 액세스는 사용자를 통해 부여됩니다.

사용자는 로그인에 맵핑되며 맵핑은 로그인 및 사용자의 SID 특성으로 표시됩니다. SID 값이 동일한 경우 로그인은 데이터베이스의 사용자에게 매핑됩니다. 따라서 로그인 유형에 따라 위의 로그인 분류를 모방 한 사용자를 분류 할 수 있습니다. 따라서 우리는 SQL 사용자와 Windows 사용자를 가지고 있으며 후자는 Windows 사용자 로그인에 매핑 된 사용자와 Windows 그룹 로그인에 매핑 된 사용자로 구성됩니다.

로그인
을 통해 서버에 액세스하고 데이터베이스에 더 액세스
하려면 로그인에 매핑 된 사용자가 데이터베이스에 있어야합니다.

그것이 전체 게시물에 대한 링크 입니다.


답변

요컨대,

로그인 하면 서버에 액세스 할 수 있습니다.

사용자 는 데이터베이스에 액세스 할 수 있습니다.


답변

나는 이것이 좋은 대답을 가진 매우 유용한 질문이라고 생각합니다. MSDN 에서 로그인을 생성 하려면 로그인 페이지를 작성 하십시오.

로그인은 보안 사용자 또는 보안 시스템에 의해 인증 될 수있는 엔티티입니다. SQL Server에 연결하려면 로그인이 필요합니다. Windows 사용자 (예 : 도메인 사용자 또는 Windows 도메인 그룹)를 기반으로 로그인을 만들거나 Windows 주체를 기반으로하지 않는 로그인 (예 : SQL Server 로그인)을 만들 수 있습니다.

참고 :
SQL Server 인증을 사용하려면 데이터베이스 엔진이 혼합 모드 인증을 사용해야합니다. 자세한 내용은 인증 모드 선택을 참조하십시오.

보안 주체로서 로그인 권한을 부여 할 수 있습니다. 로그인 범위는 전체 데이터베이스 엔진입니다. SQL Server 인스턴스의 특정 데이터베이스에 연결하려면 로그인이 데이터베이스 사용자에게 매핑되어야합니다. 데이터베이스 내부의 권한은 로그인이 아닌 데이터베이스 사용자에게 부여되고 거부됩니다. 전체 SQL Server 인스턴스의 범위가있는 권한 (예 : CREATE ENDPOINT 권한)을 로그인에 부여 할 수 있습니다.


답변

MS sql-docs의 로그인 / 사용자 그래프

여기에 이미지 설명을 입력하십시오


답변