- PR -

SQLSERVER2005のデータベース権限質問

1
投稿者投稿内容
yangjiayi
ベテラン
会議室デビュー日: 2007/10/04
投稿数: 59
投稿日時: 2007-12-27 13:04
問題記述:

例えば、A_DATABASEとB_DATABASE、2つデータベースがあります。
A_DATABASEにA_TABLEがあります。
B_DATABASEにB_TABLEがあります。

saログイン名を使って、DEFAULT表示データベースはA_DATABASEになっています。
このまま状態で、
select * from B_TABLE
を実行すると、SQLエラーが出てきて、オブジェクト存在しません。
しかし、select * from B_DATABASE..B_TABLE
を実行すると、エラーなく情報が表示されています。

問題:

select * from B_TABLE
を実行して情報が表示されるようにしたいです。
どう設定すればよいでしょうか。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2007-12-27 13:41
use B_DATABASE; select * from B_TABLE;・・ってことじゃないですね

A_DATABASEの中にB_TABLEという名前の(B_DATABASEの)B_TABLEのViewを作りたい・・ということでしょうか?

[ メッセージ編集済み 編集者: shimix 編集日時 2007-12-27 13:41 ]
yangjiayi
ベテラン
会議室デビュー日: 2007/10/04
投稿数: 59
投稿日時: 2007-12-27 13:46
引用:

shimixさんの書き込み (2007-12-27 13:41) より:
use B_DATABASE; select * from B_TABLE;・・ってことじゃないですね

A_DATABASEの中にB_TABLEという名前の(B_DATABASEの)B_TABLEのViewを作りたい・・ということでしょうか?

[ メッセージ編集済み 編集者: shimix 編集日時 2007-12-27 13:41 ]


use B_DATABASE; select * from B_TABLE;
ということです。
use B_DATABASEを実行しなくても、自動的にSELECTできるようにしたいです。
なんかユーザー権限のマッピングとかの問題でしょうか。

テーブル改造しなくても済む方法を求めたいです。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2007-12-27 14:04
まさかとは思いましたが・・

引用:

yangjiayiさんの書き込み (2007-12-27 13:46) より:
use B_DATABASE; select * from B_TABLE;
ということです。
use B_DATABASEを実行しなくても、自動的にSELECTできるようにしたいです。


A_DATABASEにB_TABLEがなかったら、他のデータベースを検索するようにしたいのですか?B_DATABASEとC_DATABASEにB_TABLEが存在したら、どちらを優先するんでしょう・・。実行時指定もしくはあらかじめ定義しておくかのどちらにしても、明示的に指定すべきだと思いませんか?
yangjiayi
ベテラン
会議室デビュー日: 2007/10/04
投稿数: 59
投稿日時: 2007-12-27 14:13
引用:

A_DATABASEにB_TABLEがなかったら、他のデータベースを検索するようにしたいのですか?B_DATABASEとC_DATABASEにB_TABLEが存在したら、どちらを優先するんでしょう・・。実行時指定もしくはあらかじめ定義しておくかのどちらにしても、明示的に指定すべきだと思いませんか?


ということは、
select実行する前に、
use B_DATABASE
を使うか
select * from B_DATABASE..B_TABLE
を使うか、どっちかでしょう。

現在、saでログインして、
alter user [sa] with default_schema=[dbo]
を実行すると、dbo変更できません
というエラーが出ています。

他の方法はないでしょうか。

[ メッセージ編集済み 編集者: yangjiayi 編集日時 2007-12-27 14:26 ]
よっしー
大ベテラン
会議室デビュー日: 2007/05/17
投稿数: 143
投稿日時: 2007-12-28 11:17
引用:

yangjiayiさんの書き込み (2007-12-27 14:13) より:
alter user [sa] with default_schema=[dbo]



ALTER LOGIN 〜 DEFAULT_DATABASE=〜
では?saのデフォルトデータベースをを変更できるか知りませんが、
データベースを削除したら面倒なことになりますしやめておいたほうが良いです。
そもそもなぜsaを使うのでしょうか?

あと、VIEWよりはSYNONYMの方が良いと思います。
yangjiayi
ベテラン
会議室デビュー日: 2007/10/04
投稿数: 59
投稿日時: 2007-12-28 11:29
引用:


ALTER LOGIN 〜 DEFAULT_DATABASE=〜
では?saのデフォルトデータベースをを変更できるか知りませんが、
データベースを削除したら面倒なことになりますしやめておいたほうが良いです。
そもそもなぜsaを使うのでしょうか?

あと、VIEWよりはSYNONYMの方が良いと思います。



そうですね…
VIEWを使ったほうがよさそうと思います。
この件に関して、提案してみます。
今のところ、元々のSAをRENAMEして、SA->SA_ADMIN
新規SAログインを追加します。

ちなみに、ORACLEでは、A_DATABASEにいても、select * from B_TABLEは可能でしょうか。
よっしー
大ベテラン
会議室デビュー日: 2007/05/17
投稿数: 143
投稿日時: 2007-12-29 16:42
引用:

yangjiayiさんの書き込み (2007-12-28 11:29) より:
引用:

あと、VIEWよりはSYNONYMの方が良いと思います。


そうですね…
VIEWを使ったほうがよさそうと思います。


ちなみに、なぜでしょうか?
1

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