MSSQLSERVER_916

詳細

製品名

SQL Server

製品バージョン

10.5

製品ビルド番号

10.50

イベント ID

916

イベント ソース

MSSQLSERVER

コンポーネント

SQLEngine

シンボル名

NOTUSER

メッセージ テキスト

現在のセキュリティ コンテキストでは、サーバー プリンシパル "%.*ls" はデータベース "%.*ls" にアクセスできません。

説明

ログインに、指定されたデータベースに接続するために必要な権限がありません。この SQL Server インスタンスに接続することができ、データベースの特定の権限を持っていないログインには、guest ユーザーの権限が与えられます。これは、あるデータベース内のユーザーがアクセス権限を持たない他のデータベースに接続できないようにするためのセキュリティ対策です。このエラー メッセージは、指定されたデータベースに対する CONNECT 権限を guest ユーザーが持っていないため、信頼可能プロパティが設定されないときに生じる場合があります。このエラー メッセージは、指定されたデータベースに対する CONNECT 権限を guest ユーザーが持っていないときに生じる場合があります。

msdb データベースに対する CONNECT 権限が拒否または取り消された場合、オブジェクト エクスプローラーから各データベースのポリシー ベースの管理の状態を表示しようとすると、SQL Server Management Studio でこのエラーが発生する可能性があります。オブジェクト エクスプローラーでは、現在のログインの権限を使用して、この情報を取得するために msdb データベースに対してクエリを実行します。このとき、エラーが発生します。また、次のエラー メッセージも表示されます。

この要求のデータを取得できませんでした。(Microsoft.SqlServer.Management.Sdk.Sfc)

ユーザーの操作

注記注意

このセキュリティ措置を回避する前に、各種データベースで認証されているユーザーについて明確に把握している必要があります。次の方法により、あるデータベース内の権限を持つユーザーに、悪意あるユーザーにデータが公開される可能性のある他のデータベースへの接続を許可できます。

次のいずれかの方法で、データベースに接続できます。

  • 指定されたデータベースにアクセスするための権限を特定のログインに許可します。次の例では、msdb データベースにアクセスするための権限をログイン Adventure-Works\Larry に許可します。

    USE msdb ;

    GO

    GRANT CONNECT TO [Adventure-Works\Larry] ;

  • エラー メッセージで指定されたデータベースに対する CONNECT 権限を guest ユーザーに許可します。次の例では、msdb データベースに対する CONNECT 権限を、guest ユーザーに許可します。

    USE msdb ;

    GO

    GRANT CONNECT TO guest ;

  • ユーザーを認証したデータベースの TRUSTWORTHY プロパティを有効にします。

    ALTER DATABASE AdventureWorks SET TRUSTWORTHY ON;