MSSQLSERVER_916MSSQLSERVER_916

세부 정보Details

제품 이름Product Name SQL ServerSQL Server
이벤트 IDEvent ID 916916
이벤트 원본Event Source MSSQLSERVERMSSQLSERVER
구성 요소Component SQLEngineSQLEngine
심볼 이름Symbolic Name NOTUSERNOTUSER
메시지 텍스트Message Text 현재 보안 컨텍스트로는 서버 보안 주체 "%.ls"이(가) 데이터베이스 "%.\ls"에 액세스할 수 없습니다.The server principal "%.ls" is not able to access the database "%.\ls" under the current security context.

설명Explanation

해당 로그인에는 명명된 데이터베이스에 연결할 수 있는 권한이 없습니다.The login does not have sufficient permissions to connect to the named database. SQL ServerSQL Server 인스턴스에 연결할 수 있지만 데이터베이스의 특정 권한이 없는 로그인은 게스트 사용자 권한을 받습니다.Logins that can connect to this instance of SQL ServerSQL Server but that do not have specific permissions in a database receive the permissions of the guest user. 이는 한 데이터베이스의 사용자가 사용 권한이 없는 다른 데이터베이스에 연결하지 못하도록 방지하는 보안 수단입니다.This is a security measure to prevent users in one database from connecting to other databases where they do not have privileges. 게스트 사용자에게 명명된 데이터베이스에 대한 CONNECT 권한이 없고 trustworthy 속성이 설정되지 않은 경우 이 오류 메시지가 발생할 수 있습니다.This error message can occur when the guest user does not have CONNECT permission to the named database and the trustworthy property is not set. 게스트 사용자에게 명명된 데이터베이스에 대한 CONNECT 권한이 없으면 이 오류 메시지가 발생할 수 있습니다.This error message can occur when the guest user does not have CONNECT permission to the named database.

msdb 데이터베이스에 대한 CONNECT 권한이 거부되거나 취소되면 개체 탐색기에서 각 데이터베이스의 정책 기반 관리 상태를 표시하려고 할 때 SQL Server Management StudioSQL Server Management Studio에서 이러한 오류를 받을 수 있습니다.When CONNECT permission to the msdb database is denied or revoked, SQL Server Management StudioSQL Server Management Studio can receive this error when Object Explorer tries to show the Policy Based Management status of each database. 개체 탐색기가 현재 로그인의 권한을 사용하여 msdb 데이터베이스에서 해당 정보를 쿼리하면 오류가 발생합니다.Object Explorer uses the permissions of the current login to query the msdb database for this information, which causes the error. 다음과 같은 오류 메시지도 나타납니다.The following error message also occurs:

이 요청에 대한 데이터를 검색하지 못했습니다.Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)(Microsoft.SqlServer.Management.Sdk.Sfc)

사용자 동작User Action

경고

이 보안 수단을 무시하기 전에 사용자가 다양한 데이터베이스에서 인증된다는 것을 분명히 이해해야 합니다.Before circumventing this security measure be sure to have a clear understanding of users are authenticated in various databases. 다음 방법을 사용하면 한 데이터베이스의 사용 권한을 가진 사용자가 다른 데이터베이스에 연결할 수 있어 악의적 사용자에게 데이터가 노출될 수 있습니다.The following methods may allow users that have permissions in one database to connect to other databases which could expose data to a malicious user. 포함된 데이터베이스를 사용하도록 설정하면 다음 단계에서는 한 데이터베이스의 데이터베이스 소유자가 SQL ServerSQL Server 인스턴스의 다른 데이터베이스에 대한 액세스 권한을 부여하도록 허용할 수 있습니다.When contained databases are enabled, the following steps can allow database owners in one database to grant access to other database on the instance of SQL ServerSQL Server.

다음 방법 중 하나로 데이터베이스에 연결할 수 있습니다.You can connect to the database in one of the following ways:

  • 명명된 데이터베이스에 대한 특정 로그인 액세스 권한을 부여합니다.Grant the specific login access to the named database. 다음 예에서는 Adventure-Works\Larry 데이터베이스에 대한 로그인 msdb 액세스 권한을 부여합니다.The following example grants the login Adventure-Works\Larry access to the msdb database.

    USE msdb ;USE msdb ;

    GOGO

    GRANT CONNECT TO [Adventure-Works\Larry] ;GRANT CONNECT TO [Adventure-Works\Larry] ;

  • 게스트 사용자에 대해 오류 메시지에 명명된 데이터베이스에 대한 CONNECT 권한을 부여합니다.Grant the CONNECT permission to the database named in the error message for the guest user. 다음 예에서는 사용자 CONNECT에 대해 msdb 데이터베이스에 대한 guest 권한을 부여합니다.The following example grants the CONNECT permission to the msdb database for the user guest.

    USE msdb ;USE msdb ;

    GOGO

    GRANT CONNECT TO guest ;GRANT CONNECT TO guest ;

  • 사용자를 인증한 데이터베이스에 TRUSTWORTHY 속성을 사용하도록 설정합니다.Enable the TRUSTWORTHY property on the database that has authenticated the user.

    ALTER DATABASE AdventureWorks SET TRUSTWORTHY ON;