宗教活动差一点独小物件就可知于你下客厅逼格爆表

6) 根据当下用户的权力控制示范

DDL:

@AbapCatalog.sqlViewName: 'DEMO_CDS_USR'
@AccessControl.authorizationCheck: #CHECK
define view demo_cds_auth_user
  as select from
    abdocmode
    {
      key uname,
      key langu,
          flag
    };  

DCL:

@MappingRole: true
define role demo_cds_role_user { 
  grant select on demo_cds_auth_user
    where
      uname ?= aspect user; }

任凭旅游淘回去的留念,还是心痒痒了漫长到底购买回家之有些物件,都是属主人独一无二之尝尝和记。

2) 字面条件示例(Literal conditions

DDL:

@AbapCatalog.sqlViewName: 'DEMO_CDS_LITERAL'
@AccessControl.authorizationCheck: #CHECK
define view demo_cds_auth_literal
 as select from
 scarr
 {
 key carrid,
 carrname,
 currcode,
 url
 };

DCL:

@MappingRole: true
define role demo_cds_role_literal {
  grant select on demo_cds_auth_literal
  where carrid = 'LH'; }

世界上幽默的东西那么多,但即使生出一部分稍稍物件可以被人一眼惊艳再要衰三而竭…啊不是,一眼惊艳两肉眼掏钱三双眼拍案惊奇。

▌天生热爱大自然

不怕今天人们都停止在水泥森林里,但不论多注重的楼板都挡不歇同一颗热爱大自然之心呐。所以您得设想于太太打一些“小本”。

◤我打植物都是为花盆

比如说是自个儿这种对植物没有什么审美的人数也,买小花多少草摆在太太的来由反复是因花盆好看。嗯,就是这么浅薄…

●胡桃木植物花盆

图表源于knewone.com

按这个种了大半肉植物的胡桃木小花盆,无论是位于茶几上或电视柜上,打磨细致的边角、温和的木质和宁静的植物相得益彰,每次瞥到它都见面看颇纯情。

抑或下这种自发性灌溉植物的花盆,纯色的灵魂放在哪里还无骤。而且不要费心想在打,我这植物杀手也许算得不再杀生了…

●自动灌溉花盆

图来源kickstarter.com

◤桌面龙卷风

专注,前方发生龙卷风,请大家抱紧距离而最近底胖子。

大自然除了发peace的一边也闹fury的一端,所以除了摆弄那些安安静静的花花草草,你还会以你的桌上制造一集市龙卷风。

● Desktop Tornado

图形来源于hammacher.com

它们里面来一个雾化器可以使水雾化,再通过调试风向形成龙卷风的法。你可透过调整风扇改变龙卷风的金科玉律,这就是是风传着的翻手为云覆手为雨啊…

▌简直酷到没朋友

◤桌面小火焰

煽完了民歌,你还足以以桌上点火。当然,产生其他后果我概不负责,小朋友要于老人家指导下看以下内容。

这小火盆是烧生物乙醇的,所以不会见发生烟熏黑而的房。简洁的陶瓷外观及“火”这种旧之能相结合,复古或现代少种植装修风格都好hold住。

●Cabare Tabletop Bio-Fireplace

图表源于fancy.com

自家生硌担心的凡,万一不小心倾斜了它们见面不见面产生乙醇漏出来…嗯还是拿她摆在相距走区域多一些之地方,让它安静地烧,只可远观不可亵玩。

◤钢珠机械座钟

其一机械座钟总让自家想起那些多米诺骨牌的超酷视频,不过此比大小酷一点就是是了。

图来源于amazon.com

当下上面的钢珠会各国走同一环的年月是同样分钟,你可一直都听到时间的流……真是一个发生存在感的摆件呢。来探视动图感受一下。

图表源于youtube.com

◤积家空气钟

苟您将此空气钟买掉家,你就可对恋人说,“你看,永动机其实是在的。”

●Atmos Classique经典空气钟

图表源于jaeger-lecoultre.com

如此背物理学常识的话语一样说讲就是得影响全场,然后您虽好开分解了:

空气钟其实最早1928年就让发明出来了,它可以依赖空气被轻微的热度别得动力。无需电池无需发条,一直运行下去,子子孙孙无穷匮为…

▌只想静享受自己的自然界

而地球上之物玩腻了,你还可一览宇宙。这些同大自然有关的粗物,平时足视作高冷的摆件提升客厅逼格,把玩的时段还会被你体会至啊叫:手不是手,是温和的宇宙…

◤月球灯

立即实质上是个LED灯,表面的流星坑触感明显。但是只有手掌大小所以也照亮不了差不多分外范围,很符合放在沙发旁边,夜晚闭房间里有所的灯火就为它们独自亮在,享受一个总人口之沉静。

图片来自nosigner.com

◤太阳系水晶立方

倘说月球灯代表黑夜,那么是太阳系水晶则象征了明媚的白昼。你得将他身处茶几上,早上太阳以进的时,水晶立方投射出锋利的光泽,凝固在水晶里之微小太阳系清晰可见。

●Beyond our solar system

图来源livingworld.net

摆件这种事物,如果不得不放在一边为不休太高冷。六平都赶紧至了,趁机玩起来吧!!!

▌就爱玩机械摆件

在现在智能化趋势的牵动下,我感到人类恨不得把拥有东西还衔接上电连日来wifi。但自始终认为,纯机械的物件是怪为丁在迷的。

◤Kikkerland发条玩具

自家先是涂鸦以市里见到此武器的早晚,和同伙玩样品玩了遥遥无期,简直笑成神经病…

图形来自amazon.com

双重探鬼畜的动图感受一下…

还有它的伴侣们……

图形来自amazon.com

它的动能完全出自于弦,细长的部件看起有些脆弱…不了平时您不怕给她安安安静地张在厅堂嘛,心情不好的时段再把它以到茶几上抽搐一会儿…

◤打字机

例如是打字机这样以意味着着复古和现代化的事物并无多,如果会把同华发年代都工艺精细的打印机摆在夫人,就得了完全都是如出一辙件艺术品。

图形来源于cn.pinkoi.com

同时若保养得好,你还好换上色带用它们打字。平时于几实行标签玩玩,重要之节还能够为此来打一封情书,每一个字母都郑重地敲在纸上,每一样词心情都擂在TA心上…啧啧。

◤牛顿摆球

牛顿摆球是呈现动量守恒原理的装置,我除了以中学物理课上看出了她之外,其余都是其当做装饰出现的。

图来源knewone.com

五金的小球看上去十分有质感,放在女人为十分好看的。而且摆动时“duang duang
duang”的音响为不行催眠。

之所以当您的孤老不断地及你聊死无聊之话题的下,你虽可温和地打断一下:

恋人若看自己这个摆件,虽然是几个大概的小球,但它含有着一个大体原理,叫动量守恒,你看,当我把一个小球提到一个莫大的时节松手,另一面的小球也会意外起及平的冲天……唉?朋友若是无是困了,要无我送您回吧…

▌好玩的录像大

◤乐高星战系列 LEGO Star War DEATH STAR

乐高是单好东西,不但可玩,还可时不时发表脑洞拼出一些奇奇怪怪的事物。所以您掌握我家电视机旁的乐高为什么老是都丰富得不一致了咩~

并且打高为是要是扣段位的,比如我拿亲生同事@阿历粑粑
的乐高抢来也只能摆成这种段位:

然有些人就可知合并成这种段位:

图形来源于amazon.com

放这么一个用诚意耐心手在好之事物在大厅,一定会让具备来若小之嫖客惊艳的,成就感满满。

◤星际迷航 三维国际象棋

这象棋应该算是玩具…但是自个儿并无思量明白nerd的嬉戏是怎么耍的,所以自己觉着把她位于客厅当摆件也是独雅好之取舍。

图来源《生活异常爆炸》剧照

眼看东西逼格最高的少数凡,它发生留洋镀银珍藏版可以请,所以不见面玩真的莫关联…壕们你们真的不考虑一下么~

◤复仇者联盟手办

压轴的来了…不是因手办多好打,只是我多年来确实好入迷《复仇者联盟》。

●复仇者联盟 Hot Toys

图形来源于actionfigurefury.com

手办为真人1/6
轻重复制,连发丝都根根分明,钢铁侠那个尚能显示灯。如果会选购同样模拟位于女人,我简直能开心三天三夜间。

美亚达发出售,平均300大多刀一个…对!是一个!所以我一度放弃收藏了。如果您小有一致模拟的言辞请晓我!我要和你交朋友…

终极,朋友等儿童节快乐~

作者: Greco

乍浪微博:@貓貓貓貓貓貓貓需要focus

敢说若知道生活吧?

迎推荐给与热爱生活的情侣等

转载&合作,请联系我们:hedonist@mymanna.me

5. 权力的并集(UNION)和混(INTERSECTION)

1,通过“AND”取权限的鱼龙混杂。这里定义了一个初的权杖“ZS_FLDAT”,它只是含有3上的限量(2015.02.04

  • 2015.02.06)。修改DCL,增加混合:

    @EndUserText.label: ‘Role for Z05_I_FLIGHTBYAIRPORT’
    @MappingRole: true
    define role Z05_ROLE {

      grant select on Z05_I_FlightByAirport
       where ( Airline) = 
              aspect pfcg_auth (  ZS_CARRID,
                                  CARRID,
                                  actvt = '03' ) AND
             (FlightDate ) = 
              aspect pfcg_auth (  ZS_FLDAT,
                                  FLTDATE,
                                  actvt = '03' );
    

    }

宗教活动 1

2,通过“OR”取并集:

@EndUserText.label: 'Role for Z05_I_FLIGHTBYAIRPORT'
@MappingRole: true
define role Z05_ROLE {
    grant select on Z05_I_FlightByAirport
     where ( Airline) = 
            aspect pfcg_auth (  ZS_CARRID,
                                CARRID,
                                actvt = '03' ) OR
           ( FlightDate ) = 
            aspect pfcg_auth (  ZS_FLDAT,
                                FLTDATE,
                                actvt = '03' );

}

宗教活动 2

 3,如果当一个权力对象中上加这简单单字段,那结果就仿佛于交集:

宗教活动 3

@EndUserText.label: 'Role for Z05_I_FLIGHTBYAIRPORT'
@MappingRole: true
define role Z05_ROLE {
    grant select on Z05_I_FlightByAirport
     where ( Airline, FlightDate) = 
            aspect pfcg_auth (  ZS_NEW,
                                CARRID,
                                FLTDATE,
                                actvt = '03' );

宗教活动 4

注意:不用忘记于Cube
CDS视图的层级定义权限,而无分析视图层级。
若是您以条分缕析查询层级定义了和第5局部一如既往之权,那么:

  • 以SAP HANA Studio的数据预览中,结果看起是对准之。
  • 当RSRT, BO Analysis for
    Excel和其它使用了OLAP引擎的工具被,使用的是Cube
    CDS视图的权位(如有定义)。

注意:以HANA
Studio的数预览中,分析查询的结果碰头所有显得。为了纠正这点,可以吃分析查询创建以下访问控制:

@MappingRole: true
define role Z05_ROLE_2 {
  grant select on Z05_C_FlightByAirportQuery 
               inherit Z05_ROLE; }

敲定:你可以呢CDS分析视图定义权限的夹或者并集。

 

本文结束,感谢关注!

 

英文原稿:ABAP CDS views with Authorization based on Access
Control

 

倘是错过别人家,能掀起我之高频无是客厅里那些大件的家电及电器,而是那些安静的摆件。

正文的论述基于自己在采取的S4/HANA 1610 on NW 7.51.

据此自己今天即来谈说那些吃自身心目念念种起都久终于有相同上自己只要全买回家之……摆件。

本文链接:http://www.cnblogs.com/hhelibeb/p/7427753.html

图表源于knewone.com

1. 规范示例的访问控制例子

2. 因PFCG权限创建一个大概的例证

复制以下代码,创建我们温馨的CDS视图:

@AbapCatalog.sqlViewName: 'ZDEMO_CDS_PFCG'
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Demo access pfcg'
define view Zdemo_Access_Pfcg as select from scarr
 {
 key carrid,
 carrname,
 currcode,
 url
 };   

3,现在,如果在HANA
Studio中开辟数据预览,我们用好看所有记录。访问控制目前还无有。

宗教活动 5

2,在SU21创立我们温馨的自定义权限对象:

宗教活动 6

对每个对象定义权限字段和走字段,加入允许倒“03
显示”。在本示例中,我们如果于ZS_CONNID中补充加字段CARRID和CONNID。

宗教活动 7

宗教活动 8

3,为ZS_CARRID创建数量控制。

@MappingRole: true
define role zdemo_access_pfcg {
  grant select on Zdemo_Access_Pfcg
  where (carrid) =
  aspect pfcg_auth (zs_carrid, carrid, actvt='03'); }

4,在PFCG中开创一个初的角色,在此地丰富刚刚创建的权位对象,定义用户应看到的根据选择字段的数据。不要忘记生成配置。为咱的用户分配角色。

每当首先个示范中,我们特使ZS_CARRID。在文章的尾,我们会就此到任何的靶子。

宗教活动 9

宗教活动 10

5,回到HANA Studio来测试权限。打开我们的CDS视图的数码预览:

宗教活动 11

今日咱们就视了定义好的飞行企业(CARRID)字段的笔录。

注意:

  1. 如若以ABAP字典(SE11)中开辟视图,结果碰头是不折不扣数据记录。
  2. 假设当DDL中改注解为如下内容,并激活CDS视图,我们用得以重复于数码预览中看到满数据。这意味着检查已经倒闭。

    @AccessControl.authorizationCheck: #NOT_ALLOWED

结论:在一个从数据库表中查询数据的概括例子中,我们看了访问控制是安工作的。下面说出口CDS分析视图。

5) 继承权限示例

DDL:

@AbapCatalog.sqlViewName: 'DEMO_CDS_INH'
@AccessControl.authorizationCheck: #CHECK
define view demo_cds_auth_inherited
  as select from
    demo_cds_auth_lit_pfcg
    {
      key carrid,
          carrname,
          currcode,
          url
    };  

DCL:

@MappingRole: true
define role demo_cds_role_inherited {
  grant select on demo_cds_auth_inherited
               inherit demo_cds_role_lit_pfcg or currcode = 'USD'; }

每当是例子会显示USD和EUR类型货币的笔录。

4) 字面条件与PFCG权限结合示例

