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 » Ultra Light C/C++ プログラミング » アプリケーション開発 » Embedded SQL を使用した Ultra Light C++ アプリケーション開発

 

ユーザ認証

完全なサンプルは %SQLANYSAMP16%\UltraLite\esqlauth ディレクトリにあります。次のコードは %SQLANYSAMP16%\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;

このコードでは、次のタスクを実行します。

  1. db_init を呼び出してデータベースの機能を開始する。

  2. デフォルトのユーザ ID とパスワードを使用して接続する。

  3. 接続に成功したら、新しいユーザを追加する。

  4. 新しいユーザが追加されたら、Ultra Light データベースから DBA を削除する。

  5. 切断する。更新されたユーザ ID とパスワードがデータベースに追加される。

  6. 更新されたユーザ ID とパスワードを使用して接続する。

 参照