Udostępnij za pośrednictwem


Assemblies (Analysis Services - Multidimensional Data)

Microsoft SQL Server Analysis Services udostępnia wiele funkcji wewnętrznych do używania z językami Multidimensional Expressions (MDX) i wyszukiwanie danych rozszerzeń (DMX) w celu wykonania wszystkich standardowych obliczeń statystycznych na przechodzenie przez składnikami w hierarchii.Jednak podobnie jak w przypadku wszystkich innych złożone i niezawodne produktu, zawsze istnieje konieczność rozszerzenia funkcji takiego produktu dalej.

Dlatego też Analysis Services Umożliwia dodanie zestawów Analysis Services wystąpienie lub bazy danych. Zestawy wspólne pozwalają tworzyć funkcji zewnętrznych, zdefiniowane przez użytkownika przy użyciu języka wszelkie wspólnego (CLR) w czasie wykonywania języka, takich jak Microsoft Visual Basic .NET lub Microsoft Visual C#.Można również użyć języki automatyzacji Component Object Model (COM), takich jak Microsoft Visual Basic lub Microsoft Visual C++.

Security noteSecurity Note:

Zestawy COM może stanowić zagrożenie dla bezpieczeństwa.Ze względu na ryzyko i inne zagadnienia związane z zestawów COM została zdeprecjonowana w SQL Server 2008 Analysis Services (SSAS). Zestawy COM mogą nie być obsługiwane w przyszłych wydaniach.

Zestawy umożliwiają rozszerzanie funkcji MDX i DMX biznesowych.Tworzenie funkcji, które mają do biblioteki, takich jak biblioteki dołączanej dynamicznie (DLL) i dodać biblioteki jako wirtualny plik dziennika do wystąpienie Analysis Services lub Analysis Services Baza danych. Następnie narażeni są zdefiniowane przez użytkownika funkcji MDX i wyrażeń DMX, procedur, obliczenia, akcje i aplikacje klienckie metody publiczne w bibliotece.

wirtualny plik dziennika o nowych procedur i funkcji mogą być dodawane do serwera.Za pomocą zestawów poprawić lub dodać niestandardowe funkcje, który nie został dostarczony przez serwer.Korzystając z zestawów, można dodać nowe funkcje Multidimensional Expressions (MDX), wyszukiwanie danych rozszerzeń (DMX) lub procedur przechowywanych.Zestawy są ładowane z lokalizacji, gdzie jest uruchomiona aplikacja niestandardowa, a kopię wirtualny plik dziennika plik binarny jest zapisywany razem z danymi bazy danych na serwerze.Po usunięciu wirtualny plik dziennika wirtualny plik dziennika kopiowane są również usuwane z serwera.

Zespoły mogą być dwa różne typy: Model COM i środowiska CLR. Zestawy CLR są zestawy w językach programowania, takich jak C#, Visual Basic .NET, zarządzane C++ .NET Framework.Zestawy COM są biblioteki COM, które muszą być zarejestrowane na serwerze

Zespoły mogą być dodawane do Server lub Database obiekty. Zestawy serwera może być wywołana przez dowolnego użytkownika połączenia z serwerem lub dowolny obiekt na serwerze.Zestawy bazy danych może być wywoływana tylko przez Database obiekty lub użytkowników połączonych z bazą danych.

Prosty Assembly Obiekt składa się podstawowe informacje (nazwa i identyfikator), pliku kolekcja i specyfikacji zabezpieczeń.

Kolekcja plików odwołuje się do pliki wirtualny plik dziennika ładowanych i odpowiadające im debugowania (.pdb) pliki, jeśli pliki debugowania zostały załadowane z wirtualny plik dziennika plików.wirtualny plik dziennika plików są ładowane z lokalizacji, w którym aplikacja zdefiniowane pliki, które mają być i kopia jest zapisana na serwerze razem z danymi.Kopia pliku wirtualny plik dziennika jest używany do ładowania wirtualny plik dziennika, przy każdym uruchomieniu usługa.

Specyfikacje zabezpieczeń to wirtualny plik dziennika uprawnień i personifikacji, używane do uruchamiania tego wirtualny plik dziennika.

Wywołanie funkcji zdefiniowane przez użytkownika

Wywołanie funkcja zdefiniowanej przez użytkownika w zespole jest wykonywana tak samo, jak wywoływanie funkcja wewnętrznych, z tą różnicą, że należy użyć pełnej nazwy.Na przykład jak pokazano w poniższym przykładzie funkcja zdefiniowana przez użytkownika, który zwraca wartość typu oczekiwanego przez MDX znajduje się w kwerendę MDX:

