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) » UltraLite - C- und C++-Programmierung » Anwendungsentwicklung » Anwendungen mit Embedded SQL entwickeln

 

Benutzer authentifizieren

UltraLite-Datenbanken werden mit der Standardbenutzer-ID DBA und dem Standardkennwort sql erstellt. Sie müssen zunächst eine Verbindung mit dieser Ausgangs-ID herstellen. Neue Benutzer müssen von einer bestehenden Verbindung aus hinzugefügt werden.

Eine Benutzer-ID kann nicht geändert werden. Stattdessen fügen Sie die neue Benutzer-ID hinzu und löschen dann die vorhandene Benutzer-ID. Für jede UltraLite-Datenbank sind maximal vier Benutzer-IDs zulässig.

Wenn Sie unter Palm OS Benutzer authentifizieren möchten, wenn diese von einer anderen Anwendung zu einer Anwendung zurückkehren, müssen Sie die Eingabeaufforderung für Benutzer- und Kennwortdaten in Ihre PilotMain-Routine aufnehmen.

Beispiel für eine Benutzerauthentifizierung

Ein umfassendes Beispiel finden Sie im Beispielverzeichnis\UltraLite\esqlauth. Der nachstehende Programmcode stammt aus Beispielverzeichnis\UltraLite\esqlauth\sample.sqc.

//embedded SQL
app() {
   ...
/* Declare fields */
   EXEC SQL BEGIN DECLARE SECTION;
      char uid[31];
      char pwd[31];
   EXEC SQL END DECLARE SECTION;
   db_init( &sqlca );
   ...
   EXEC SQL CONNECT "DBA" IDENTIFIED BY "sql";
   if( SQLCODE == SQLE_NOERROR ) {
      printf("Enter new user ID and password\n" );
      scanf( "%s %s", uid, pwd );
      ULGrantConnectTo( &sqlca,
         UL_TEXT( uid ), UL_TEXT( pwd ) );
      if( SQLCODE == SQLE_NOERROR ) {
         // new user added: remove DBA
         ULRevokeConnectFrom( &sqlca, UL_TEXT("DBA") );
      }
      EXEC SQL DISCONNECT;
   }
   // Prompt for password
    printf("Enter user ID and password\n" );
    scanf( "%s %s", uid, pwd );
    EXEC SQL CONNECT :uid IDENTIFIED BY :pwd;

Der Code führt die folgenden Aufgaben aus:

  1. Er initiiert die Datenbankfunktionalität durch Aufruf von db_init.

  2. Er versucht, mit der Standardbenutzer-ID und dem Standardkennwort eine Verbindung herzustellen.

  3. Er fügt einen neuen Benutzer hinzu, wenn der Verbindungsversuch erfolgreich ist.

  4. Er löscht den Benutzer DBA aus der UltraLite-Datenbank, wenn der neue Benutzer erfolgreich hinzugefügt wurde.

  5. Er trennt die Verbindung. Nun werden der Datenbank eine aktualisierte Benutzer-ID und ein aktualisiertes Kennwort hinzugefügt.

  6. Mit der aktualisierten Benutzer-ID und dem aktualisierten Kennwort wird eine Verbindung hergestellt.

Weitere Hinweise finden Sie unter: