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 » Mobile Link クライアント管理 » Mobile Link 用 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 システムロールが含まれます。ただし、SYS_RUN_REPLICATION_ROLE システムロールから SYS_AUTH_DBA_ROLE システムロールを取り消すことができます。SYS_AUTH_DBA_ROLE システムロールは、SYS_RUN_REPLICATION_ROLE システムロールから削除できる唯一の権限です。

SYS_AUTH_DBA_ROLE システムロールの権限は、通常、同期するのに必要な権限よりも強力です。より安全な同期環境を設定するには、以下のいずれかの方法に従います。

  • SYS_AUTH_DBA_ROLE を SYS_RUN_REPLICATION_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
    • テーブル dbo.synchronize_results とテーブル dbo.synchronize_parameters での SELECT、INSERT、UPDATE、DELETE。これは、SQL SYNCHRONIZE 文を使用する場合にのみ必要です。
    • フックに含まれる文が必要とする任意の権限
    • スクリプト化されたアップロードを定義する場合に使用するストアドプロシージャ内の文が必要とする任意の権限

    この方法の利点は、ユーザに付与する権限を非常に細かく制御できる点にあります。ただし、ユーザは付与された権限を、ログインの方法に関係なく使用できます。ユーザは dbmlsync と SQL Remote によって確立される接続だけに制限されません。

 参照
 例