2017-06-26 7 views
0

インストール時に問題が発生し、エラー"Invalid object name ..."が表示されます。
Windowsユーザーに設定されているデフォルトのスキーマ割り当てを使用しているようではありません。

私はAdventureWorks2012データベースにテストを設定しており、同じ結果が得られています。
Windowsアカウント(AdventureWorks2012データベースの "Person"という既定のスキーマを使用して設定)でインスタンスに接続し、SELECT * FROM Addressというステートメントを実行すると、同じエラーInvalid object name Addressが表示されます。

次へSQLログインを作成し、AdventureWorks2012データベースへのログインをマップし、再度デフォルトのスキーマを "Person"に設定しました。 SQLログインを使用してインスタンスに接続し、コマンドSELECT * FROM Addressを実行すると、クエリは成功し、結果が返されます。
私はSQL 2012とSQL 2014の両方で同じ結果を経験しています。誰かが、デフォルトのスキーマ設定がWindowsユーザーと連携していない理由を教えてください。Windowsユーザーでデフォルトのスキーマが動作しない

+0

Windowsユーザーはsysadminロールのメンバーですか(SELECT USERが 'dbo'を返しますか)。 –

+2

あなたは本当にデフォルトのスキーマに頼るべきではありません。クエリには常にスキーマを指定する必要があります。将来のある時点でデフォルトのスキーマが変更された場合の作業量を考慮してください。 –

+0

@SeanLangeが言っていることをもう一度言います。しかし、私も良い謎を愛しています。問題のWindowsユーザーは、複数のWindowsグループに属していますか?そうであれば、彼らは彼らが属する他のグループの1つからデフォルトスキーマを得る可能性が高い。 –

答えて

0

私の問題を解決しました。デフォルトのスキーマ割り当てが実行され、クエリが正常に完了したので、db_ownerデータベースロールを削除すると、データベースロールdb_ownerのメンバシップはデフォルトでdboスキーマにもなっているようです。

私の問題を考慮していただきありがとうございます。

関連する問題