Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Игорь_UUS Member Откуда: г. Екатеринбург Сообщений: 680 |
Добрый день. Есть таблица клиентов, при получении набора данных (SELECT) необходимо скрыть часть телефона. Оставив "открытыми" первый и 4 последних цифры. Например, телефон 9221234567 необходимо преобразовать в 9*****4567. Подскажите, какое решение будет самым быстрым и правильным при выполнении запроса? |
6 июл 17, 07:27 [20617630] Ответить | Цитировать Сообщить модератору |
Massa52 Member Откуда: Сообщений: 382 |
DECLARE @tel VARCHAR(20) = '9221234567' SELECT LEFT(@tel,1) + '*****' + RIGHT(@tel,4) |
6 июл 17, 07:56 [20617664] Ответить | Цитировать Сообщить модератору |
Serп Member Откуда: Сообщений: 17 |
Игорь_UUS,select stuff('9221234567',2,5,'*****') |
6 июл 17, 09:24 [20617788] Ответить | Цитировать Сообщить модератору |
Дедушка Member Откуда: Город трёх революций Сообщений: 5114 |
|
||
6 июл 17, 09:44 [20617848] Ответить | Цитировать Сообщить модератору |
0wl Member Откуда: Сообщений: 84 |
В 16 сиквеле появился Dynamic Data Masking: один раз настроил и потом для выбранных пользователей во всех селектах данные скрыты https://docs.microsoft.com/en-US/sql/relational-databases/security/dynamic-data-masking |
6 июл 17, 11:06 [20618147] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
0wl, Фуфло этот Data Masking. Работает только если у пользователей нет напрямую доступа к SQL. Мы даже на тренинге у MS спеца спросили - а что если age скрыто, но юзер напишет: SELECT * WHERE age = 1 SELECT * WHERE age = 2 SELECT * WHERE age = 3 ... SELECT * WHERE age = 100 - Он не узнает возраст? - Ну, вообще-то узнает. - ![]() Ну об этом по ссылке собственно и написано.
|
||
11 июл 17, 23:37 [20635253] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |