Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » MobiLink - 客户端管理 » 用于 MobiLink 的 SQL Anywhere 客户端 » SQL Anywhere 客户端 » 同步启动

 

基于角色的访问控制和同步的安全注意事项

用户要运行同步,必须被授予 SYS_RUN_REPLICATION_ROLE 系统角色。SYS_RUN_REPLICATION_ROLE 授予用户系统特权,但这些特权仅在用户通过验证工具(如 dbmlsync 或 SQL Remote)登录时使用。这与 REMOTE DBA 的工作方式类似。

缺省情况下,SYS_RUN_REPLICATION_ROLE 系统角色包括 SYS_AUTH_DBA_ROLE 系统角色。不过,可以从 YS_RUN_REPLICATION_ROLE 系统角色撤消 SYS_AUTH_DBA_ROLE 系统角色。SYS_AUTH_DBA_ROLE 系统角色是唯一能够从 SYS_RUN_REPLICATION_ROLE 系统角色撤消的权限。

SYS_AUTH_DBA_ROLE 系统角色具有的权限通常比同步所需的权限多。要想设置更为安全的同步环境,请使用以下方法之一:

  • 从 SYS_RUN_REPLICATION_ROLE 系统角色撤消 SYS_AUTH_DBA_ROLE,然后授予以下系统特权:

    • INSERT ANY TABLE
    • UPDATE ANY TABLE
    • DELETE ANY TABLE
    • ALTER ANY TABLE
    • EXECUTE ANY PROCEDURE
    • 挂接中的语句所需的任何系统特权。
    • 用于定义脚本式上载的存储过程中包含的语句所需的任何系统特权。

    此方法的优点是:简单,并且符合以下事实:用户只有通过验证工具(如 dbmlsync 或 SQL REMOTE)建立连接时,才能使用这些系统级特权。此方法的缺点是:与严格按照同步所需的特权进行授权相比,SYS_RUN_REPLICATION_ROLE 系统角色会被授予更多的特权。该系统角色将被授予对所有表的 INSERT、UPDATE、DELETE 和 ALTER 特权以及对所有过程的 EXECUTE 特权,而它只需要对几个表和过程具有这些特权。

  • 从 SYS_RUN_REPLICATION_ROLE 系统角色撤消 SYS_AUTH_DBA_ROLE,创建具有 SYS_RUN_REPLICATION_ROLE 系统角色的用户扩展角色,并将该用户扩展角色授予任何您希望能同步数据库的用户。将以下对象级特权授予用户扩展角色:

    • 对要同步的所有表的 INSERT、UPDATE、DELETE 和 ALTER 特权。
    • 对所有挂接过程的 EXECUTE 特权,以及对用于定义脚本式上载的存储过程的 EXECUTE 特权。
    • 对表 dbo.synchronize_results 和 dbo.synchronize_parameters 的 SELECT、INSERT、UPDATE 和 DELETE 特权。仅当使用 SQL SYNCHRONIZE 语句时才需要这些特权。
    • 挂接中的语句所需的任何特权。
    • 用于定义脚本式上载的存储过程中包含的语句所需的任何特权。

    此方法的优点是:您可以对要授予用户的特权进行非常精确的控制。但是,不管用户通过什么方式进行登录,授予用户的特权都可供用户使用。用户不只是局限于通过 dbmlsync 和 SQL Remote 建立连接的用户。

 另请参见
 示例