2013-06-14 10 views
1

SQL 인증 만 사용하는 SQL Server 인스턴스가 있습니다. 이 인스턴스에는 두 명의 사용자와 데이터베이스 만 있습니다. SA의 사용자 이름은 XX입니다. 나는 다른 사용자를 가지고 있으며 그 사용자는 X라고 말할 수 있습니다. 그리고 스크립트 작성시 X를 서버에 사용자로 추가 한 다음 거기에있는 하나의 데이터베이스에 추가합니다.SQL Server - 스크립팅 로그인없이 사용자 생성

XX가 SQL Server 설치시 생성 된 SA 인 경우 XX를 명시 적으로 모든 데이터베이스에 매핑 할 필요가 없으므로 올바르게 수정해야합니까?

로그인하지 않고 CREATE USER를 약간 혼동합니다. 위의 내용이 사실이라면 로그인없이 하나의 데이터베이스에 X를 추가하는 스크립트를 작성해야합니까? 로그인하지 않은 경우의 중요성은 무엇입니까? 어떤 조건 하에서 누구가 그 일을해야합니까?

감사합니다.

답변

4

로그인하지 않은 사용자가 애플리케이션 역할을 대체하기 위해 추가되었습니다.
로그인 권한이없는 사용자는 필요한 권한을 얻기 위해 가장 (impersonation)으로 유용합니다. 이를 통해 사용자는 자신의 자격 증명으로 인스턴스를 인증 할 수 있으므로 SQL Server는 로그인 컨텍스트에서 로그인하지 않는 사용자를 가장하면서 로그인 활동을 감사 할 수 있습니다.

간단한 가장 예 :

SELECT SUSER_NAME(), USER_NAME(); 
GO 
CREATE USER loginless_user_4test 
    WITHOUT LOGIN 
GO 
EXECUTE AS USER = 'loginless_user_4test' 
GO 
SELECT SUSER_NAME(), USER_NAME(); 
GO 
REVERT --as long as you haven't issued "EXECUTE AS ... WITH NO REVERT", you can go back to previous context 
GO 
+0

당신의 대답은 매우 도움이 될 것입니다, 감사합니다. 가장이라는 작은 예를 제공 할 수 있습니까? 내 보안 접근 방식의 일부로 데이터베이스 역할을 사용하고 응용 프로그램 역할을 사용한 적이 없습니다. – MikeMalter