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

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Datenbankadministration » Datenbank starten und Verbindung mit ihr herstellen » Datenbankserver betreiben » Authentifizierte SQL Anywhere-Anwendungen ausführen » Eine authentifizierte Anwendung entwickeln

 

Die Authentifizierungsanweisung ausführen

Die Art, wie Sie die Anweisung SET TEMPORARY OPTION ausführen, um die Authentifizierungsoption zu setzen, hängt von der verwendeten Programmierschnittstelle ab. Die hier aufgelisteten Signaturen sind keine gültigen Signaturen. Beispiele werden für das Setzen der Authentifizierungsoption mit den folgenden Schnittstellen bereitgestellt:

Sonderzeichen in der Authentifizierungsoption verwenden

Wenn Ihr Firmenname Anführungszeichen, Apostrophe oder andere Sonderzeichen enthält (z.B. Joe's Garage), müssen Sie bei der Erstellung der Authentifizierungsanweisung besonders vorsichtig sein. Die gesamte Reihe der Authentifizierungsoptionen (Company=...;Application=...;Signature=...) ist eine SQL-Zeichenfolge. Die Regeln für Zeichenfolgen in SQL geben vor, dass ein Apostroph bzw. ein Anführungszeichen in der Zeichenfolge verdoppelt werden muss, um akzeptiert zu werden. Zum Beispiel:

SET TEMPORARY OPTION connection_authentication=
   'Company = Joe''s Garage;
    Application = Joe''s Program;
    Signature = 0fa55157edb8e14d818e...';
ODBC

Verwenden Sie folgende Anweisung:

SQLExecDirect(
    hstmt,
    "SET TEMPORARY OPTION connection_authentication=
       'Company=MyCo;
        Application=MyApp;
        Signature=0fa55159999e14d818e...';",
    SQL_NTS
);

Die Zeichenfolge muss in einer Zeile eingegeben werden, oder Sie müssen sie durch eine Verkettung erstellen.

PowerBuilder

Verwenden Sie folgende PowerScript-Anweisung:

EXECUTE IMMEDIATE
   "SET TEMPORARY OPTION connection_authentication=
       'Company=MyCo;
        Application=MyApp;
        Signature=0fa551599998e14d818e...';"
USING SQLCA
JDBC

Verwenden Sie folgende Anweisung:

Statement Stmt1 = con.createStatement();
Stmt1.executeUpdate(
    "SET TEMPORARY OPTION connection_authentication=
    'Company=MyCo;
     Application=MyApp;
     Signature=0fa55159999e14d818e...';"
);

Die Zeichenfolge muss in einer Zeile eingegeben werden, oder Sie müssen sie durch eine Verkettung erstellen.

ADO.NET

Verwenden Sie folgende Anweisung:

SACommand cmd=new SACommand(
   "SET TEMPORARY OPTION connection_authentication=
       'Company=MyCo;
        Application=MyApp;
        Signature=0fa551599998e14d818e...';", 
    con
);
cmd.ExecuteNonQuery();

Die Zeichenfolge muss in einer Zeile eingegeben werden, oder Sie müssen sie durch eine Verkettung erstellen.

Embedded SQL
Use the following statement:
EXEC SQL SET TEMPORARY OPTION connection_authentication=
   'Company=MyCo;
    Application=MyApp;
    Signature=0fa551599998e14d818e...';

Die Zeichenfolge muss in einer Zeile eingegeben werden, oder Sie müssen sie durch eine Verkettung erstellen.

Bei der Herstellung einer Verbindung mit einer authentifizierten Datenbank werden der Verbindungs- und der Authentifizierungsschritt separat durchgeführt. Einige Objekte jedoch, wie z.B. das Visual Basic Grid-Objekt, können eine separate, implizite Verbindung versuchen, die nicht automatisch eine Authentifizierung einschließt. In diesen Fällen wird die Verbindung nicht authentifiziert und der Datenbankvorgang kann fehlschlagen. Sie umgehen dieses Problem, indem Sie den Verbindungsparameter InitString in die Verbindungszeichenfolge aufnehmen. Das folgende Beispiel zeigt, wie Sie eine Visual Basic-Anwendung ändern, um den Verbindungsparameter InitString einzubeziehen, damit auf jede Verbindung unmittelbar eine Authentifizierung folgt:

mConnectionString = 
   "Provider=SAPROV.11;
    UID=DBA;
    PWD=sql;
    ENG=test11;
    InitString=SET TEMPORARY OPTION connection_authentication=
       'Company=MyCo;
        Application=MyApp;
        Signature=0fa55157edb8e14d818e...'"
mdbName.ConnectionString = mConnectionString
mdbName.Open
mIsSQL = True