DDL:

@AbapCatalog.sqlViewName: 'DEMO_CDS_LITPFCG'
@AccessControl.authorizationCheck: #CHECK
define view demo_cds_auth_lit_pfcg
 as select from
 scarr
 {
 key carrid,
 carrname,
 currcode,
 url
 };    

DCL:

@MappingRole: true
define role demo_cds_role_lit_pfcg {
  grant select on demo_cds_auth_lit_pfcg
  where (carrid) =
  aspect pfcg_auth (s_carrid, carrid, actvt='03') and
         currcode = 'EUR'; }

3) PFCG权限示例

DDL:

@AbapCatalog.sqlViewName: 'DEMO_CDS_PFCG'
@AccessControl.authorizationCheck: #CHECK
define view demo_cds_auth_pfcg
 as select from
 scarr
 {
 key carrid,
 carrname,
 currcode,
 url
 }; 

DCL:

@MappingRole: true
define role demo_cds_role_pfcg {
  grant select on demo_cds_auth_pfcg
  where (carrid) =
  aspect pfcg_auth (s_carrid, carrid, actvt='03'); }

 权限对象s_carrid足当事情代码SU21中的BC_C object类下查及。

 

3. 富含CUBE数据类的CDS分析视图

1,通过复制已有些内容创建我们和好的CDS视图。这是一个含有CUBE数据分类的CDS视图(译注:代码框出了碰问题,大家集合看下..):

 

