2011-08-02 7 views
1

以下のコードを実行した後に特定のデータベースのビューを許可する方法はありますか?MS SQL 2008 RC2を使用しています。GRANT VIEW on 1データベース

REVOKE VIEW ANY DATABASE FROM <login>; 

おかげで私の知る限りでは

答えて

3

REVOKE勝ち、あなたがVIEW ANYを付与してから、個別に他のすべてのデータベースに否定する必要があるかもしれません。これはあまり楽しいことではありませんが、あなたはそれを一つずつ行うことなくこれを自動化することができます。

+0

ご返信ありがとうございます。あなたはそれが実際に私が探しているものなので、単一のデータベースのビューを許可/拒否するために使用するSQL文を知っていますか? –

+0

あなたがアクセスしたいデータベースでは 'CREATE USER FOR LOGIN ;'になり、作成されたデータベースでは 'DROP USER ;'になりますが、今は拒否したい独自のスキーマを持っているか、オブジェクトを作成しています)。もちろん、これはデータベースに入ってから実際にどのような権限を持っているのかは考慮されていませんが、開始する必要があります。私の制限されたテストから、DBレベルのユーザは 'REVOKE ANY'をオーバーライドするようです(そして、特定のデータベースでは' GRANT ANY'が不在に優先します)が、あなたのシステムでそれをテストしたいと思うでしょう。 –

+0

私のシナリオは以下の通りです。私は2つのデータベースとTestUserをサーバーレベルで持っています。私は 'TestUserから任意のデータベースを見る 'を実行しました。ユーザーが管理スタジオを使用してログインすると、データベースは表示されません(どちらが良いか)。このユーザーを自分のデータベースの下に追加して、そのデータベースをユーザーに見せたいと思っています.SQL管理スタジオに接続するときに単一のデータベースをVisiBilyにするためのコマンドが見つからないため、ここにいません。 –

関連する問題