Создание прилинкованного сервера (Linked Server) для MS Analysis Services


Если создать Linked Server на Analysis Services сервер, то можно напрямую, практически SQL-запросами обращаться к данным OLAP-кубов, что очень удобно.

Здесь рассматривается версия MS SQL Server 2008 R2 (и сооветствующая MS Analysis Services).

Создать Linked Server несложно:

EXEC master.dbo.sp_addlinkedserver @server = N'<НАЗВАНИЕ_ДЛЯ_LINKED_SERVER>', @srvproduct=N'', @provider=N'MSOLAP', @datasrc=N'<АДРЕС_ИЛИ_ИМЯ_СЕРВЕРА>', @catalog='<НАЗВАНИЕ_OLAP_БД>'

Если после попытки обращения к объектам прилинкованного сервера возникает ошибка:

Server: Msg 7302, Level 16, State 1, Line 1
Could not create an instance of OLE DB provider 'MSOLAP'.

значит скорее всего нет доступа к указанной OLAP БД.
В MSAS нужно создать роль, которой предоставить доступ на чтение нужных объектов (кубов, измерений), и в которую включить нужные учетные записи (пользователей и/или доменные группы). Также, если службы MSAS и SQL Server запущены под системными учетными записями возможно потребуется в эту роль добавить таких "пользователей" как NT AUTHORITY\NETWORK SERVICE, NT AUTHORITY\LOCAL SERVICE, NT AUTHORITY\SYSTEM.
После настройки роли нужно перезапустить службы SQL Server'а и Analysis Services.
Для создания роли в Management Studio надо кликнуть правой кнопкой мыши на раздел Roles в нужной БД и выбрать New Role...


Нравится