快捷搜索:

《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十

导读:本文主要先容Analysis Service的安然问题,分外是账号的权限分配,包括:

■1、创建一个本地测试账号和基础数据库角色

■2、限定标准属性层次布局(Attribute-Hierarchy Restrictions)

■3、限定父子层次布局(Restricting Parent-Child Hierarchies)

■4、实施Cell级其余限定(Implementing Cell-Level Restrictions)

本文所用数据库和所有源码,请到微软官网下载

1、创建一个本地测试账号和基础数据库角色

创建本地账号的步骤如下:

假定账号为MdxUser,属于用户组MdxUserGroup。

创建数据库的角色如下:Role

下来查验我们上面的设置是否生效。我们应用UserName函数(http://msdn.microsoft.com/zh-cn/library/ms146016.aspx)

在cmd中输入:

Set ComputerName

rem ‘获取机械名为AP4

RunAs /user:computernameMdxUser "ssms"

此时提示输入mdxuser账号的密码:

输入成功后,即可以MdxUser登录Analysis Service

例11-1

WITH

MEMBER [Measures].[Current User] AS

UserName()

SELECT

{[Measures].[Current User]} ON COLUMNS

FROM [Step-by-Step]

;

修正以仅返回当前登录的用户名

例11-2

WITH

MEMBER [Measures].[Current User] AS

VBAMDX!Right(

UserName(),

VBAMDX!Len(UserName()) -

VBAMDX!Instr(UserName(),"")

)

SELECT

{[Measures].[Current User]} ON COLUMNS

FROM [Step-by-Step]

;

顺便我们先容一个技术,我们在查询时不知道列或者仅想作测试时,可以用empty Sets来代替,其感化类似于SQL查询中的“*”。

例11-3

SELECT

{} ON COLUMNS,

{[Product].[Product].[Product].Members} ON ROWS

FROM [Step-by-Step]

2、限定标准属性层次布局(Attribute-Hierarchy Restrictions)

第一步设计容许集,在此之前我们先看一个基础示例:

例11-4

SELECT

{} ON COLUMNS,

{[User].[User].[User].Members} ON ROWS

FROM [Step-by-Step]

;

假如不盼望MdxOtherUser呈现在这个查询结果中,那么如下:

例11-5

SELECT

{} ON COLUMNS,

StrToSet(

"{([User].[User].[User].[" +

VBAMDX!Right(

UserName(),

VBAMDX!Len(UserName()) -

VBAMDX!Instr(UserName(),"")

) + "])}"

) ON ROWS

FROM [Step-by-Step]

;

留意上例中应用了StrToSet(http://msdn.microsoft.com/zh-cn/library/ms144782.aspx),类似的还有

StrToValue(http://msdn.microsoft.com/zh-cn/library/ms144951.aspx)

StrtoTuples(http://msdn.microsoft.com/zh-cn/library/ms146079.aspx)

您可能还会对下面的文章感兴趣: