Announcement

Collapse
No announcement yet.

Benutzer wechseln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Benutzer wechseln

    Hallo!

    Ist es möglich in einer Prozedur den Benutzer zu wechseln? Beispielsweise etwas wie:

    CREATE PROCEDURE spConnectTest
    AS

    CONNECT db, user, password;

    SELECT *
    FROM connected_db

    Danke, Bav

  • #2
    Das SQL-Forum lässt jetzt keinen Rückschluss auf deine DB zu, aber falls es sich dabei um den SQL-Server handelt, dann schaue dir mal OPENROWSET im Manual an. Damit kann man zB direkt ein Select auf einer anderen DB auf einem anderen Rechner ausführen, da auch die Login-Daten mitgegeben werden können. Damit sollte es dann aber auch möglich sein, ein Select am gleichen Rechner auf derselben DB aber als anderer User auszuführen.<br>
    bye, Helmu

    Comment


    • #3
      Hallo,

      wenn der MS SQL Server 2005 eingesetzt wird, stehen die folgenden SQL-Erweiterungen zur Verfügung:

      - EXECUTE AS CALLER
      - EXECUTE AS USER='Benutzername'
      - EXECUTE AS SELF
      - EXECUTE AS OWNER
      - EXECUTE AS LOGIN (wechselt das Benutzerkonto)
      - REVERT (aktiviert wird das originale Benutzerkonto)

      Somit kann mitten in einer SQL-Stapelanweisung das Benutzerkonto gewechselt werden:

      EXECUTE AS LOGIN = 'User1'
      SELECT * FROM dbo.xyz
      . . .
      // zurück zum originalen Konto
      REVERT

      Das gleiche Prinzip funktioniert auch beim Zugriff auf externe Datenbank/Server. In diesem Fall stehen die Alternativen <b>EXECUTE AT</b> und <b>CREATE SYNONYM</b> zur Verfügung (bei Letzterm wird ein Aliasname für einen LinkedServer-Eintrag vergeben)

      Comment

      Working...
      X