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 (Deutsch) » MobiLink - Clientadministration » SQL Anywhere-Clients für MobiLink » SQL Anywhere-Clients » Initiieren einer Synchronisation

 

Sicherheitshinweise zu rollenbasierter Zugriffssteuerung und Synchronisation

Ein Benutzer muss SYS_RUN_REPLICATION_ROLE haben, um die Synchronisation ausführen zu können. Mit SYS_RUN_REPLICATION_ROLE werden einem Benutzer Systemprivilegien erteilt. Diese Privilegien können jedoch nur genutzt werden, wenn sich der Benutzer über ein authentifiziertes Tool wie dbmlsync oder SQL Remote angemeldet hat. Dies funktioniert ähnlich wie in früheren Versionen bei REMOTE DBA.

Die SYS_RUN_REPLICATION_ROLE-Systemrolle umfasst standardmäßig die SYS_AUTH_DBA_ROLE-Systemrolle. Die SYS_AUTH_DBA_ROLE-Systemrolle kann der SYS_RUN_REPLICATION_ROLE-Systemrolle entzogen werden. Die SYS_AUTH_DBA_ROLE-Systemrolle ist die einzige Berechtigung, die aus der SYS_RUN_REPLICATION_ROLE-Systemrolle entfernt werden kann.

Die SYS_AUTH_DBA_ROLE-Systemrolle hat normalerweise umfangreichere Berechtigungen als für eine Synchronisation benötigt werden. Um eine sicherere Synchronisationsumgebung einzurichten, verwenden Sie eine der folgenden Methoden:

  • Entziehen Sie der SYS_RUN_REPLICATION_ROLE-Systemrolle SYS_AUTH_DBA_ROLE und erteilen Sie die folgenden Systemprivilegien:

    • INSERT ANY TABLE
    • UPDATE ANY TABLE
    • UPDATE ANY TABLE
    • DELETE ANY TABLE
    • EXECUTE ANY PROCEDURE
    • Alle Systemprivilegien, die für Anweisungen in Hooks erforderlich sind.
    • Alle Systemprivilegien, die für Anweisungen in gespeicherten Prozeduren erforderlich sind, mit denen skriptgesteuerte Uploads definiert werden.

    Die Vorteile dieser Methode sind ihre Einfachheit und die Tatsache, dass diese Privilegien auf Systemebene nur genutzt werden können, wenn der Benutzer über ein authentifiziertes Tool wie dbmlsync oder SQL REMOTE verbunden ist. Der Nachteil dieser Vorgehensweise besteht darin, dass die SYS_RUN_REPLICATION_ROLE-Systemrolle mehr Privilegien erhält als für die Synchronisation erforderlich. Sie erhält die Privilegien INSERT, UPDATE, DELETE und ALTER für alle Tabellen und EXECUTE für alle Prozeduren, obwohl sie diese Privilegien nur für wenige Tabellen und Prozeduren benötigt.

  • Entziehen Sie der SYS_RUN_REPLICATION_ROLE-Systemrolle SYS_AUTH_DBA_ROLE, erstellen Sie eine benutzererweiterte Rolle, die die SYS_RUN_REPLICATION_ROLE-Systemrolle hat, und weisen Sie diese benutzererweiterte Rolle allen Benutzern zu, denen die Synchronisation der Datenbank erlaubt werden soll. Erteilen Sie der benutzererweiterten Rolle die folgenden Privilegien auf Objektebene:

    • INSERT, UPDATE, DELETE und ALTER für alle Tabellen, die synchronisiert werden sollen.
    • EXECUTE für alle Hook-Prozeduren und gespeicherten Prozeduren, mit denen skriptgesteuerte Uploads definiert werden.
    • SELECT, INSERT, UPDATE und DELETE für die Tabellen dbo.synchronize_results und dbo.synchronize_parameters. Dies ist nur erforderlich, wenn die SQL-Anweisung SYNCHRONIZE verwendet wird.
    • Alle Privilegien, die für Anweisungen in Hooks erforderlich sind.
    • Alle Privilegien, die für Anweisungen in gespeicherten Prozeduren erforderlich sind, mit denen skriptgesteuerte Uploads definiert werden.

    Der Vorteil dieser Vorgehensweise besteht darin, dass Sie eine sehr genaue Kontrolle über die Privilegien haben, die dem Benutzer erteilt werden. Die erteilten Privilegien stehen den Benutzern jedoch unabhängig davon zur Verfügung, wie sie angemeldet sind. Die Benutzer sind nicht auf Verbindungen beschränkt, die durch dbmlsync und SQL Remote hergestellt wurden.

 Siehe auch
 Beispiele