MSSQLSERVER_916
適用対象:SQL Server
詳細
属性 | 値 |
---|---|
製品名 | SQL Server |
イベント ID | 916 |
イベント ソース | MSSQLSERVER |
コンポーネント | SQLEngine |
シンボル名 | NOTUSER |
メッセージ テキスト | 現在のセキュリティ コンテキストでは、サーバー プリンシパル "%.*ls" はデータベース "%.*ls" にアクセスできません。 |
説明
ログインに、指定されたデータベースに接続するために必要な権限がありません。 この SQL Server インスタンスに接続することができ、データベースの特定の権限を持っていないログインには、guest ユーザーの権限が与えられます。 これは、1 つのデータベース内のユーザーが、権限を持たない別のデータベースに接続することを防ぐためのセキュリティ措置です。 このエラー メッセージは、指定されたデータベースに対する CONNECT 権限を guest ユーザーが持っていないため、TRUSTWORTHY プロパティが設定されないときに生じる場合があります。 このエラー メッセージは、指定されたデータベースに対する CONNECT 権限を guest ユーザーが持っていないときに生じる場合があります。
msdb データベースに対する CONNECT 権限が拒否または取り消された場合、オブジェクト エクスプローラーから各データベースのポリシー ベースの管理の状態を表示しようとすると、SQL Server Management Studio でこのエラーが発生する可能性があります。 オブジェクト エクスプローラーでは、現在のログインの権限を使用して、この情報を取得するために msdb データベースに対してクエリを実行します。このとき、エラーが発生します。 また、次のエラー メッセージも表示されます。
この要求のデータを取得できませんでした。 (Microsoft.SqlServer.Management.Sdk.Sfc)
ユーザーの操作
警告
このセキュリティ措置を回避する前に、各種データベースで認証されているユーザーについて明確に把握している必要があります。 次の方法を実行すると、あるデータベースへの接続権限を持つユーザーが他のデータベースに接続できるようになり、悪意のあるユーザーにデータが公開される可能性があります。 包含データベースが有効化されている場合は、次の手順を実行すると、1 つのデータベースのデータベース所有者が、SQL Server のインスタンス上で別のデータベースへのアクセス権を付与できるようになることがあります。
次のいずれかの方法でデータベースに接続できます。
指定されたデータベースにアクセスするための権限を特定のログインに許可します。 次の例では、
Adventure-Works\Larry
データベースにアクセスするための権限をログインmsdb
に許可します。USE msdb ; GO GRANT CONNECT TO [Adventure-Works\Larry] ;
エラー メッセージで指定されたデータベースに対する CONNECT 権限を guest ユーザーに許可します。 次の例では、
CONNECT
データベースに対するmsdb
権限を、guest
ユーザーに許可します。USE msdb ; GO GRANT CONNECT TO guest ;
ユーザーを認証したデータベースの TRUSTWORTHY プロパティを有効にします。
ALTER DATABASE AdventureWorks SET TRUSTWORTHY ON;
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示