- PR -

SQLServerで自分のストアドなのにオーナ名が省略できない

1
投稿者投稿内容
maru
ぬし
会議室デビュー日: 2003/01/27
投稿数: 412
投稿日時: 2005-02-09 19:00
こんにちは。お世話になってます。

SQL Serverでは、テーブル名やストアドなどのオブジェクトを指定する場合、
[DB名].[オーナ名].[オブジェクト名] と指定しますが、自分のオブジェクトだと
[DB名].[オーナ名]は省略できます。

で、今まで上記のようにオーナ名を省略して動いていたプログラムが、データベースの
バックアップを取り、別PCにリストアして動かすと、動かなくなってしまいました。

クエリアナライザで仮に動かしてみると、オーナ名を省略してストアドを実行してみる
とNGで、オーナ名をきちんと付加すると正常に動きます。

何かの拍子に、オーナが変わったのかと思い、そのストアド類のオーナを調べたら、
確かに自分のオブジェクトでした。
その他、権限などあらゆるところを見直したのですが、今まで正常に動いていたもの
と今回正常に動かないものでは違いは見られません。

今まで使っていたデータベースで自分のオーナ名を省略して動いていたなのに、なぜ
か突然オーナ名を省略すると、確かに自分の持ち物なのに、オブジェクトがないとい
うようなエラーで実行できません。

このような現象を体験されたかたおられませんでしょうか?
momotaro
会議室デビュー日: 2003/07/23
投稿数: 14
投稿日時: 2005-02-09 19:27
多分ですが・・・。
最初のPCとリストア後の別PCでのSIDが違っているんじゃないでしょうか?
sp_helpuser [オーナー名]を実行してみてください。
maru
ぬし
会議室デビュー日: 2003/01/27
投稿数: 412
投稿日時: 2005-02-09 20:13
返答ありがとうございます。

いつも、リストア時には sp_change_users_login でUIDをマッピングしなおして
いまして、今回も正常に処理されているのですが・・・。

いつもなら、マッピングできていなかったらログインすらできなく、今回は正常に
行えてログインもできているのは確認できています。

クエリアナライザのオブジェクト一覧にも、エンタープライズマネージャでもそれらの
オブジェクトは、そのユーザの持ち物として表示されてます。

一度、momotaroさんの言われるように、 sp_helpuser と、
select * from dbo.sysobjects where xtype = 'P'
を流してみて、UIDが一致しているかを確認してみます。



maru
ぬし
会議室デビュー日: 2003/01/27
投稿数: 412
投稿日時: 2005-02-14 16:45
こんにちは。お騒がせしました。

sp_helpuser と、select * from dbo.sysobjects where xtype = 'P'
を流してみて、UIDを見比べてみたところ同じでした。

再度、同じDBを同じ手順でリストアしてみたら、今度は問題なくいけました。
なんだったんだろう・・・???
1

スキルアップ/キャリアアップ(JOB@IT)