Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
すでにこのコンピュータで実行されている dbmlsync サーバとの接続を開きます。
public virtual bool Connect( const char * host, unsigned port, const char * uid, const char * pwd )
host この値は予約されています。NULL を使用します。
port dbmlsync サーバが受信している TCP ポート。StartServer メソッドを使用して指定した port 値と同じ port 値を使用します。
uid 同期されるリモートデータベースに対する DBA 権限または REMOTE DBA 権限を持つ、有効なデータベースユーザ ID。
pwd uid で指定されたユーザのデータベースパスワード。
サーバへの接続が確立された場合は true、確立されなかった場合は false を返します。false が返されたときは、GetErrorInfo メソッドを呼び出して、失敗に関する詳細な情報を取得できます。
データベース userid およびパスワード (server_userid など) を提供する接続文字列を使用して、(コマンドラインまたは StartServer メソッドで) Dbmlsync サーバを起動します。さらに、Dbmlsync API の Connect メソッドは、有効なデータベース userid (client_userid など) を必要とします。
Client_userid は、このクライアントにデータベースを同期するための十分なパーミッションがあるかどうかを検証するためだけに使用されます。同期が実行されるとき、server_userid が使用されます。
SQL Anywhere 12 以前では、client_userid と server_userid の両方で DBA または REMOTE DBA パーミッションが必要でした。
SQL Anywhere 16 以降では、server_userid が同期に十分な権限を持っている必要があります。最低でも、server_userid には SYS_RUN_REPLICATION_ROLE システムロールが必要ですが、同期できるために他の権限が必要になることがあります。Client_userid は、次のいずれかになっている必要があります。
server_userid と同じであるか、
SYS_AUTH_DBA_ROLE システムロールを持っているか、
server_userid に基づくユーザ拡張ロールを持っている (CREATE ROLE FOR USER server_userid、GRANT server_userid to client_userid など)。
最後のオプションが、client_userid に少なくとも server_userid と同じ数のシステム権限があることを確認している間、server_userid がロールにオブジェクトレベルの権限を付与されていず、したがって client_userid にはこれらの権限がないということもありえます。これらの権限が同期時に使用される場合、client_userid は同期を実行するための権限を効率的に増やします。これを許容できない場合、すべての server_userids オブジェクトレベル権限がユーザ拡張ロールに付与されていることを確認します。