CMDBuild сброс пароля

Мне приходится иметь дело со старым CMDBUild, но, к сожалению, никто не имеет пароля суперпользователя. Поэтому я хотел бы изменить его непосредственно в базе данных postgres.

Мне удается подключиться к базе данных cmdbuild в psql. У меня есть таблица вызова пользователя, но select * from User; только дает мне:

current_user 
--------------
 postgres
(1 row)

но SELECT column_name FROM information_schema.columns WHERE table_name ='User'; дает мне больше столбцов:

 column_name 
-------------
 Id
 IdClass
 Code
 Description
 Status
 User
 BeginDate
 Notes
 Username
 Password
 Email
(11 lignes)

Таким образом, первый выбор кажется неправильным, где остальные 10 столбцов? Кроме того, я нашел эти строки в Техническом руководстве CMDBuild, пробую, но безрезультатно.

execute the following SQL commands to create the "Superuser" user (in the example with
username admin and password admin):

INSERT INTO "User" ("Status", "Username", "IdClass", "Password", "Description") VALUES ('A', 'admin',
'"User"', 'DQdKW32Mlms=', 'Administrator');
INSERT INTO "Role" ("Status", "IdClass", "Administrator", "Description") VALUES ('A', '"Role"', true,
'SuperUser');
INSERT INTO "Map_UserRole" ("Status", "IdClass2", "IdClass1", "IdObj2", "IdObj1", "IdDomain") VALUES ('A

Может кто-нибудь помочь мне восстановить или удалить пароль суперпользователя в CMDBuild? Заранее спасибо.

1 ответ

Решение

Похоже, что этот инструмент "CMDBuild" использует свои собственные пользовательские таблицы, а не встроенные пользователи и роли PostgreSQL.

Прежде чем делать что-либо еще, сделайте полную резервную копию вашей базы данных.

Если вы хотите восстановить существующий пароль, вам необходимо выяснить, является ли он соленым, хешированным или хранящимся в виде открытого текста. Если он хранится в виде открытого текста, сердито ругайте разработчиков CMDBuild, пока они не пообещают исправить это в следующем выпуске.

Если это открытый текст, хорошо:

select "Username", "Password" from "User" where "Username" = 'admin';

Если вход в систему с полученным паролем не работает, то он, вероятно, хэшируется, и в этом случае вам необходимо выяснить, какой алгоритм используется. Судя по приведенному выше примеру примера, это, вероятно, просто unix crypt. Вы можете поместить извлеченный пароль в текстовый файл и запустить на нем Jack the Ripper или аналогичный инструмент для взлома.

Если вам не удастся взломать его, хорошо, если вы определили, как он хэшируется, вы можете хешировать новый пароль и сохранить его с чем-то вроде:

 UPDATE "User" SET "Password" = "sdgfsdf" WHERE "Username" = 'admin';

заменив текст заполнителя выше на сгенерированный вами хеш

(Джон Риппер, похоже, не понимает пример пароля, а это означает, что он либо не зашифрован, либо не в общепризнанном формате, таком как unix crypt).

Другие вопросы по тегам