- - PR -
SQLSERVER2005のデータベース権限質問
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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 を実行して情報が表示されるようにしたいです。 どう設定すればよいでしょうか。 | ||||||||
|
投稿日時: 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 ] | ||||||||
|
投稿日時: 2007-12-27 13:46
use B_DATABASE; select * from B_TABLE; ということです。 use B_DATABASEを実行しなくても、自動的にSELECTできるようにしたいです。 なんかユーザー権限のマッピングとかの問題でしょうか。 テーブル改造しなくても済む方法を求めたいです。 | ||||||||
|
投稿日時: 2007-12-27 14:04
まさかとは思いましたが・・
A_DATABASEにB_TABLEがなかったら、他のデータベースを検索するようにしたいのですか?B_DATABASEとC_DATABASEにB_TABLEが存在したら、どちらを優先するんでしょう・・。実行時指定もしくはあらかじめ定義しておくかのどちらにしても、明示的に指定すべきだと思いませんか? | ||||||||
|
投稿日時: 2007-12-27 14:13
ということは、 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-12-28 11:17
ALTER LOGIN 〜 DEFAULT_DATABASE=〜 では?saのデフォルトデータベースをを変更できるか知りませんが、 データベースを削除したら面倒なことになりますしやめておいたほうが良いです。 そもそもなぜsaを使うのでしょうか? あと、VIEWよりはSYNONYMの方が良いと思います。 | ||||||||
|
投稿日時: 2007-12-28 11:29
そうですね… VIEWを使ったほうがよさそうと思います。 この件に関して、提案してみます。 今のところ、元々のSAをRENAMEして、SA->SA_ADMIN 新規SAログインを追加します。 ちなみに、ORACLEでは、A_DATABASEにいても、select * from B_TABLEは可能でしょうか。 | ||||||||
|
投稿日時: 2007-12-29 16:42
ちなみに、なぜでしょうか? |
1