Select MyAssembly.MyClass.MyStoredProcedure(a, b, c) on 0 from Sales

Funkcje zdefiniowane przez użytkownika również mogą być wywoływane za pomocą słowa kluczowego Wywołaj.Dla funkcja zdefiniowanej przez użytkownika, które zwraca zestawy rekordów lub wartości typu void, należy użyć słowa kluczowego Wywołaj i nie można użyć słowa kluczowego Wywołaj, jeśli zależy od obiektu w kontekście instrukcja MDX lub DMX lub skryptu, takie jak bieżący model wyszukiwanie danych kostki lub funkcja zdefiniowanej przez użytkownika.Typowe zastosowanie dla funkcja o nazwie poza kwerendę MDX lub DMX jest użycie modelu obiektowego AMO do wykonywania zadań administracyjnych.Jeżeli na przykład chce się użyć funkcja MyVoidProcedure(a, b, c) w instrukcja MDX może być zatrudniony następującej składni:

Call MyAssembly.MyClass.MyVoidProcedure(a, b, c)

Zestawy uprościć baz danych, włączając kod wspólne opracowane raz i przechowywane w jednym miejscu.Deweloperzy oprogramowania klient mogą tworzyć biblioteki funkcji dla Analysis Services i rozpowszechnić je w swoich aplikacjach.

Zespoły i funkcji zdefiniowanych przez użytkownika może duplikować nazwy funkcji Analysis Services Funkcja biblioteki lub innych zestawów. Tak długo, jak wywołać funkcja zdefiniowaną przez użytkownika przy użyciu jego w pełni kwalifikowana nazwa Analysis Services będzie używany jest poprawna procedura. Ze względów bezpieczeństwa i wyeliminować ryzyko wystąpienia wywoływania powtórzonej nazwy w bibliotece innej klasy Analysis Services wymaga to użycia tylko w pełni kwalifikowane nazwy procedur przechowywanych.

Wywołanie funkcja zdefiniowanej przez użytkownika z określonego wirtualny plik dziennika CLR, funkcja zdefiniowanej przez użytkownika jest poprzedzony nazwę wirtualny plik dziennika, nazwę klasy pełne i nazwa procedury, jak pokazano poniżej:

AssemblyName.FullClassName.ProcedureName(Argument1, Argument2, ...)

W celu zapewnienia zgodności z poprzednimi wersjami ze starszymi wersjami Analysis Services, dopuszczalne jest również następującej składni:

AssemblyName!FullClassName!ProcedureName(Argument1, Argument2, ...)

Jeśli biblioteka modelu COM obsługuje wiele interfejsów, identyfikator interfejs można również rozpoznać nazwę procedury, jak pokazano poniżej:

AssemblyName!InterfaceID!ProcedureName(Argument1, Argument2, ...)

Zabezpieczenia

Zabezpieczenia dla zespołów są oparte na modelu zabezpieczeń systemu .NET Framework, który jest model zabezpieczeń dostępu do kodu.System .NET framework obsługuje mechanizm zabezpieczeń dostępu do kodu, której zakłada się, że w czasie wykonywania może obsługiwać zarówno pełni zaufany i częściowo zaufanego kodu.Zasoby, które są chronione przez zabezpieczenie dostępu kodu systemu .NET Framework są zazwyczaj zawijać za kod zarządzany, który wymaga odpowiednich uprawnień, przed włączeniem dostępu do zasób.Żądanie uprawnienia jest spełniony tylko wtedy, gdy wszystkie wywołującym (poziom wirtualny plik dziennika) w stos wywołań odpowiednie uprawnienia do zasób.

Dla zespołów, uprawnienia do wykonania jest przekazywana z PermissionSet Właściwość Assembly obiekt. Odbiera uprawnienia, które kod zarządzany są określane przez zasady zabezpieczeń w mocy.Istnieją już trzy poziomy zasad obowiązujących w różna-Analysis Services środowiska obsługiwane: przedsiębiorstwa, komputerów i użytkowników. Skuteczne listy uprawnień, który odbiera kod zależy od tego punktu przecięcia uzyskane przez te trzy poziomy uprawnień.

Analysis Services dostarcza poziomu zasad zabezpieczeń na poziomie hosta do środowiska CLR podczas obsługi; ta zasada jest możliwy poziom zasad dodatkowe poniżej poziomów trzech zasad, które są zawsze w obiekcie.Zasada ta jest zestaw dla każdej domena aplikacji, utworzony przez Analysis Services.

