|
|
|
Раздача прав в SSAS по таблице в БД. Как?
|
|||
|---|---|---|---|
|
#18+
Добрый день! Хотелось бы раздать пользователям права в кубе в соответствии с таблицей. ID City_ID user1 17 ggg/a.petrovich2 21 ggg/a.petrovich3 17 ggg/e.gigerovna4 24 ggg/e.gigerovna5 35 ggg/e.gigerovna Есть ли какая-то возможность так сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2019, 15:42 |
|
||
|
Раздача прав в SSAS по таблице в БД. Как?
|
|||
|---|---|---|---|
|
#18+
Наверно, какую-то задачу в SSIS сделать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2019, 15:42 |
|
||
|
Раздача прав в SSAS по таблице в БД. Как?
|
|||
|---|---|---|---|
|
#18+
и, кстати, аналогично устроить доступ в основную БД - тот же вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2019, 15:43 |
|
||
|
Раздача прав в SSAS по таблице в БД. Как?
|
|||
|---|---|---|---|
|
#18+
Nika gnome, В общем виде вам нужен Bridge между справочником городов (DimGeo) и вашей таблицей с правами User'a. Разумеется все не Visible для юеров. Далее настраиваем Dimension, на пересечении Bridge и User ставим User, а на пересечении DimGeo и бриджа ставим DimGeo. Далее в роли пишем что то типа NonEmpty ( City.City.Members, ( StrToMember ("[Users].[User].[" + UserName () + "]"), [Measures].[Bridge City Users Count] ) ) ставим галочку Enable Visual Totals, и наверно все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2019, 16:22 |
|
||
|
Раздача прав в SSAS по таблице в БД. Как?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2019, 16:44 |
|
||
|
Раздача прав в SSAS по таблице в БД. Как?
|
|||
|---|---|---|---|
|
#18+
из того как поставлена задача и лучших практик: в SSIS (можно и другими инструментами) делай C# скрипт на AMO, который динамически будет создавать роли (хоть сотню) и добавлять туда пользователей (вместе с их SID из AD) на основе твоей SQL таблицы в каждой роли на нужное измерение будет писать списком разрешенные элементы на выбранный атрибут измерения по ключам из таблицы (с прочими опциями на выбор типа visual_totals и т.д.) для минимизации количества ролей (контекстов слоя безопасности) - лучше добавить алгоритм группировки пользователей по одинаковым правам (а ещё намного лучше заменить этот шаг на управляемые AD группы {по регионам/уровню ответственности типа директор/менеджер/грузчик} вместо просто сотен учёток) неизвестно: как часто меняются записи в таблице, > если раз в день - то задача выполняется в том-же временном окне (по утрам/ночью) где и Process таск для куба. > если безконтрольно по много раз за день (какими-то непонятными сторонними лицами) то можно (хотя это худшая практика, но при отсувствии альтернатив..) как выше советуют (с ROLAP таблицей на мост) - но как минимум кэширование слетает нафик, производительность падает на порядок из-за таких мостов на лету.. но вобще лучше отдельными ролями с SSIS пересозданием/корректировкой каждый раз на изменение (триггер) - но будет небольшая проблема что делать с текущими сессиями (ожидание/lock или {что навряд-ли в prod.} kill/terminate). в общем зависит от того какие приоритеты, а уже от туда искать нужный баланс между путями решений (с их недостатками/преимуществами). В DB так-же - лучший вариант группами AD, и отдать головную боль по управлению членством в группах в управление кто там занимается информационной безопасностью, иначе надоест ухаживать за таким хозяйством с сотнями/тысячами пользователей.. (или привязать к сайту с соответствующими правами на директоров департаментов/региональных отделов - пускай сами разрешают/запрещают) как вариант автоматизации - тот-же какой-нибудь (напр. SSIS или PS или C# или даже просто T-SQL и пр.) task/job на триггере при insert/update/delete с проверкой на текущее состояние job-a. но налету опять-же осторожно - т.к. вопрос с текущими сессиями/подключениями/запросами, соответственно лучше минимизировать и менять только тех пользователей которые попали под изменение (а не широким фронтом стирать по маске и дибавлять по новой). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2019, 17:10 |
|
||
|
Раздача прав в SSAS по таблице в БД. Как?
|
|||
|---|---|---|---|
|
#18+
Nika gnomeи, кстати, аналогично устроить доступ в основную БД - тот же вопрос. Вьюха, где в запросе в условии будет сравнение текущего пользователя и этого вашего поля с текстом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2019, 21:11 |
|
||
|
Раздача прав в SSAS по таблице в БД. Как?
|
|||
|---|---|---|---|
|
#18+
Или относительно новый способ https://docs.microsoft.com/ru-ru/sql/relational-databases/security/row-level-security?view=sql-server-2017 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2019, 21:12 |
|
||
|
Раздача прав в SSAS по таблице в БД. Как?
|
|||
|---|---|---|---|
|
#18+
Критик, динамические права в SQL ? нет, не слышал (хотя может плохо искал и отстал немного) для этого пользователю сначала надо будет получить доступ как минимум на чтение в сответствующую базу - а там-то этого пользователя пока нет. и только потом уже решать - к какой строке доступ давать а к какой нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2019, 21:17 |
|
||
|
Раздача прав в SSAS по таблице в БД. Как?
|
|||
|---|---|---|---|
|
#18+
aleksrov StrToMember ("[Users].[User].[" + UserName () + "]"), прошу прощения за глупый вопрос. как из функции UserName () выдернуть имя пользователя без домена? "domen_name\user_vasya" --> "user_vasya" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2019, 12:50 |
|
||
|
Раздача прав в SSAS по таблице в БД. Как?
|
|||
|---|---|---|---|
|
#18+
AlexBra aleksrov StrToMember ("[Users].[User].[" + UserName () + "]"), прошу прощения за глупый вопрос. как из функции UserName () выдернуть имя пользователя без домена? "domen_name\user_vasya" --> "user_vasya" Код: c# 1. 2. 3. 4. 5. Упс... На C# написал, а не T-SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2019, 15:02 |
|
||
|
Раздача прав в SSAS по таблице в БД. Как?
|
|||
|---|---|---|---|
|
#18+
AlexBra aleksrov StrToMember ("[Users].[User].[" + UserName () + "]"), прошу прощения за глупый вопрос. как из функции UserName () выдернуть имя пользователя без домена? "domen_name\user_vasya" --> "user_vasya" а зачем ? это ф-ция SSAS оно овзвращате доменное имя ps гогл отвечает на вопрос так - я проверил пашет Код: sql 1. зы Upd это ж MDX а не T-SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2019, 17:51 |
|
||
|
|

start [/forum/topic.php?fid=49&tid=1857427]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 369ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...