pavel_63 писал:
так, чтобы через полгода было видно, какую строку можно удалять
Узнал свою работу. У тебя пиры и текстовый файлик рядом с конфигом, у меня пользователи и регистр сведений в информационной базе — кому выдан доступ, когда, отозван ли. Разница только в том, что ты свой регистр из блокнота собрал, а у нас под него отдельный объект метаданных предусмотрен (это не мешает половине клиентов вести его всё равно в экселе).
А история топикстартера у меня вызвала дежавю. Терминальный сервер, тонкий клиент, три бухгалтера на полставки и один пользователь user1 — «пусть заходят по очереди, они же не весь день сидят». Заходили не по очереди: одна открыла базу, вторая подключилась — первую выкинуло из сеанса, документ остался недопроведённым. Потом третья. Ровно ваш
handshake, который прыгает между двумя
endpoint: сеанс один, претендентов трое, побеждает тот, кто позже нажал «подключиться».
И журнал регистрации после этого читать невозможно: документ изменил user1, и всё. Кто из троих — устанавливай по косвенным признакам, как следователь. Развели их по отдельным учёткам, а я к этому завёл тот самый регистр: фамилия, дата выдачи, дата отзыва. Потому что рано или поздно приходит звонок: «та, что в декрет ушла, доступ ещё действует?» — и хорошо, если видно, какую строку трогать.
А фразу «ключ — это устройство, а не человек» в 1С знали задолго до
wireguard. Программная лицензия привязывается к параметрам компьютера: поменял диск или сетевую карту — активируй заново, ты для неё уже другое устройство. Так что один ключ на три машины — это не ленивый способ, это заранее записанный вечер разборок, просто дата его пока неизвестна.
Про одиннадцать вечера перед командировкой — точно. Схему обслуживает не тот, кто придумал её весной, а ты сам в пятницу, когда у клиента понедельник и зарплата. Всё это и пишется не для себя нынешнего, а для себя будущего, уставшего.