• 検索結果がありません。

4.3 SQL ステートメントでデータベース ユーザーの作成

Security ID)を利用して行われていることが原因で発生しています。SID は、database_principals ビューで参照する ことができます(ログ゗ン ゕカウントに割り当てられた SID は、server_principals ビューで参照することができま す)。

SQL Server 認証用のログ゗ン ゕカウントに割り当てられる SID は、マシンが異なると、違うものが割り当てられる ので、開発機と本番環境(移行元と移行先)では、ログ゗ン ゕカウントの SID が異なることになります。これによっ て、不明なデータベース ユーザーが発生し、このままでは、該当データベース ユーザーが利用できない状態となります

(データベースへの接続が行えません)。

sp_change_users_login

不明なデータベース ユーザーが存在するかどうかを確認するには、次のように sp_change_users_login システム ストゕド プロシージャを利用します。

USE データベース名

EXEC sp_change_users_login 'Report'

不明なデータベース ユーザーが存在した場合に、それを解消するには、次のように sp_change_users_login システ ム ストゕド プロシージャを実行します。

USE データベース名

EXEC sp_change_users_login 'Update_One', '不明なデータベースユーザー名', '新しいログインアカウント名' Update_One を指定して sp_change_users_login を実行すると、不明なデータベース ユーザーの古い SID(移行元 の SID)を新しいログ゗ン ゕカウントの SID(移行先の SID)へ更新し、再マッピングをしてくれるようになります。

これで不明なデータベース ユーザーが解消されて、移行元と同じようにデータベース ユーザーを利用できるようになり ます。

■ 同じパスワード/SID のログイン アカウントの作成: sp_help_revlogin

sp_change_users_login によるログ゗ン ゕカウントの再マッピングは、データベース ユーザーの数が多い場合には、

大変な作業です。これを解決するには、同じパスワードで、かつ同じ SID のログ゗ン ゕカウントを作成することです。

これを行うには、マ゗クロソフトのサポート技術情報 (KB: Knowledge Base) の文書番号 918992 で提供されている

「sp_help_revlogin」というストゕド プロシージャを使用します。

KB918992: SQL Server 2005 のインスタンス間でログインおよびパスワードを転送する方法 http://support.microsoft.com/kb/918992/ja

この文書で提供されるスクリプトを丸ごとコピーし、Management Studio のクエリ エデゖタへ貼り付けて実行する と、sp_help_revlogin ストゕド プロシージャを作成することができます。作成後は、以下のように実行すれば、同一 のパスワード/SID のログ゗ン ゕカウントを作成するためのスクリプト (CREATE LOGIN ステートメント) が生成さ れます。

EXEC master..sp_help_revlogin

ST S TE E P P 5. 5 . オブ オ ブジ ジェ ェク クト ト権 権限 限と と デー デ ータ タベ ベー ース ス ロー ロ ール ル

この STEP では、オブジェクト権限とデータベース ロール、スキーマについて説 明します。

この STEP では、次のことを学習します。

オブジェクト権限

固定データベース ロール

オブジェクト権限の状態(GRANT / DENY / REVOKE)

ユーザー定義データベース ロール

データベース レベルの権限

スキーマ

ビューを利用したセキュリテゖ強化

スキーマが異なる場合のオブジェクト権限

5.1 オブジェクト権限