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 方法所指定的相同端口值。
uid 在将要被同步的远程数据库上的具有 DBA 或 REMOTE DBA 权限的有效数据库用户 id。
pwd 由 uid 指定的用户的数据库口令。
已建立与此服务器的连接时返回 true;否则返回 false。返回 false 时,您可调用 GetErrorInfo 方法获取有关失败的详细信息。
使用提供了数据库用户 ID 和口令的连接字符串(例如 server_userid)启动 Dbmlsync 服务器(使用命令行或 StartServer 方法)。此外,Dbmlsync API 的 Connect 方法需要有效的数据库用户 ID(例如 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_userid 对象级特权都授予其用户扩展角色。