MSSQLSERVER_916

세부 정보

제품 이름

SQL Server

제품 버전

11.0

제품 빌드 번호

11.00

이벤트 ID

916

이벤트 원본

MSSQLSERVER

구성 요소

SQLEngine

심볼 이름

NOTUSER

메시지 텍스트

현재 보안 컨텍스트로는 서버 보안 주체 "%.*ls"이(가) 데이터베이스 "%.*ls"에 액세스할 수 없습니다.

설명

해당 로그인에는 명명된 데이터베이스에 연결할 수 있는 권한이 없습니다. 이 SQL Server 인스턴스에 연결할 수 있지만 데이터베이스의 특정 권한이 없는 로그인은 게스트 사용자 권한을 받습니다. 이는 한 데이터베이스의 사용자가 사용 권한이 없는 다른 데이터베이스에 연결하지 못하도록 방지하는 보안 수단입니다. 게스트 사용자에게 명명된 데이터베이스에 대한 CONNECT 권한이 없고 trustworthy 속성이 설정되지 않은 경우 이 오류 메시지가 발생할 수 있습니다. 게스트 사용자에게 명명된 데이터베이스에 대한 CONNECT 권한이 없으면 이 오류 메시지가 발생할 수 있습니다.

msdb 데이터베이스에 대한 CONNECT 권한이 거부되거나 취소되면 개체 탐색기에서 각 데이터베이스의 정책 기반 관리 상태를 표시하려고 할 때 SQL Server Management Studio에서 이러한 오류를 받을 수 있습니다. 개체 탐색기가 현재 로그인의 권한을 사용하여 msdb 데이터베이스에서 해당 정보를 쿼리하면 오류가 발생합니다. 다음과 같은 오류 메시지도 나타납니다.

이 요청에 대한 데이터를 검색하지 못했습니다. (Microsoft.SqlServer.Management.Sdk.Sfc)

사용자 동작

주의 사항주의

이 보안 수단을 무시하기 전에 사용자가 다양한 데이터베이스에서 인증된다는 것을 분명히 이해해야 합니다. 다음 방법을 사용하면 한 데이터베이스의 사용 권한을 가진 사용자가 다른 데이터베이스에 연결할 수 있어 악의적 사용자에게 데이터가 노출될 수 있습니다. 포함된 데이터베이스를 사용하도록 설정하면 다음 단계에서는 한 데이터베이스의 데이터베이스 소유자가 SQL Server 인스턴스의 다른 데이터베이스에 대한 액세스 권한을 부여하도록 허용할 수 있습니다.

다음 방법 중 하나로 데이터베이스에 연결할 수 있습니다.

  • 명명된 데이터베이스에 대한 특정 로그인 액세스 권한을 부여합니다. 다음 예에서는 msdb 데이터베이스에 대한 로그인 Adventure-Works\Larry 액세스 권한을 부여합니다.

    USE msdb ;

    GO

    GRANT CONNECT TO [Adventure-Works\Larry] ;

  • 게스트 사용자에 대해 오류 메시지에 명명된 데이터베이스에 대한 CONNECT 권한을 부여합니다. 다음 예에서는 사용자 guest에 대해 msdb 데이터베이스에 대한 CONNECT 권한을 부여합니다.

    USE msdb ;

    GO

    GRANT CONNECT TO guest ;

  • 사용자를 인증한 데이터베이스에 TRUSTWORTHY 속성을 사용하도록 설정합니다.

    ALTER DATABASE AdventureWorks SET TRUSTWORTHY ON;