管理者以外にレプリケーション モニタの使用を許可する方法 (レプリケーション Transact-SQL プログラミング)
レプリケーション トポロジを監視する権限は、ディストリビューション データベースの固定サーバー ロール sysadmin、固定データベース ロール db_owner、および固定データベース ロール replmonitor に限定されています。システム ストアド プロシージャを使用すると、固定データベース ロール replmonitor に対し、プログラムからユーザーを追加できます。
固定データベース ロール replmonitor にユーザーを追加するには
ディストリビュータ側のディストリビューション データベースに対して、sp_helpuser (Transact-SQL) を実行します。対象のユーザーが結果セットの UserName に含まれていなかった場合は、そのユーザーに対し、CREATE USER (Transact-SQL) ステートメントを使って、ディストリビューション データベースへのアクセスを許可する必要があります。
ディストリビュータのディストリビューション データベースで sp_helprolemember (Transact-SQL) を実行します。このとき、@rolename パラメータには replmonitor を指定します。対象のユーザーが結果セットの MemberName に含まれていた場合、そのユーザーは既にこのロールに所属しています。
ユーザーが replmonitor ロールに属していなかった場合は、ディストリビュータのディストリビューション データベースで sp_addrolemember (Transact-SQL) を実行します。@rolename には replmonitor を、@membername には、追加するデータベース ユーザーの名前または Microsoft Windows ログイン名を指定します。
固定データベース ロール replmonitor からユーザーを削除するには
ユーザーが replmonitor ロールに属しているかどうかを確認するには、ディストリビュータのディストリビューション データベースで sp_helprolemember (Transact-SQL) を実行します。このとき、@rolename に replmonitor を指定します。対象のユーザーが結果セットの MemberName に含まれていなかった場合、そのユーザーは現在、このロールに所属していません。
ユーザーが replmonitor ロールに属していた場合は、ディストリビュータのディストリビューション データベースで sp_droprolemember (Transact-SQL) を実行します。@rolename には replmonitor を、@membername には削除するデータベース ユーザーの名前または Windows ログイン名を指定します。