zoukankan      html  css  js  c++  java
  • SQL 2005 分析服务基于角色的动态授权 无为而为

    背景:

    一个分析数据库,包含多个产品,全国各个地区的业务数据(比如销售数据等),

    image

    要求

    1:各个产品负责人查看自己产品的数据

    2:各个地区只能查看自己的数据

     

    方案:

    SQL 2005 有基于角色的授权服务,通过设置产品和地区角色,来控制对数据的访问。

     

    步骤:

    0:在域上设置帐号和安全组

    建立安全组:产品(mbiproducts),地区(mbidepartment)

    如果查看产品、地区数据的账号尚未建立,则建立相应帐号

    1:在地区维度和产品维度添加帐号属性(处理数据时应将账户的数据导入该属性)

    image image

    2:添加角色【产品】,

    账号映射:

    image

    数据源为:read

    image

    image

    关键点之一【Cell Data】:[产品].[账号].currentmember=StrToTuple("[产品].[账号].&["+LCase(UserName)+"]"),这是控制该角色不允许访问其他没有授权的Cell(访问时显示N/A).

    image

    关键点之二: StrToTuple("[产品].[账号].&["+LCase(UserName)+"]"),

    这用过控制使用该维度的时候只显示已授权的维度,其他的维度不会显示(因为显示出来数据的N/A)

    image 

    注意启用image ,这样Total是已授权的Total而不是真的Total。

    到此,功能设置完毕。

    测试Tip:

    使用多维数据集(Cube)的浏览器(Browser)来测试基于角色的权限最方便。

    只要简单点击左上角的切换用户(Change User)即可任意切换到所需用户,

    image

    最终效果:

    管理员用户,可看全部品种:

    image

    单个产品用户,只看单个品种:

    image

    基于地区的授权和上述基于产品的授权过程完全相同。

  • 相关阅读:
    spring中@value注解需要注意
    mysql创建utf-8字符集数据库
    Access denied for user 'root'@'localhost' (using password:YES) 解决方案[转]
    MySql 5.7.20安装
    Shiro 登录认证源码详解
    为什么说Java匿名内部类是残缺的闭包
    Java中的闭包之实例一
    使用Eclipse的Working Set管理项目
    glibc下载安装
    Struts2 整合 Hibernate 框架
  • 原文地址:https://www.cnblogs.com/cleo/p/BI_Analysis_Role_Based_Secuity.html
Copyright © 2011-2022 走看看