Date: Fri, 15 Feb 2002 17:09:55 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です、こんにちは
-----Original Message-----
From: H.Mizuguchi [mailto:who@example.co.jp]
Sent: Friday, February 15, 2002 2:53 PM
To: who@example.ne.jp
Subject: [ml-msde-beg:00066] ユーザー権限の作成方法について
>データベース DBSub とユーザー DTReader を作成
DBSubデータベースの中にビュー表
Select A, B, D From DBMain..tMember
を作成しても、DBMain側でその許可設定をしなければ実行できません。
>DTReader でログインし Select * From vData を実行すると、「サーバー
> ユーザー 'DTReader' は、データベース 'DBMain' では有効なユーザー
>ではありません。」とエラーが表示されてしまいます。
一般的に、データベースAの中から、データベースB側の管理者の知らない
間にテーブルのデータが読み取られると、困ります。
ですから、このようなエラーが表示されます。
ビュー表のセキュリティ権限がベーステーブル表より優先される話は
同一データベース内に限ったことです。
解決策としては、
DBMainデータベースに、DTReaderログインに対応するデータベース
ユーザを登録して、そのデータベースユーザにSELECT権限を与える
必要があります。
GuestユーザをDBMainデータベースに登録すれば、Guestユーザの
権限範囲内でDBMainデータベースの操作ができますが、今回は
セキュリティ設定を強化する話なので、Guestユーザは無理です。
つまりDBSubデータベースだけでメンテナンスすることは無理です。
どうしても簡単に済ませたい場合は、アプリケーションロールを登録
する方法があります。
DBMainデータベースに、アプリケーションロールAPRを登録して、
ロールAPRに、列に対するSELECT権限を付与します。
アプリケーションロールのパスワードを知っているクライアントだけが
アプリケーションロールに移行することができますので、その列を
見ることができます。
但し一旦アプリケーションロールに移行すると、戻ることは出来ません。
またそのクライアントに与えられている通常のセキュリティ権限は
すべて無視され、アプリケーションロールに移行するので、アプリケー
ションロールのセキュリティ設定を行なうのは面倒です。
通常のデータベ−スロールでも、同じようにセキュリティ管理をする
ことができますがデータベースユーザの登録や削除などのメンテナンス
業務が伴います。
------------------------------------
(株)日本技術ソフト開発
堀川 明 (Akira Horikawa)
02月15日(金曜日) 17時08分記
mailto:who@example.ne.jp
http://www.horikawa.ne.jp/msde/
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|