The Analysis Services host-poziom policy is a combination of Analysis Services fixed policy for system assemblies and user-specified policy for user assemblies. Określone przez użytkownika element Analysis Services Host zasad jest oparty na właściciela wirtualny plik dziennika określające jedną z trzech pakiety uprawnień dla każdego wirtualny plik dziennika:

Ustawianie uprawnień

Description

Safe

Zawiera uprawnienie do obliczenia wewnętrznej.Pakiet to uprawnienie nie przypisuje uprawnienia dostępu do chronionych zasobów w programie .NET Framework.Jest to pakiet domyślnych uprawnień dla wirtualny plik dziennika, jeśli nie jest określony żaden z PermissionSet Właściwość.

ExternalAccess

Udostępnia takie same jak Safe ustawienie dodatkowych umożliwia dostęp do zasobów zewnętrznych systemu. Pakiet to uprawnienie nie oferuje zabezpieczeń gwarantuje (chociaż można zabezpieczyć w tym scenariuszu), ale ona dają gwarancji niezawodności.

Unsafe

Zapewnia żadnych ograniczeń.Nie gwarancji bezpieczeństwa i niezawodności jest możliwe dla kod zarządzany, działająca w ramach tego zestaw uprawnień.Wszelkie uprawnienia, a nawet niestandardowe uprawnienia włączone przez administratora, jest przyznawane kodu uruchomionego na tym poziomie zaufania.

Kiedy CLR jest obsługiwana przez Analysis Services, wyboru uprawnień opartych na stosie — prowadzona zatrzymuje się na granicy z macierzystego Analysis Services Kod. Każdy kod zarządzany w Analysis Services zestawy zawsze mieści się w jednej z trzech kategorii uprawnienie podanych wcześniej.

COM (lub niezarządzanego) wirtualny plik dziennika procedur nie obsługują model zabezpieczeń środowiska CLR.

Personifikacja

Za każdym razem, gdy kod zarządzany uzyskuje dostęp do wszystkich zasób poza Analysis Services, Analysis Services następujące reguły skojarzone z ImpersonationMode Ustawienie właściwość wirtualny plik dziennika, aby upewnić się, że dostępu występuje w kontekście odpowiednich zabezpieczeń systemu Windows. Ponieważ korzystanie z zestawów Safe ustawienia uprawnień nie można uzyskać dostępu do zasobów poza Analysis Services, zasady te mają zastosowanie tylko w przypadku zestawów przy użyciu ExternalAccess i Unsafe ustawienia uprawnień.

  • Jeśli bieżący kontekst wykonywania odpowiada identyfikator logowania systemu Windows uwierzytelnieni i jest taka sama, jak kontekście oryginalny obiekt wywołujący (to znaczy jest nie AS wykonać w środku), Analysis Services będzie personifikować logowania systemu Windows uwierzytelnieni przed uzyskaniem dostępu do zasób.

  • Jeśli jest pośrednie AS wykonać zmianie kontekstu niż oryginalny obiekt wywołujący), próba dostępu do zasób zewnętrznych nie powiedzie się.

The ImpersonationMode właściwość can be zestaw to ImpersonateCurrentUser or ImpersonateAnonymous. Ustawienie domyślne ImpersonateCurrentUser, uruchamia wirtualny plik dziennika przy użyciu konta logowania sieciowego bieżącego użytkownika. Jeśli ImpersonateAnonymous ustawienie jest używane, kontekst wykonania jest odpowiada konto użytkownika IUSER_ logowania systemu Windowsservername na serwerze. Jest to konto gościa internetowego, które ma ograniczone uprawnienia na serwerze.Zespół uruchomiony w tym kontekście dostęp tylko ograniczonych zasobów na serwerze lokalnym.

Domeny aplikacji

Analysis Services nie ujawnia domen aplikacji bezpośrednio.Ze względu na to zbiór zestawów w tej samej domena aplikacji domen aplikacji może wykryć sobie nawzajem w czasie wykonywania przy użyciu System.Reflection obszar nazw w programie .NET Framework lub w inny sposób i mogą być wywoływane w sposób późnym wiązaniem do nich. Takie połączenia będą podlegały kontroli uprawnień używana przez Analysis Services zabezpieczenia na poziomie autoryzacja.

Nie gwarantuje, nie będą w znajdowaniu zestawów w tej samej domena aplikacji, ponieważ granic domen aplikacji i zestawy, które są przekazywane do każdej domena są zdefiniowane przez implementację.