0

私には、自分にも権限があるDatabaseAにアクセスしようとしているユーザーがいますが、次のエラーが発生し続けます(DatabaseAにはアクセスできますが、DatabaseBへの権限はありません)。

The server principal "Domain\Username" is not able to access the database "DatabaseB" under the current security context.

彼はDatabaseBにアクセスできないため、最初はこれが理にかなっています。残念ながら、彼はDatabaseBを呼び出していません。

  • これがプロファイラーを使用してサーバーを通過し、フィルターを使用しないステートメントレベルまで下がるのを見てきました。彼の接続とエラーが発生したことはわかりますが、DatabaseBが何らかの形でヒットしている兆候はありません。

  • 彼が実行しようとしているストアドプロシージャを確認しました。これには、DatabaseA内のテーブルのみにアクセスする単純なselectステートメントが含まれています。

  • 私は彼にDatabaseBへのアクセスを許可することでこれを回避することができましたが、これは実行可能な長期的な解決策ではありません。

  • ユーザーが孤立していないことを確認しました

  • 私はグーグルを検索しました、そしてこのエラーに関してたくさんの投稿があります、しかしこのシーンリオを説明するものはありません。

誰かがこれを見たり、それについての考えを持っているなら、私は本当にそれを感謝します!

4

1 に答える 1

2

接続でデータベースが指定されていない場合、ユーザーはデフォルトのデータベースに接続しています。デフォルトのデータベースについては、SQLServerのログイン情報を確認してください。デフォルトはおそらくDatabaseBに設定されていますが、ログインはデータベース内のユーザーではありません。

オブジェクトブラウザを使用して情報を表示できます。SQL Serverに接続し、ツリーを[セキュリティ]> [ログイン]に移動して、ログインを選択します。右クリックしてプロパティを選択します。デフォルトのデータベースは、フォームの下部の[全般]タブの近くにあります。

于 2013-01-18T23:29:46.187 に答える