连接数据库,重置管理员密码 - ServiceDesk Plus / AssetExplorer

连接数据库,重置管理员密码 - ServiceDesk Plus / AssetExplorer

Warning
此知识涉及修改ServiceDesk Plus具有管理员权限的技术员密码,此项操作直接针对数据库,请注意操作前备份。

对于PGSQL数据库,使用下面步骤连接到数据库,然后按照下面的步骤操作。

在安装ServiceDesk Plus的机器上,使用管理员权限打开一个CMD命令行窗口,跳转到ServiceDesk安装目录的数据库目录下,如 ManageEngine\ServiceDesk\pgsql\bin,然后执行下面命令

如果SDP版本低于10.5/AE版本低于6.5
Quote
psql.exe -U postgres -h 127.0.0.1-p 65432 -d servicedesk  

如果SDP版本高于10.5/AE版本高于6.5
Quote
psql.exe -U sdpadmin -h 127.0.0.1-p 65432 -d servicedesk
当提示输入密码时,输入:  sdp@123

如果SDP版本高于14600版本
Quote
psql.exe -U sdpadmin -h 127.0.0.1-p 65432 -d servicedesk
密码不再是sdp@123,需要打开命令提示符,到服务器安装目录ManageEngine\ServiceDesk\bin下执行decryptPostgresPassword.bat即可查看。

找到需要修改的用户

对于SDP 11.0/AE 6.6以上版本

使用以下SQL找到系统中激活的SDOrgAdmin用户:
Quote
Select al.login_id"Login ID",au.first_name"Name",al.name"Login Name", al.domainname"Domain Name" from aaaauthorizedrole aar left join aaarole ar on aar.role_id=ar.role_id left join aaaaccount aa on aar.account_id=aa.account_id left join aaalogin al on aa.login_id=al.login_id left join aaauser au on al.user_id=au.user_id left join sduser sd on au.user_id=sd.userid where ar.name like 'SDOrgAdmin' and sd.status='ACTIVE';

对于SDP 11.0/AE6.6之前版本

Quote
Select al.login_id"Login ID",au.first_name"Name",al.name"Login Name" from aaaauthorizedrole aar left join aaarole ar on aar.role_id=ar.role_id left join aaaaccount aa on aar.account_id=aa.account_id left join aaalogin al on aa.login_id=al.login_id left join aaauser au on al.user_id=au.user_id left join sduser sd on au.user_id=sd.userid where ar.name like 'SDAdmin' and sd.status='ACTIVE';

从结果中找到需要修改密码的用户,在以下SQL中引用他们的login_id来重置他们的密码。

重置密码

对于SDP 10.5/ AE 6.5以后版本

PGSQL:

Quote
update AaaPassword set password='$2a$12$fZUC9IK8E/AwtCxMKnCfiu830qUyYB/JRhWpi2k1vgWLC6iLFAgxa', SALT=pgp_sym_encrypt('$2a$12$fZUC9IK8E/AwtCxMKnCfiu','SChar@123Mas!er','s2k-mode=1, cipher-algo=aes256'), algorithm='bcrypt' where password_id in (select ap.password_id from aaaaccpassword ap left join aaaaccount ac on ac.account_id=ap.account_id left join aaalogin al on al.login_id=ac.login_id where al.login_id= Login_ID);

MSSQL:

Quote
OPEN SYMMETRIC KEY ZOHO_SYMM_KEY DECRYPTION BY CERTIFICATE ZOHO_CERT;update AaaPassword set password='$2a$12$fZUC9IK8E/AwtCxMKnCfiu830qUyYB/JRhWpi2k1vgWLC6iLFAgxa', SALT= EncryptByKey(Key_GUID('ZOHO_SYMM_KEY'), N'$2a$12$fZUC9IK8E/AwtCxMKnCfiu'), algorithm='bcrypt' where password_id in (select ap.password_id from aaaaccpassword ap left join aaaaccount ac on ac.account_id=ap.account_id left join aaalogin al on al.login_id=ac.login_id where al.login_id= Login_ID);CLOSE SYMMETRIC KEY ZOHO_SYMM_KEY ;

Alert
注意:对于MSSQL, 确保应用处于运行状态时执行以上SQL。

对于SDP 10.5/AE 6.5之前版本

Quote
update AaaPassword set password='$2a$12$fZUC9IK8E/AwtCxMKnCfiu830qUyYB/JRhWpi2k1vgWLC6iLFAgxa', SALT='$2a$12$fZUC9IK8E/AwtCxMKnCfiu', algorithm='bcrypt' where password_id in (select ap.password_id from aaaaccpassword ap left join aaaaccount ac on ac.account_id=ap.account_id left join aaalogin al on al.login_id=ac.login_id where al.login_id= Login_ID);

SDP 9.3版本之前的使用以下语句:

Quote
update AaaPassword set password='2+uYvE3SLfO3XaHl+CaGLA==', SALT='1103287238602',algorithm='MD5' where password_id in (select ap.password_id from aaaaccpassword ap left join aaaaccount ac on ac.account_id=ap.account_id left join aaalogin al on al.login_id=ac.login_id where al.login_id=LOGIN_ID);

若本地认证被禁用

提示: 如果本地认证在应用中被禁用了,可以在数据库中执行以下SQL来启用。(需要重启SDP服务使配置生效)

Quote
update globalconfig set paramvalue='true' where parameter='Enable_LocalAuthentication_Login';


Info
以上SQL执行完成之后,您可以使用"admin"作为密码来登录,在登录时,应确保您选择了本地认证模式,如果用户关联到了域,在对应的域列表中,也应选择用户所属的域(若下拉字段可见)。