アクセスを許可されたログインを作成したい
すべての定義を表示
すべてのテーブルのすべてのレコードを選択
私には、各データベースにログインを割り当てて、それをカスタムdbロールまたは各dbのdb_datareaderのようなデフォルトのdbロールに追加するのは、オーバーヘッドが大きすぎるようです。
代わりに、ユーザー定義のサーバーロールを使用しようとしました。
しかし、必要な権限をユーザー定義のサーバーロールに割り当てて、すべてのデータベースの定義とdb_datareaderを表示できるようにするにはどうすればよいでしょうか。
これは可能ですか?
すべてのデータベースにアクセスするには、CONNECT ANY DATABASE
権限を付与する必要があります。
すべての定義を表示するには、VIEW ANY DEFINITION
権限を付与する必要があります。
すべてのユーザーテーブルからすべてのデータを選択するには、SQL Server 2014以降でSELECT ALL USER SECURABLES
を付与できますが、すべてのデータベースからのみデータを選択できますアクセス可能、つまりCONNECT ANY DATABASE
なしそれはあなたに何も与えません。
したがって、SQL Server 2014以降を使用している場合でも、必要なことを行うにはつすべてのアクセス許可を与える必要があります。
CONNECT ANY DATABASE
VIEW ANY DEFINITION
SELECT ALL USER SECURABLES
VIEW ANY DATABASE
は既にpublicに付与されているため、付与する必要はありません。