web-dev-qa-db-ja.com

すべてのログイン/ユーザー/テーブル/スキーマの権限をスクリプト化する方法

長年にわたり、私は無数のスクリプトとアプリケーションを使用してSQL Serverデータベースのすべての権限を生成してきました。私は有料ツールと無料ツールの両方を使用しました。私はそれらのどれもがすべての場合において正確であるとは思えないように感じます。特定のデータベースのすべての権限を生成する方法と、スクリプトが正しく、別のインスタンスからのバックアップ/復元後に使用できることを確信しているだけです。信頼できる方法を定期的に使用している人はいますか

7
SomeGuy

私が書いて定期的に使用するストアドプロシージャがいくつかあります。

それぞれに3つの出力があります。

  • Principals:データベース/サーバープリンシパルのリストと、作成/削除スクリプトを含む関連情報。
  • Role membership:各データベース/サーバープリンシパルが属している役割のリストと、追加/削除スクリプト。
  • Permissions:各データベース/サーバープリンシパルの個々の権限(EXECUTE、INSERT、UPDATE、CONNECTなど)のリスト。

明らかに、Srv spはサーバープリンシパル用で、DB spはデータベースレベルプリンシパル用です。 DB spには、データベース名の「すべて」オプションもあります。このオプションを使用すると、すべてのデータベースのすべての権限が実行およびプルされます。

注:これは元々調査ツールとして意図されていたため、データを解析するためのかなりの数のオプションがあります。ロールのみ、ロール以外のすべて、特定のプリンシパル名など.

5
Kenneth Fisher

sp_help_revlogin

参照: MSDN上のSQL Serverのインスタンス間でログインとパスワードを転送する方法

去年の夏、私にはかなりうまくいきました。

2
Michael P