必须从现有连接添加新用户。由于所有 UltraLite 数据库都是用缺省用户 ID 和口令(分别为 DBA 和 SQL)创建的,因此必须首先以该初始用户的身份进行连接。
不能更改用户 ID。而只能添加一个用户,然后删除现有用户。每个 UltraLite 数据库最多允许使用四个用户 ID。
有关详细信息,请参见 UltraLite 中的用户鉴定。
启用用户鉴定 (Static C++ API)
编译 ulapi.cpp 时,定义编译器指令 UL_ENABLE_USER_AUTH。
在打开数据库之前调用 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 )){
...该代码执行下列任务:
通过打开数据库对象启动数据库功能。
尝试使用缺省用户 ID 和口令进行连接。
如果连接尝试成功,则添加新用户。
如果成功添加了新用户,则从 UltraLite 数据库中删除 DBA 用户。
断开连接。这样就向数据库中添加了已更新的用户 ID 和口令。
使用已更新的用户 ID 和口令进行连接。
有关详细信息,请参见 GrantConnectTo 方法和 RevokeConnectFrom 方法。
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。