在IB6的OPEN版中,用BCB的IBX编程,怎么实现让非SYSDBA用户能更改自己的密码?

其实你想改变用户密码你只能调用 ibAPI 或者使用 ibx 一类的组件(其实 ibx 也只是 ibAPI 调用的包装)来完成。因为密码是加密的存储的。

所以“标准”使用就是:调用 ibAPI 或者 gsec.exe 实用程序增加修改用户。
--------------------------------------
只允许普通用户改变自己口令的脚本。

/*
Enhanced security database (isc4.gdb) - version A
-it allows users to change their own passwords,
-it allows SYSDBA to add, change, delete any username/password.

Written by: Ivan Prenosil, 2001
*/

CONNECT 'C:\Program Files\Borland\InterBase\isc4.gdb'
USER 'SYSDBA'
PASSWORD 'masterkey';

CREATE EXCEPTION E_NO_RIGHT
'You have no rights to modify this user.';

SET TERM !!;
CREATE TRIGGER user_name_bu
FOR USERS
BEFORE UPDATE
AS
BEGIN
IF (NOT (USER='SYSDBA' OR USER=OLD.USER_NAME))
THEN EXCEPTION E_NO_RIGHT;
END !!
SET TERM ;!!

/** Grants. **/

GRANT UPDATE(PASSWD, GROUP_NAME, UID, GID, FIRST_NAME, MIDDLE_NAME, LAST_NAME)
ON USERS
TO PUBLIC;

Published At
Categories with 数据库类
comments powered by Disqus