Udostępnij za pośrednictwem


clsCubeRole

Ostrzeżenie

  Ta funkcja zostanie usunięta z następnej wersji programu Microsoft SQL Server. Nie należy stosować tej funkcji w nowych projektach oraz jak najszybciej należy zmodyfikować aplikacje, w których obecnie jest używana ta funkcja.

Obiekt ClassType clsCubeRole zawiera określonej implementacji Decision Support Objects (DSO) Role interfejs.Ten obiekt zawiera kolekcje, metody i właściwości za pomocą Role interfejs.

Uwagi

Użyj obiektów ClassType clsCubeRole do zarządzania zestaw użytkowników, którzy mogą uzyskiwać dostęp do moduł (dowolnego typu) oraz sposób, w którym mają dostęp goA rola modułu ma nazwę, opis, obiekt nadrzędny typ klasy, listę użytkowników i zestaw uprawnień.Każde uprawnienie ma klucz i odpowiednie wyrażenie zgody.

Tworzenie ról poziom bazy danych (role bazy danych), a następnie przydzielić je do modułów (role moduł), dodając je do kolekcja ról związanych z moduł.Role przypisane do moduł automatycznie stosuje się do jego partycje i agregacji.

rola bazy danych można usunąć przez usunięcie go z bazy danych kolekcja roli obiektów.Jeśli tak zrobisz, system automatycznie usuwa odpowiednie role moduł z moduł kolekcja roli obiektów.

rola modułu można usunąć przez usunięcie go z moduł kolekcja roli obiektów.Kiedy zrobisz, odpowiednie rola bazy danych nie dotyczy.Jednakże definicja rola modułu pozostaje, dopóki aktualizacji lub przetworzyć moduł.

Przykład

Załóżmy, że konieczne jest zdefiniowanie ról o nazwie FinanceManagers, ProductionManagers i SalesManagers poziom bazy danych.Załóżmy również chcesz przypisać odpowiednie wiceprzewodniczący listy użytkowników dla każdej roli i Prezes firmy do listy użytkowników dla wszystkich trzech ról.Na koniec załóżmy, że chcesz utworzyć moduł dla każdego roku finansowego, produkcji i danych dotyczących sprzedaży w latach 1995, 1996 i 1997.

Aby zdefiniować odpowiednie role bazy danych i moduł tej sytuacji, należy użyć następującego kodu.

Ostrzeżenie

List użytkownika zdefiniowane role bazy danych są automatycznie skojarzone z odpowiednimi rola modułs i nie można zmienić na rola moduł poziom.

'Assume an object (dsoDB) of ClassType clsDatabase exists.
'Create database roles.
Dim DbRole_FinanceMgrs As DSO.Role
Dim DbRole_ProductionMgrs As DSO.Role
Dim DbRole_SalesMgrs As DSO.Role
Set DbRole_FinanceMgrs = dsoDB.Roles.AddNew("FinanceManagers")
Set DbRole_ProductionMgrs = dsoDB.Roles.AddNew("ProductionManagers")
Set SbRole_SalesMgrs = dsoDB.Roles.AddNew("SalesManagers")

'Define user lists for database roles.
'(In a real-world situation, actual user names would be
'used in place of titles like "President".)
DbRole_FinanceMgrs.UsersList = "President;VP_Finance"
DbRole_ProductionMgrs.UsersList = "President;VP_Production"
DbRole_SalesMgrs.UsersList = "President;VP_Sales"

'Update the repository for the database roles.
DbRole_FinanceMgrs.Update
DbRole_ProductionMgrs.Update
DbRole_SalesMgrs.Update

'Assume objects (Cube95, Cube96 and Cube97) of ClassType clsCube exist
'Create cube roles. Cube role names must be identical
'to the corresponding database role names.
Dim CubeRole_FinanceMgrs As DSO.Role
Dim CubeRole_ProductionMgrs As DSO.Role
Dim CubeRole_SalesMgrs As DSO.Role

'Add roles to Cube95.
Set CubeRole_FinanceMgrs = Cube95.Roles.AddNew("FinanceManagers")
Set CubeRole_ProductionMgrs = Cube95.Roles.AddNew("ProductionManagers")
Set CubeRole_SalesMgrs = Cube95.Roles.AddNew("SalesManagers")

'Add roles to Cube96.
Set CubeRole_FinanceMgrs = Cube96.Roles.AddNew("FinanceManagers")
Set CubeRole_ProductionMgrs = Cube96.Roles.AddNew("ProductionManagers")
Set CubeRole_SalesMgrs = Cube96.Roles.AddNew("SalesManagers")

'Add roles to Cube97.
Set CubeRole_FinanceMgrs = Cube97.Roles.AddNew("FinanceManagers")
Set CubeRole_ProductionMgrs = Cube97.Roles.AddNew("ProductionManagers")
Set CubeRole_SalesMgrs = Cube97.Roles.AddNew("SalesManagers")

'Update the repository for the cubes.
Cube95.Update
Cube96.Update
Cube97.Update