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

SQL Anywhere 12.0.1 (Deutsch) » UltraLite - C- und C++-Programmierung » Anwendungsentwicklung » UltraLite C++-Anwendungsentwicklung mit Embedded SQL

 

Benutzerauthentifizierung

Ein umfassendes Beispiel finden Sie im Verzeichnis %SQLANYSAMP12%\UltraLite\esqlauth. Der nachstehende Code stammt aus %SQLANYSAMP12%\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. Disconnect. 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.

 Siehe auch