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

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

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

10 ответов

15 просмотров

А это точно именно то, что Вам нужно? Я к тому, что такая замена сделает Вам из 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...

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

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

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

Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
48
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
а проверьте, собирается ли у кого сейчас транк лазаря через делюкс? у меня вот: fpcupdeluxe: info: Lazarus Native Installer (BuildModuleCustom: UserIDE): LazBuild: building Us...
Iluha Companets
20
Мне тут приспичило встроить в программу форматировние текста SQL, расставить переносы строк и отступы так, чтобы лучше читалось. Я что-то свое изобразил, оно после ключевых сл...
Sergey Bodrov
11
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
добрый день. возможно ли изменить цвет окон лазаруса? Как?
Budemposmotret
35
Господа, а кто-нибудь сталкивался с размещением на TTabControl/TTabSheet множества контролов (> 100) с последующими External: Access violation? Вот буквально на ровном месте. ...
Dmitry
29
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Добрый день. Опять снова хочу обратиться к вам за помощью. После создания проэкта stack new, lazy.nvim + nvim-lspconfig/haskell-tools + hlint, ormolu из mason + hls из ghcup ...
Nannk
8
Does anyone have some zeroday's left?
Wito!d ♥️🩷
44
Карта сайта