@AbapCatalog.sqlViewName: 'Z05_CFLIGHTAQ'                       // Name of the CDS database view in the ABAP Repository
@AccessControl.authorizationCheck: #CHECK              // CDS authorizations, controls the authorization check. In S4H410 not required
@EndUserText.label: 'Available Flights'                         // Translatable short text. Max 60characters. Text label is exposed to Analytica tools and the OData service
@VDM.viewType: #CONSUMPTION                                     // This is a CONSUMPTION view
@Analytics.query: true                                          // By tagging the CDS view as an analytical query it will be exposed to the analytic manager
@OData.publish: true                                            // Generates a suitable OData service, that will use the analytical query, when the CDS entity is activated

define view Z05_C_FlightByAirportQuery as select from Z05_I_FlightByAirport     // A analytical query CDS is implemented using a query select from CDS view Z00_I_FlightByAirport
                                                                                // Take care with OData publishing the max. lenght is 26 characters
{
    @AnalyticsDetails.query.axis: #ROWS                         // Defines the default row/colums apperance for the column Airline
    Z05_I_FlightByAirport.Airline,                              // Use the column Airline
    @AnalyticsDetails.query.axis: #ROWS                         // Defines the default row/colums apperance for the column FlightConnection
    Z05_I_FlightByAirport.FlightConnection,                     // Use the column FlightConnection
    @AnalyticsDetails.query.axis: #ROWS                         // Defines the default row/colums apperance for the column FlightDate
    Z05_I_FlightByAirport.FlightDate,                           // Use the column FlightDate
    @Consumption.filter: {selectionType: #SINGLE, multipleSelections: false, mandatory: false }  // Creates a mandatory filter on the values in the field AirportFrom
    @AnalyticsDetails.query.axis: #ROWS                         // Defines the default row/colums apperance for the column AirportFrom
    @EndUserText.label: 'Departure Airport'                     // Add an human readable enduser label to make sure that we can differentiate between AirportFrom and AirportTo
    Z05_I_FlightByAirport.AirportFrom,                          // Use the column AirportFrom
    @Consumption.filter: {selectionType: #SINGLE, multipleSelections: false, mandatory: false } //  Creates an optional filter on the values in the field AirportTo
    @AnalyticsDetails.query.axis: #ROWS                         // Defines the default row/colums apperance for the column AirportTo
    @EndUserText.label: 'Arrival Airport'                       // Add an human readable enduser label to make sure that we can differentiate between AirportFrom and AirportTo 
    Z05_I_FlightByAirport.AirportTo,                            // Use the column AirportTo                             
    Z05_I_FlightByAirport.Currency,                             // Use the column Currency  
    Z05_I_FlightByAirport.AircraftType,                         // Use the column AircraftType
    @AnalyticsDetails.query.axis: #COLUMNS                      // Defines the default row/colums apperance for the column FlightPrice
    Z05_I_FlightByAirport.FlightPrice,                          // Use the column FlightPrice
    Z05_I_FlightByAirport.MaximumNumberOfSeats,                 // Use the column MaximumNumberOfSeats
    Z05_I_FlightByAirport.NumberOfOccupiedSeats,                // Use the column NumberOfOccupiedSeats
    @DefaultAggregation: #FORMULA                               // Important to know for formular placement is evaluation time. Inside the final query, the evaluation is done after the flightbyairport
                                                                // view aggragation, so it's not on a very detailed level or even row level, but at the aggragate level. This is important for avarages 
                                                                // as they cannot be evaluated at the detail level 
    @EndUserText.label: 'Available Seats'
    @AnalyticsDetails.query.axis: #COLUMNS                      // Defines the default row/colums apperance for the column NumberOfAvailableSeats
    Z05_I_FlightByAirport.MaximumNumberOfSeats - Z05_I_FlightByAirport.NumberOfOccupiedSeats as NumberOfAvailableSeats  // this is a formular (calculated column) 
} 

2,在访问控制中展开定义:

@EndUserText.label: 'Role for Z05_I_FLIGHTBYAIRPORT'
@MappingRole: true
define role Z05_ROLE {
    grant select on Z05_I_FlightByAirport
    where ( Airline ) = 
    aspect pfcg_auth (  ZS_CARRID,
                        CARRID,
                        actvt = '03' );

}

3,在文章的第2有的,我们以权力对象吃补充加了ZS_CARRID。在HANA
Studio的多寡预览中反省结果。行数是530.宗教活动 12

 

4,在作业代码RSRT中反省结果,行数也是530。结果一律。

5,在BO Analysis for
Excel中反省结果。结果是相同的,对用户而言,只有选中的航空企业可以为访问。

 宗教活动 13

注意:没有AF飞企业之事体数据,这是者的屏幕未亮相关数据的因由。

  1. 正规示例的访问控制。
  2. 基于PFCG权限创建一个简的事例。
  3. 含蓄CUBE数据类的CDS分析视图。
  4. CDS分析查询视图的访问控制。
  5. 权限对象的并集(UNION)或者夹杂(INTERSECTION)。

Hi!

1) 全访问示例(Full access

DDL:

@AbapCatalog.sqlViewName: 'DEMO_CDS_FULLACC'
@AccessControl.authorizationCheck: #CHECK
define view demo_cds_auth_fullaccess
  as select from
    scarr
    {
      key carrid,
          carrname,
          currcode,
          url
    };  

 DCL:

@MappingRole: true
define role demo_cds_role_fullaccess {
  grant select on demo_cds_auth_fullaccess; }

4. CDS分析查询视图的访问控制。

1,在第3有底CUBE CDS中开创一个解析查询视图。

@AbapCatalog.sqlViewName: 'Z05_CFLIGHTAQ'                       // Name of the CDS database view in the ABAP Repository
@AccessControl.authorizationCheck: #CHECK              // CDS authorizations, controls the authorization check. In S4H410 not required
@EndUserText.label: 'Available Flights'                         // Translatable short text. Max 60characters. Text label is exposed to Analytica tools and the OData service
@VDM.viewType: #CONSUMPTION                                     // This is a CONSUMPTION view
@Analytics.query: true                                          // By tagging the CDS view as an analytical query it will be exposed to the analytic manager
@OData.publish: true                                            // Generates a suitable OData service, that will use the analytical query, when the CDS entity is activated

define view Z05_C_FlightByAirportQuery as select from Z05_I_FlightByAirport     // A analytical query CDS is implemented using a query select from CDS view Z00_I_FlightByAirport
                                                                                // Take care with OData publishing the max. lenght is 26 characters
{
    @AnalyticsDetails.query.axis: #ROWS                         // Defines the default row/colums apperance for the column Airline
    Z05_I_FlightByAirport.Airline,                              // Use the column Airline
    @AnalyticsDetails.query.axis: #ROWS                         // Defines the default row/colums apperance for the column FlightConnection
    Z05_I_FlightByAirport.FlightConnection,                     // Use the column FlightConnection
    @AnalyticsDetails.query.axis: #ROWS                         // Defines the default row/colums apperance for the column FlightDate
    Z05_I_FlightByAirport.FlightDate,                           // Use the column FlightDate
    @Consumption.filter: {selectionType: #SINGLE, multipleSelections: false, mandatory: false }  // Creates a mandatory filter on the values in the field AirportFrom
    @AnalyticsDetails.query.axis: #ROWS                         // Defines the default row/colums apperance for the column AirportFrom
    @EndUserText.label: 'Departure Airport'                     // Add an human readable enduser label to make sure that we can differentiate between AirportFrom and AirportTo
    Z05_I_FlightByAirport.AirportFrom,                          // Use the column AirportFrom
    @Consumption.filter: {selectionType: #SINGLE, multipleSelections: false, mandatory: false } //  Creates an optional filter on the values in the field AirportTo
    @AnalyticsDetails.query.axis: #ROWS                         // Defines the default row/colums apperance for the column AirportTo
    @EndUserText.label: 'Arrival Airport'                       // Add an human readable enduser label to make sure that we can differentiate between AirportFrom and AirportTo 
    Z05_I_FlightByAirport.AirportTo,                            // Use the column AirportTo                             
    Z05_I_FlightByAirport.Currency,                             // Use the column Currency  
    Z05_I_FlightByAirport.AircraftType,                         // Use the column AircraftType
    @AnalyticsDetails.query.axis: #COLUMNS                      // Defines the default row/colums apperance for the column FlightPrice
    Z05_I_FlightByAirport.FlightPrice,                          // Use the column FlightPrice
    Z05_I_FlightByAirport.MaximumNumberOfSeats,                 // Use the column MaximumNumberOfSeats
    Z05_I_FlightByAirport.NumberOfOccupiedSeats,                // Use the column NumberOfOccupiedSeats
    @DefaultAggregation: #FORMULA                               // Important to know for formular placement is evaluation time. Inside the final query, the evaluation is done after the flightbyairport
                                                                // view aggragation, so it's not on a very detailed level or even row level, but at the aggragate level. This is important for avarages 
                                                                // as they cannot be evaluated at the detail level 
    @EndUserText.label: 'Available Seats'
    @AnalyticsDetails.query.axis: #COLUMNS                      // Defines the default row/colums apperance for the column NumberOfAvailableSeats
    Z05_I_FlightByAirport.MaximumNumberOfSeats - Z05_I_FlightByAirport.NumberOfOccupiedSeats as NumberOfAvailableSeats  // this is a formular (calculated column) 
} 

 

2,在HANA
Studio中进行数量预览,行数还是4894。看起CDS分析查询没有运用到Cube
CDS视图权限,但是事实并非如此。你并不需要为分析查询CDS视图创建额外的访问控制。

3,在Excel中检查RSRT或者BO分析的结果。结果表明Cube
CDS视图的权力在条分缕析查询中于及了企图。

宗教活动 14

留意:在条分缕析查询定义着未欲创造任何变量,就比如我们在蕴藏权限的BEx查询中那么。

4,修改Cube CDS视图,添加权限对象ZS_CONNID而非ZS_CARRID

@EndUserText.label: 'Role for Z05_I_FLIGHTBYAIRPORT'
@MappingRole: true
define role Z05_ROLE {
    grant select on Z05_I_FlightByAirport
     where ( FlightConnection) = aspect pfcg_auth (  ZS_CONNID,
                                                     CONNID,
                                                     actvt = '03' );

}

分析查询结果变得严了(在第2片段之第4步可视ZS_CONNID的定义).

现在结果的行数是212.

宗教活动 15

情节分成五独片:

对每一个CDS视图,我们且可以透过DCL(Data Control
Language)定义访问控制。在马上篇文章被,我会介绍ABAP
CDS视图中颇主要之一端:权限管理。

发表评论

电子邮件地址不会被公开。 必填项已用*标注