【2014/1/30 記事改訂】
DBMotoで使用するSQL Serverユーザに必要な権限は下記の通りです。
ユーザ名を「dbmoto」とした場合の例となります。
■SQL Server Management Studioから簡易的に設定する場合
●テーブル用(ソース・ターゲット共通)
1. SQL Server Management Studioからデータベースに接続し、セキュリティ⇒ログイン⇒新しいログイン を選択します。
2. 認証方法は「SQL Server認証」を必ず選択してください。
3. ユーザマッピングの画面にて権限を付与したいレプリケーション対象のデータベース(スキーマ)にチェックを入れ、データベースロールにて「db_owner」にチェックを入れます。
※画面例ではVeeamBaukupというデータベースに対して権限を付与しています。
※レプリケーション対象のデータベースすべてに設定を行ってください。
※トランザクションレプリケーション(ミラーリング・シンクロナイゼーション)で、トリガーを使用する場合にはトリガーを配置するデータベースに対しても設定を行ってください。
●ディストリビュータ用
トランザクションレプリケーション(複製元ソース)でディストリビュータを使用する場合には、上記のテーブル専用ユーザとは別にsysadmin権限を持ったユーザが必要になります。
ユーザ作成画面にて、サーバーロールを選択し、サーバーロールで「sysadmin」にチェックを入れてユーザを作成してください。
■コマンドラインから最小限の権限を設定する場合:
●ミラーリング複製元ソース用
<※トリガー使用の場合>
// ログイン作成
>create login dbmoto with password = ‘dbmoto’;
// 使用データベース(テーブル用)※データベース名をclimbとする
>use climb;
// ユーザ作成
>create user dbmoto;
// セッション権限
>grant connect to dbmoto;
// 読み取り権限
>exec sp_addrolemember ‘db_datareader’, ‘dbmoto’; 又は
>grant select on schema::dbo to dbmoto; 又は
>grant select on dbo.テーブル名 to dbmoto;
// トリガー作成削除権限
>grant alter on schema::dbo to dbmoto;
>grant create table to dbmoto;
// 使用データベース(トリガーログテーブル用)※データベース名をdbmtrgとする
>use dbmtrg;
// ユーザ作成
>create user dbmoto;
// セッション権限
>grant connect to dbmoto;
// 読み取り権限
>exec sp_addrolemember ‘db_datareader’, ‘dbmoto’; 又は
>grant select on schema::dbo to dbmoto; 又は
>grant select on dbo.テーブル名 to dbmoto;
// テーブル作成削除権限
>grant alter on schema::dbo to dbmoto;
>grant create table to dbmoto;
// 編集権限
>exec sp_addrolemember ‘db_datawriter’, ‘dbmoto’ 又は
>grant insert, update, delete on schema::dbo to dbmoto;
<※ディストリビュータ使用の場合>
// テーブル用ログイン作成
>create login dbmoto with password = ‘dbmoto’;
// 使用データベース(テーブル用)※データベース名をclimbとする
>use climb;
// ユーザ作成
>create user dbmoto;
// セッション権限
>grant connect to dbmoto;
// 読み取り権限
>exec sp_addrolemember ‘db_datareader’, ‘dbmoto’; 又は
>grant select on schema::dbo to dbmoto; 又は
>grant select on dbo.テーブル名 to dbmoto;
// ディストリビュータ用ログイン作成
>create login dbmsa with password = ‘dbmsa’;
※トランザクションレプリケーション(複製元ソース)でディストリビュータを使用する場合には、テーブル専用ユーザとは別にsysadmin権限を持ったユーザが必要になります。 ここではユーザ名をdbmsaとしています。
// sysadmin 権限
>exec sp_addsrvrolemember ‘dbmsa’, ‘sysadmin’;
●ミラーリング複製先ターゲット用
// ログイン作成
>create login dbmoto with password = ‘dbmoto’;
// 使用データベース(テーブル用)※データベース名をclimbとする
>use climb;
// ユーザ作成
>create user dbmoto;
// セッション権限
>grant connect to dbmoto;
// 読み取り権限
>exec sp_addrolemember ‘db_datareader’, ‘dbmoto’; 又は
>grant select on schema::dbo to dbmoto; 又は
>grant select on dbo.テーブル名 to dbmoto;
// 編集権限
>exec sp_addrolemember ‘db_datawriter’, ‘dbmoto’ 又は
>grant insert, update, delete on schema::dbo to dbmoto;
// テーブル作成・TRUNCATE権限
>grant alter on schema::dbo to dbmoto;
>grant create table to dbmoto;
関連したトピックス
- DBMotoレプリケーションに必要なOracleユーザ権限
- Oracleトランザクションセットアップ例(Log ReaderまたはLog Server Agent)[Syniti Data Replication]
- DBMotoレプリケーションに必要なOracle 12c(PDB/CDB)権限
- DBMotoレプリケーションに必要なMySQLユーザ権限
- Syniti(旧DBMoto)レプリケーションに必要なOracleユーザ権限 Trigger使用時
- DBMotoレプリケーションに必要なPostgreSQLユーザ権限
- GlueSyncでNoSQL活用を加速:導入編
- [Ritmo/i] AS/400接続用サンプルC#プログラム
- SQL Serverのビューをレプリケーションする場合の注意点【リアルタイムレプリケーションツールDBMoto】
- DBMotoによるInformixのデータ連携について