0

RDBMSとしてSQLServer2008を使用しており、所有者としてdboではなく別のユーザーを持つデータベースがあります。

問題は、あるマシンで、その所有者が言及されない限り、ストアドプロシージャを実行できないことです。

このユーザーを使用してデータベースに接続し、次のコマンドを実行しようとすると、次のようになります。

exec ourSP

「SPが見つかりませんでした」というエラーが発生しますが、これは正常に機能します。

exec user.ourSP

誰かがそのような奇妙な行動につながる可能性があることを知っていますか?

4

2 に答える 2

0

サーバーセキュリティエリアでユーザーがSysAdminとしてチェックされている場合、データベースへの接続時にdboユーザー名が付けられ、dboのように扱われるようです。

于 2010-06-29T08:04:31.247 に答える
0

おそらくクエリを使用して、接続が確立されているユーザーのデフォルトスキーマを確認してください

select default_schema_name from sys.database_principals where name = '~user_name~'

オブジェクトは、ユーザーの既定のスキーマで検索され、次に dbo で検索されます。2 番目のクエリのように、明示的に名前を付けない限り、他のスキーマは考慮されません。

これに基づいて、a) ユーザーが正しく設定されていないか、b) 期待するユーザーとして接続していない可能性があります。

于 2010-06-16T21:37:54.890 に答える