Programowanie AMO zabezpieczeń obiektów
In Microsoft SQL Server Usługi Analysis Services, programming security objects or running applications that use AMO security objects requires being a member of the Server Administrator group or the Database Administrator group.Server Administrator and Database Administrator are an access levels supplied by SQL Server Usługi Analysis Services.
W Usługi Analysis Services użytkownikowi dostępu do dowolnego obiektu jest uzyskiwana poprzez połączenie role i uprawnienia przypisane do tego obiektu.Aby uzyskać więcej informacji, zobacz AMO zabezpieczeń klas.
Rola i uprawnienia obiektów
Role serwera zawiera tylko jedną rolę kolekcja roli Administratorzy.Nie można dodać nowe role do kolekcja role serwera.Członkostwo w roli Administratorzy zezwala na pełny dostęp do wszystkich obiektów na serwerze
Role obiekty są tworzone poziom bazy danych.Konserwacja roli wymaga tylko dodawanie lub usuwanie członków z roli, lub oraz dodawanie i upuszczając ról do Database obiektu.Rola nie można usunąć, jeśli nie ma żadnych Permission obiektu skojarzone z rolą.Aby upuścić roli, wszystkie Permission obiektów w Database obiekty muszą być przeszukiwany oraz Role usunięty z uprawnienia, przed Role można upuszczać z Database.
Uprawnienia zdefiniuj akcje, włączonym obiektu, gdy dostarczone uprawnienie.Uprawnienia mogą być dostarczane do następujących obiektów: Database, DataSource, Dimension, Cube, MiningStructure, and MiningModel.Konserwacja uprawnienie wymaga przyznania lub odwoływanie włączony dostęp przez właściwość odpowiedniego dostępu.Dla każdego dostępu włączony jest właściwość, którą zestaw żądany poziom dostępu.Dostępu można zdefiniować dla następujących operacji: Proces ReadDefinition, Odczyt, zapis i administrowania.Administrowanie dostępu jest definiowana tylko na Database obiektu.Poziom zabezpieczeń administrator bazy danych są uzyskiwane, gdy rola jest przyznawana z uprawnieniami Administruj bazy danych.
Poniższy przykład tworzy cztery role: Administratorzy bazy danych, procesory, autorzy i czytników.
Bazy danych Administratorzy mogą administrować podanej bazy danych.
Procesory można przetworzyć wszystkie obiekty w bazie danych i sprawdzić wyniki.Aby zweryfikować wyniki, do odczytu obiektu bazy danych musi być jawnie włączone do podanego moduł, ponieważ Odczyt uprawnień nie stosuje się do obiektów podrzędnych.
Autorzy mogą do odczytu i zapisu dostarczonego moduł i komórka dostęp jest ograniczony do Stanów Zjednoczonych w kliencie wymiar.
Czytelnicy mogą odczytywać na podany moduł, a komórka dostęp jest ograniczony do Stanów Zjednoczonych w kliencie wymiar.
static public void CreateRolesAndPermissions(Database db, Cube cube)
{
Role role;
DatabasePermission dbperm;
CubePermission cubeperm;
#region Create the Database Administrators role
// Create the Database Administrators role.
role = db.Roles.Add("Database Administrators");
role.Members.Add(new RoleMember("")); // e.g. domain\user
role.Update();
// Assign administrative permissions to this role.
// Members of this role can perform any operation within the database.
dbperm = db.DatabasePermissions.Add(role.ID);
dbperm.Administer = true;
dbperm.Update();
#endregion
#region Create the Processors role
// Create the Processors role.
role = db.Roles.Add("Processors");
role.Members.Add(new RoleMember("")); // e.g. myDomain\johndoe
role.Update();
// Assign Read and Process permissions to this role.
// Members of this role can process objects in the database and query them to verify results.
// Process permission applies to all contained objects, i.e. all dimensions and cubes.
// Read permission does not apply to contained objects, so we must assign the permission explicitly on the cubes.
dbperm = db.DatabasePermissions.Add(role.ID);
dbperm.Read = ReadAccess.Allowed;
dbperm.Process = true;
dbperm.Update();
cubeperm = cube.CubePermissions.Add(role.ID);
cubeperm.Read = ReadAccess.Allowed;
cubeperm.Update();
#endregion
#region Create the Writers role
// Create the Writers role.
role = db.Roles.Add("Writers");
role.Members.Add(new RoleMember("")); // e.g. redmond\johndoe
role.Update();
// Assign Read and Write permissions to this role.
// Members of this role can discover, query and writeback to the Adventure Works cube.
// However cell access and writeback is restricted to the United States (in the Customer dimension).
dbperm = db.DatabasePermissions.Add(role.ID);
dbperm.Read = ReadAccess.Allowed;
dbperm.Update();
cubeperm = cube.CubePermissions.Add(role.ID);
cubeperm.Read = ReadAccess.Allowed;
cubeperm.Write = WriteAccess.Allowed;
cubeperm.CellPermissions.Add(new CellPermission(CellPermissionAccess.Read, "[Customer].[Country-Region].CurrentMember is [Customer].[Country-Region].[Country-Region].&[United States]"));
cubeperm.CellPermissions.Add(new CellPermission(CellPermissionAccess.ReadWrite, "[Customer].[Country-Region].CurrentMember is [Customer].[Country-Region].[Country-Region].&[United States]"));
cubeperm.Update();
#endregion
#region Create the Readers role
// Create the Readers role.
role = db.Roles.Add("Readers");
role.Members.Add(new RoleMember("")); // e.g. redmond\johndoe
role.Update();
// Assign Read permissions to this role.
// Members of this role can discover and query the Adventure Works cube.
// However the Customer dimension is restricted to the United States.
dbperm = db.DatabasePermissions.Add(role.ID);
dbperm.Read = ReadAccess.Allowed;
dbperm.Update();
cubeperm = cube.CubePermissions.Add(role.ID);
cubeperm.Read = ReadAccess.Allowed;
Dimension dim = db.Dimensions.GetByName("Customer");
DimensionAttribute attr = dim.Attributes.GetByName("Country-Region");
CubeDimensionPermission cubedimperm = cubeperm.DimensionPermissions.Add(dim.ID);
cubedimperm.Read = ReadAccess.Allowed;
AttributePermission attrperm = cubedimperm.AttributePermissions.Add(attr.ID);
attrperm.AllowedSet = "{[Customer].[Country-Region].[Country-Region].&[United States]}";
cubeperm.Update();
#endregion
}
Zobacz także