Collection Contents 上一页 下一页 PDF

UltraLite C/C++ 用户指南

使用 Static C++ API 开发应用程序

鉴定用户


必须从现有连接添加新用户。由于所有 UltraLite 数据库都是用缺省用户 ID 和口令(分别为 DBA 和 SQL)创建的,因此必须首先以该初始用户的身份进行连接。

不能更改用户 ID。而只能添加一个用户,然后删除现有用户。每个 UltraLite 数据库最多允许使用四个用户 ID。

有关详细信息,请参见 UltraLite 中的用户鉴定

启用用户鉴定 (Static C++ API)

  1. 编译 ulapi.cpp 时,定义编译器指令 UL_ENABLE_USER_AUTH。

  2. 在打开数据库之前调用 ULEnableUserAuthentication。例如:

    ULData db;
    ...
    ULEnableUserAuthentication( &sqlca );
    db.open();
    ...

以下代码片段执行 Static C++ API UltraLite 应用程序的用户管理和鉴定。

在 SQL Anywhere 目录的 Samples\UltraLite\apiauth 子目录中可找到完整的示例。下面的代码取自 Samples\UltraLite\apiauth\sample.cpp

ULEnableUserAuthentication( &sqlca );
db.Open() ;
   if( conn.Open( &db,
                  UL_TEXT( "dba" ),
                  UL_TEXT( "sql" ) ) ){
      // prompt for new user ID and password
      printf("Enter new user ID and password\n" );
      scanf( "%s %s", uid, pwd );
      if( conn.GrantConnectTo( uid, pwd ) ){
         // new user added, remove dba
         conn.RevokeConnectFrom( UL_TEXT("dba") );
      }
      conn.Close();
   }
   // regular connection
   printf("Enter user ID and password\n" );
   scanf( "%s %s", uid, pwd );
   if( conn.Open( &db, uid, pwd )){
   ...

该代码执行下列任务:

  1. 通过打开数据库对象启动数据库功能。

  2. 尝试使用缺省用户 ID 和口令进行连接。

  3. 如果连接尝试成功,则添加新用户。

  4. 如果成功添加了新用户,则从 UltraLite 数据库中删除 DBA 用户。

  5. 断开连接。这样就向数据库中添加了已更新的用户 ID 和口令。

  6. 使用已更新的用户 ID 和口令进行连接。

有关详细信息,请参见 GrantConnectTo 方法RevokeConnectFrom 方法


Collection Contents 上一页 下一页 PDF