Zestawy (Analysis Services - wielowymiarowych danych)

Microsoft SQL Server Usługi Analysis Services supplies lots of intrinsic functions for use with the Multidimensional Expressions (MDX) and Data Mining Extensions (DMX) languages, designed to accomplish everything from standard statistical calculations to traversing members in a hierarchy.Jednak podobnie jak w przypadku wszelkich innych niezawodne i złożonych produktów zawsze istnieje potrzeba rozszerzenia funkcjonalności takiego produktu dalsze.

Dlatego Usługi Analysis Services umożliwia dodawanie zestawów Usługi Analysis Services lub wystąpienie bazy danych.Zestawy pozwalają tworzyć zewnętrznych, zdefiniowanej przez użytkownika funkcji przy użyciu dowolnego wspólnej language runtime (CLR) języka, takich jak Microsoft Visual Basic.NET lub Microsoft Visual C#.Można również użyć językom automatyzacji Component Object Model (COM), takich jak Microsoft Visual Basic lub Microsoft Visual C++.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Zespoły COM może stanowić zagrożenie bezpieczeństwa.Ze względu na ryzyko i inne względy zestawów COM zostały zaniechane w SQL Server 2008 Analysis Services (SSAS).Zespoły COM mogą nie być obsługiwane w przyszłych wydaniach.

Zestawy umożliwiają rozszerzenie funkcji biznesowych MDX i DMX.Tworzenie funkcji, które mają do biblioteki, takie jak dynamiczne biblioteki dołączanej (dynamicznie DLL) i dodać biblioteki jako wirtualny plik dziennika do wystąpienie Usługi Analysis Services lub Usługi Analysis Services bazy danych.Następnie narażeni są metody publiczne w bibliotece jako funkcje zdefiniowane przez użytkownika do wyrażenia MDX i DMX, procedur, obliczenia, akcje i klient aplikacji.

wirtualny plik dziennika o nowych procedur i funkcji można dodać do serwera.Zestawy można poprawić lub dodać niestandardowe funkcje, który nie został dostarczony przez serwer.Korzystając z zestawów, można dodać nowe funkcje wyrażeń wielowymiarowych (MDX), dane górnictwa rozszerzenia (DMX) lub procedur przechowywanych.Zestawy są ładowane z lokalizacji, gdzie uruchamiania niestandardowych aplikacji i 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ą rozwinięte w zestawy.Programowanie w językach takich jak C#, Visual Basic .NET Framework.NET, zarządzanych języka C++.Zestawy COM są biblioteki COM, które muszą być zarejestrowane na serwerze

Zespoły mogą być dodawane do Server lub Database obiektów.Zespoły serwera może być wywołana przez dowolnego użytkownika podłączone do serwera lub dowolnego obiektu serwera.Zespoły bazy danych może być wywoływana tylko przez Database obiektów lub użytkowników podłączonych do bazy danych.

Prosty Assembly obiekt składa się podstawowe informacje (nazwa i identyfikator), plik kolekcja, oraz specyfikacje zabezpieczeń.

Plik kolekcja odnosi się do zestawów ładowanych plików i odpowiadające im debugowania (.pdb) pliki, jeśli pliki debugowania zostały załadowane z wirtualny plik dziennika plików.Zestaw plików są ładowane z lokalizacji, gdzie plików do określonych aplikacji, a kopia jest zapisywana na serwerze, razem z danymi.Kopia pliku wirtualny plik dziennika jest używany do ładowania wirtualny plik dziennika co czas usługa jest uruchomiona.

Specyfikacje bezpieczeństwa obejmują uprawnienia wirtualny plik dziennika i personifikacji używane do uruchamiania wirtualny plik dziennikau.

Wywoływanie funkcji zdefiniowanej przez użytkownika

Wywołanie funkcja zdefiniowanej przez użytkownika wirtualny plik dziennika jest wykonywana tak samo jak wywoływanie funkcja wewnętrznych, chyba, że należy użyć w pełni kwalifikowana nazwa.Na przykład funkcja zdefiniowanej przez użytkownika zwracającej typu oczekiwanego przez MDX jest uwzględnione w kwerendy MDX, jak pokazano w następującym przykładzie:

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ŁANIA.Należy użyć słowa kluczowego wywołanie funkcji zdefiniowanej przez użytkownika, które zwracają wartości nieważne lub zestawy rekordów i nie można używać słowa kluczowego ROZMOWY, jeśli funkcja zdefiniowana przez użytkownika zależy od obiektu w kontekście instrukcja MDX lub DMX lub skryptu, takie jak bieżącej kostki lub dane model wyszukiwania.Wspólne wykorzystanie funkcja o nazwie poza kwerendy MDX lub DMX jest użycie modelu obiektowego AMO do wykonywania zadań administracyjnych.Jeśli na przykład użytkownik chciał użyć funkcja MyVoidProcedure(a, b, c) w instrukcja MDX zatrudnionych byłoby następującej składni:

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

Zespoły Uproszczenie projektowania bazy danych, włączając wspólny kod raz opracowane i przechowywane w jednym miejscu.Deweloperzy oprogramowania klienta mogą tworzyć biblioteki funkcje Usługi Analysis Services i rozpowszechnić je z ich wniosków.

Zespoły i funkcje zdefiniowane przez użytkownika można duplikować nazwy funkcja Usługi Analysis Services bibliotekę funkcja lub innych zespołów.Jak wywołać funkcja zdefiniowaną przez użytkownika za pomocą jego w pełni kwalifikowana nazwa Usługi Analysis Services będzie używać poprawnej procedury.Do celów zabezpieczeń i wyeliminować prawdopodobieństwo wywołania zduplikowaną nazwę w bibliotece innej klasy Usługi Analysis Services wymaga użycia tylko w pełni kwalifikowane nazwy dla procedury przechowywanej.

Wywołanie funkcji zdefiniowanej przez użytkownika z określonego wirtualny plik dziennika CLR, funkcja zdefiniowana przez użytkownika jest poprzedzony nazwę wirtualny plik dziennika, klasa Pełna nazwa i nazwa procedury, jak pokazano poniżej:

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

Ze względu na zgodność ze starszymi wersjami Usługi Analysis Services, dopuszczalne jest również następującą składnię:

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

Jeśli biblioteki 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 opiera się na.Model zabezpieczeń NET Framework, który jest model zabezpieczeń dostępu do kodu..NET Framework obsługuje mechanizm zabezpieczeń dostępu do kodu założono, że środowisko wykonawcze mogą obsługiwać zarówno pełni zaufane i częściowo zaufanego kodu.Zasoby, które są chronione.NET Framework zabezpieczenia dostępu kodu zazwyczaj są pakowane według 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ń odpowiednich uprawnień zasób.

Dla zestawów, uprawnienie Wykonywanie jest przekazywana z PermissionSet Właściwość Assembly obiektu.Odbiera uprawnienia, które kod zarządzany są określone przez zasady zabezpieczeń w mocy.Istnieją już trzy poziomy zasad obowiązujących w innych niż-Usługi Analysis Services obsługiwane środowiska: przedsiębiorstwa komputera i użytkownika.Skuteczne listę uprawnień, które otrzymuje kod jest określana przez przecięcie uzyskane przez te trzy poziomy uprawnień.

Usługi Analysis Services dostarcza poziom zasad zabezpieczeń poziom hosta do środowiska CLR podczas obsługi Zasada ta jest poziom dodatkowych zasad poniżej poziomów trzech zasad, które zawsze efekt.Zasada ta jest zestaw dla każdej domena aplikacji, utworzony przez Usługi Analysis Services.

