使用 PHP 进行身份管理
了解如何在基于 PHP 的 Web 应用程序中实现身份管理……
确定已设置 $newuserid 和 $newpasswd 变量之后,嵌套的 if 语句过滤器将调用 create_new_db_user() 函数。这两个变量只能在 AddDbUser.php Web 页面中设置,这意味着,只有在用户经过身份验证之后,才能调用这两个变量。这也适用于对 AddDbUser.php Web 页的后续调用,因为单击 Add User 按钮会递归地调用同一个 Web 页面。
| // Add a new user to the authorized control list. function create_new_db_user($userid,$newuserid,$newpasswd) { // Attempt connection and evaluate password. if ($c = @oci_connect(SCHEMA,PASSWD,TNS_ID)) { // Check for prior insert, possible on Web page refresh. if (!is_inserted($c,$newuserid)) { // Encrypt password. $newpassword = sha1($passwd); // Return database UID. $s = oci_parse($c,"INSERT INTO system_user ( system_user_id , system_user_name , system_user_password , system_user_group_id , system_user_type , created_by , creation_date , last_updated_by , last_update_date ) VALUES ( system_user_s1.nextval , :newuserid , :newpasswd , 1 , 1 , :userid1 , SYSDATE , :userid2 , SYSDATE)"); // Bind the variables as strings. oci_bind_by_name($s,":newuserid",$newuserid); oci_bind_by_name($s,":newpasswd", $newpassword); oci_bind_by_name($s,":userid1",$userid); oci_bind_by_name($s,":userid2",$userid); // Execute the query, error handling should be added. if (!@oci_execute($s,OCI_COMMIT_ON_SUCCESS)) { // Print error when oci_execute() fails. $errorMessage = "Check for a missing SYSTEM_USER table. "; print $errorMessage; } } // Close the connection. oci_close($c); } else { $errorMessage = oci_error(); print htmlentities($errorMessage['message'])." "; } } |
在 create_new_db_user() 函数中,将调用 is_inserted() 函数。这将进行检查,以确保在尝试将用户插入 SYSTEM_USER 表之前该用户不存在。与先前的嵌套函数示例一样,is_inserted() 函数将共享本地连接以便控制事务。此外,在将用户口令绑定到数据操作变量之前,sha1() 函数会将明文口令转换为加密字符串。
成功插入新用户之后,New User 表单会再次呈现,等待您插入其他用户或者单击 Log Out 按钮。Log Out 按钮会将您返回到登录屏幕,在该屏幕中,您可以重置会话标识符。
结论
现在,您已经了解了身份管理的工作方式,以及如何实现基本身份管理解决方案,您应该已经熟悉术语、体系结构以及验证用户身份的方法。
您现在可以平等地管理用户验证和访问,但用户不是平等的。某些用户可能拥有不受限制的访问权,但大部分用户都拥有受限制的访问权。
尽管 VPD 功能是“高级功能”,但早期技术 DBMS_APPLICATION_INFO 也可用于 Oracle8i、Oracle9i 和 Oracle 数据库 10g 第 1 版。它还是支持 Oracle 电子商务 11i 套件身份验证的核心实用程序。这两项技术都可让您实现细粒度的访问权限和角色。
- 本文关键词:

