MSSQLSERVER_916
적용 대상: SQL Server
세부 정보
attribute | 값 |
---|---|
제품 이름 | SQL Server |
이벤트 ID | 916 |
이벤트 원본 | MSSQLSERVER |
구성 요소 | SQLEngine |
심볼 이름 | NOTUSER |
메시지 텍스트 | 서버 보안 주체 "%.*ls"이(가) 현재 보안 컨텍스트에서 데이터베이스 "%.*ls"에 액세스할 수 없습니다. |
설명
해당 로그인에는 명명된 데이터베이스에 연결할 수 있는 권한이 없습니다. 이 SQL Server 인스턴스에 연결할 수 있지만 데이터베이스에 특정 권한이 없는 로그인은 게스트 사용자의 권한을 받습니다. 이는 한 데이터베이스의 사용자가 권한이 없는 다른 데이터베이스에 연결하지 못하도록 하는 보안 조치입니다. 이 오류 메시지는 게스트 사용자에게 명명된 데이터베이스에 대한 CONNECT 권한이 없으며 신뢰할 수 있는 속성이 설정되지 않은 경우에 발생할 수 있습니다. 이 오류 메시지는 게스트 사용자에게 명명된 데이터베이스에 대한 CONNECT 권한이 없는 경우에 발생할 수 있습니다.
msdb 데이터베이스에 대한 CONNECT 권한이 거부되거나 해지되면 개체 탐색기 각 데이터베이스의 정책 기반 관리 상태를 표시하려고 할 때 SQL Server Management Studio에서 이 오류를 받을 수 있습니다. 개체 탐색기가 현재 로그인의 권한을 사용하여 msdb 데이터베이스에서 해당 정보를 쿼리하면 오류가 발생합니다. 다음 오류 메시지도 발생합니다.
이 요청에 대한 데이터를 검색하지 못했습니다. (Microsoft.SqlServer.Management.Sdk.Sfc)
사용자 작업
Warning
이 보안 조치를 우회하기 전에 다양한 데이터베이스에서 인증된 사용자를 명확하게 이해해야 합니다. 다음 방법을 사용하면 한 데이터베이스에 권한이 있는 사용자가 악의적인 사용자에게 데이터를 노출할 수 있는 다른 데이터베이스에 연결할 수 있습니다. 포함된 데이터베이스를 사용하도록 설정하면 다음 단계를 통해 한 데이터베이스의 데이터베이스 소유자가 SQL Server 인스턴스의 다른 데이터베이스에 대한 액세스 권한을 부여할 수 있습니다.
다음 방법 중 하나로 데이터베이스에 연결할 수 있습니다.
명명된 데이터베이스에 대한 특정 로그인 액세스 권한을 부여합니다. 다음 예제에서는 데이터베이스에 대한 로그인
Adventure-Works\Larry
액세스 권한을 부여합니다msdb
.USE msdb ; GO GRANT CONNECT TO [Adventure-Works\Larry] ;
게스트 사용자의 오류 메시지에 명명된 데이터베이스에 CONNECT 권한을 부여합니다. 다음 예제에서는 사용자
guest
에CONNECT
대한 데이터베이스에msdb
권한을 부여합니다.USE msdb ; GO GRANT CONNECT TO guest ;
사용자를 인증한 데이터베이스에 TRUSTWORTHY 속성을 사용하도록 설정합니다.
ALTER DATABASE AdventureWorks SET TRUSTWORTHY ON;