Usługi Analysis Services Zasad poziom hosta jest kombinacją Usługi Analysis Services ustalone zasady dla zestawów systemowych i określone przez użytkownika dla użytkownika zestawów.Określona przez użytkownika element Usługi Analysis Services hosta zasad jest oparty na właściciela wirtualny plik dziennika, określając jedną z trzech pakiety uprawnień dla każdego wirtualny plik dziennika:

Ustawienie uprawnienia

Opis

Safe

Zawiera uprawnienie do obliczenia wewnętrznej.To uprawnienie, Wiadro z farbą nie przypisuje uprawnienia dostępu do chronionych zasobów w.NET Framework.Jeśli nie określono z kolorem uprawnienia domyślne dla wirtualny plik dziennika jest PermissionSet właściwość.

ExternalAccess

Udostępnia te same jako Safe Ustawienie dodatkową możliwość dostępu do zasobów zewnętrznych systemu.To uprawnienie, Wiadro z farbą nie oferuje zabezpieczeń gwarantuje (chociaż można zabezpieczyć ten scenariusz), ale zapewnia gwarancje wiarygodności.

Unsafe

Zawiera żadnych ograniczeń.Bez gwarancji bezpieczeństwa lub niezawodności można przewidzieć kod zarządzany uruchomiony ten zestaw uprawnień.Każdy, nawet niestandardowe uprawnienia włączone przez administratora, uprawnienia do kodu, w tym poziom zaufania.

Kiedy CLR jest obsługiwana przez Usługi Analysis Services, sprawdzenie uprawnień opartych na stosie Idź zatrzymuje się na granicy z macierzystego Usługi Analysis Services kodu.Dowolny kod zarządzany w Usługi Analysis Services zespołów mieści się zawsze w jednej z trzech kategorii uprawnienia wymienione wcześniej.

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

Personifikacja

Gdy kod zarządzany uzyskuje dostęp do dowolnego zasób poza Usługi Analysis Services, Usługi Analysis Services reguły skojarzone z ImpersonationMode Ustawienie właściwość wirtualny plik dziennika, aby upewnić się, że dostępu występuje w odpowiednich systemu zabezpieczeń kontekstu.Ponieważ przy użyciu zestawów Safe Ustawienia uprawnień nie można uzyskać dostępu do zasobów poza Usługi Analysis Services, reguły te mają zastosowanie tylko dla zespołów przy użyciu ExternalAccess i Unsafe Ustawienia uprawnień.

  • Jeśli bieżący kontekst wykonanie odpowiada logowania Windows uwierzytelnione i jest taka sama jak kontekst oryginalny obiekt wywołujący (czyli jest nie jako wykonywanie w środku), Usługi Analysis Services personifikuje logowania Windows uwierzytelniane przed uzyskaniem dostępu do zasób.

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

ImpersonationMode zestaw właściwość ImpersonateCurrentUser lub ImpersonateAnonymous.Ustawienie domyślne ImpersonateCurrentUser, uruchamia wirtualny plik dziennika w obszarze bieżący użytkownik sieci logowania konta.Jeśli ImpersonateAnonymous ustawienie jest używane, kontekst wykonania jest konto użytkownika logowania systemu Windows IUSER_ odpowiadaservername na serwerze.To jest konto gościa internetowego, który ma ograniczone uprawnienia na serwerze.W tym kontekście wirtualny plik dziennika dostęp tylko ograniczonych zasobów na serwerze lokalnym.

Domen aplikacji

Usługi Analysis Services nie ujawnia domen aplikacji bezpośrednio.Z powodu zestaw zespołów w tej samej domena aplikacji domen aplikacji można wykryć wzajemnie na wykonanie czas za pomocą System.Reflection nazw w.NET Framework lub w inny sposób i można do nich w sposób późnym wiązaniem.Takie połączenia będą podlegać kontroli uprawnień używana przez Usługi Analysis Services zabezpieczeń oparte autoryzacja.

Nie można polegać na znajdowanie zestawów w tej samej domena aplikacji, ponieważ granic domen aplikacji i zestawy, które przechodzą w każdej domenie są zdefiniowane przez implementację.