- - PR -
SQLServerで自分のストアドなのにオーナ名が省略できない
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-02-09 19:00
こんにちは。お世話になってます。
SQL Serverでは、テーブル名やストアドなどのオブジェクトを指定する場合、 [DB名].[オーナ名].[オブジェクト名] と指定しますが、自分のオブジェクトだと [DB名].[オーナ名]は省略できます。 で、今まで上記のようにオーナ名を省略して動いていたプログラムが、データベースの バックアップを取り、別PCにリストアして動かすと、動かなくなってしまいました。 クエリアナライザで仮に動かしてみると、オーナ名を省略してストアドを実行してみる とNGで、オーナ名をきちんと付加すると正常に動きます。 何かの拍子に、オーナが変わったのかと思い、そのストアド類のオーナを調べたら、 確かに自分のオブジェクトでした。 その他、権限などあらゆるところを見直したのですが、今まで正常に動いていたもの と今回正常に動かないものでは違いは見られません。 今まで使っていたデータベースで自分のオーナ名を省略して動いていたなのに、なぜ か突然オーナ名を省略すると、確かに自分の持ち物なのに、オブジェクトがないとい うようなエラーで実行できません。 このような現象を体験されたかたおられませんでしょうか? |
|
投稿日時: 2005-02-09 19:27
多分ですが・・・。
最初のPCとリストア後の別PCでのSIDが違っているんじゃないでしょうか? sp_helpuser [オーナー名]を実行してみてください。 |
|
投稿日時: 2005-02-09 20:13
返答ありがとうございます。
いつも、リストア時には sp_change_users_login でUIDをマッピングしなおして いまして、今回も正常に処理されているのですが・・・。 いつもなら、マッピングできていなかったらログインすらできなく、今回は正常に 行えてログインもできているのは確認できています。 クエリアナライザのオブジェクト一覧にも、エンタープライズマネージャでもそれらの オブジェクトは、そのユーザの持ち物として表示されてます。 一度、momotaroさんの言われるように、 sp_helpuser と、 select * from dbo.sysobjects where xtype = 'P' を流してみて、UIDが一致しているかを確認してみます。 |
|
投稿日時: 2005-02-14 16:45
こんにちは。お騒がせしました。
sp_helpuser と、select * from dbo.sysobjects where xtype = 'P' を流してみて、UIDを見比べてみたところ同じでした。 再度、同じDBを同じ手順でリストアしてみたら、今度は問題なくいけました。 なんだったんだろう・・・??? |
1
