2014-02-02 3 views
0

У меня есть приложение Tableau, работающее над RedShift. У меня есть множество таблиц данных, сохраненных в разных схемах. Каждая схема имеет точно такие же таблицы в том же формате.Измените схему при подключении с RedShift

У меня также есть набор пользователей. Каждый пользователь должен работать только с собственной схемой (у меня есть таблица сопоставлений между пользователями и схемами).

Вопрос в том, как заставить Tableau смотреть на другую схему в зависимости от текущего имени пользователя?

Спасибо!

ответ

2

Redshift не имеет возможности устанавливать схему по умолчанию, так как можно установить базу данных по умолчанию в MSSQL, но, возможно, вы можете использовать функцию search_path, где, когда пользователь входит в систему, Tableau запрашивает пользователя/mapa map, а затем устанавливает путь search_path к этой схеме. Любые последующие запросы сначала ищут таблицы/представления в этой схеме. См. http://docs.aws.amazon.com/redshift/latest/dg/r_search_path.html для получения дополнительной информации о search_path.

1

Я не думаю, что вы можете динамически изменять имя схемы на основе имени пользователя.

Табличные книги (не упакованные) - это просто XML-файлы, которые достаточно читабельны для человека.

В xml соединение определено. Предполагая, что у вас есть список сопоставлений схемы/пользователя, вы могли бы просто написать небольшой скрипт, чтобы создать кучу книг, которые изменяли только схему и правильно устанавливали разрешения tabcmd.

Две вещи, чтобы отметить хотя:

  1. Редактирование XML, как правило, не поддерживается Tableau.
  2. Я сделал что-то подобное с MSSQL (обмен базами данных dev, test и prod), поэтому я не уверен в синтаксисе подключения Redshift, но предполагаю, что он очень похож.
Смежные вопросы