172 похожих чатов

Привет всем. обратил внимание на этот чат и решил посоветоваться

с более компетентными в Postgres спецами. у меня есть одна задача, связанная с «обезличиванием» данных в базе. можете подсказать, какой функцией лучше и эффективней целый столбец с текстовыми значениями ( уже заполненный, с определенными данными , NOT NULL) заменить рандомными, уникальными значениями, каждую строку?

10 ответов

31 просмотр

А это точно именно то, что Вам нужно? Я к тому, что такая замена сделает Вам из 1 | Иванов 2 | Иванов что-то вроде: 1 | foo random 2 | random bar Т.е. идентичность значений потеряется. Если это устраивает — да хоть на UUID меняйте, например. Иначе нужно что-то аналогичное шифрованию (с никому неизвестным ключом).

Jason-Kovac Автор вопроса
Yaroslav Schekin
А это точно именно то, что Вам нужно? Я к тому, чт...

благодарю за пояснение! а вот об этом я не подумал если честно. ведь тестировщикам потом импортирую dump этой базы для тестов. копию проекта подниму на сервере 🗿 а это реально сделать средствами самого postgres или придется прибегать к сторонним утилитам/расширениям каким то, можете подсказать? или в каком направлении изучать?

Jason Kovac
благодарю за пояснение! а вот об этом я не подумал...

По идее, реально. Но Вы лучше подождите — может, Вам подскажут готовые средства / дадут ссылки (мне лично этим не приходилось заниматься).

Jason Kovac
благодарю за пояснение! а вот об этом я не подумал...

Смотрите в сторону obfuscation/masking. Вот тут есть примерные методы, без реализации https://postgres.ai/docs/database-lab/masking

Jason-Kovac Автор вопроса

Это очень сложно. 1. Узнать всё, что надо замазать 2. Если база не идеально нормализована, то эти значения уже включены куда-то ещё, как части строк или как фотографии документов, журналы, архивы Уже не говоря про ситуации, когда замазываемое значение используется как ссылка. 3. Если надо замазать какие-то числа, но на их основе наверняка всякого расчитано, и программа станет работать неправильно 4. Сломаются инварианты, неочевидные из схемы базы. Типа того, что если имя пользователя начинается на \, то это означает что... Или деление пользователей на группы было не любым, а по алфавиту. Или имя пользователя используется программой ещё и как имя файла. Или товаары относят к категории поиском подстроки в имени товара....

А если отвечать на исходный вопрос, то напишите функцию для этого. По мере работы вы будуете её расширять, добавляя настроечные параметры. Типичная замена set name = 'user#' || id::text Именно рандом редко нужно

https://www.postgresql.eu/events/fosdem2019/sessions/session/2287/slides/151/postgresql_anonymizer.reveal..pdf Посмотрите

Jason-Kovac Автор вопроса
Konstantin Zaitsev
https://www.postgresql.eu/events/fosdem2019/sessio...

круто! благодарю 🤝 я посмотрел, судя по содержимому для меня самое то! попробую как подключусь к бд!

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта