bi和ireport两个数据库权限如何设置

6138
5

何良磊 初学数据Lv2

发表于2018-6-14 09:39

悬赏1

已解决

楼主
数据库迁移,bi和report两个数据库用户只给了resource、connect权限,单独启动bi的时候,提示权限不足。请问下bi这个数据库用户要读取report用户的哪些数据,如何赋予权限

最近看过此主题的会员

wangqingrui

13407717840

892630793

13120183963

svsstar

txl

18360994180

18634521694

山海2

hcdHUAYU

liulei6511

伶俐

vishaw

liangchh

。。白

最佳答案
[size=13.3333px]
更详细说明参见下面的内容:
在项目应用中,BI&i使用的数据库连接池所对应的用户权限在不使用dba权限时,需要给数据库用户分配哪些权限才能够正常执行相关业务?本文主要介绍使用oracle数据库作为数据连接池时,BI和i系统数据库用户需要拥有怎样的一些权限。
一、BI需要的数据库权限
BI中有3类数据库连接池:服务器缺省连接池,主题集存储连接池,映射方案对应的数据库连接池。每类数据库连接池要求的权限有所不同。
1、服务器缺省连接池
缺省连接池用于存放机构用户、门户、计划任务和资源管理器等系统表。对于这个连接池的数据库用户,要求有创建表(table)、触发器(trigger)、序列(sequence)的权限。从BI41开始还需要有创建视图(view)的权限。
需要有创建表的权限显而易见,为什么还要有触发器和序列的权限?
因为部分系统表的主键字段是个自增长字段,如日志表,oracle中自增长字段由序列+触发器实现,所以,需要创建序列和触发器的权限,但不是所有数据库都需要这2权限,如db2、sql server、mysql等,这些数据库创建表时能添加自增长列,不需要序列+触发器实现,所以,不需要这2权限。
2、主题集存储连接池
主题集存储连接池用于存放分析表表样,结果表等系统表。对于这个连接池的数据库用户,要求有创建表(table)的权限即可。
3、映射方案对应的数据库连接池
主题集中映射方案对应的数据库连接池用于存放主题表和维表数据。对于这个连接池的数据库用户,要求有这些表的查看(select)、插入(insert)、修改(update)和删除(delete)权限以及修改表结构(alter table)的权限。
看到这里大家估计有疑问了,对于存放主题表和维表数据的库不是只要有表的查看权限就行了吗,为什么还要有其它权限?
我们来看看通过BI的维表管理能做哪些事情:
  • 根据数据库表建维表——这需要有表的查看(select)权限
  • 修改维表的字段设置,保存时会同步到对应的数据库表中——这需要有修改表结构(alter)的权限 . 值得注意的是,即使我们没有做任何修改,点击保存依然会按现在的维表结构去修改对应的数据库表结构。因为程序不知道目前的维表结构和数据库表结构是否一致。
  • 通过编辑内容能插入或者修改表中数据——这需要有表的插入(insert)、修改(update)、删除(delete)权限
  • BI既能根据已有数据库表创建维表,也能在创建维表时指定一个不存在表名,根据维表中的字段设置在数据库中自动创建一张数据库表——这需要用户有创建表(table)的权限
主题表也是类似的。
不过,如果我们只是从数据库表创建维表和主题表,不会通过维表和主题表功能创建数据库表、修改表结构或者表中数据,那么只有表的查看(select)权限足够了。
综上,主题表和维表所在数据库最小权限要求为有相关表的查看(select)权限。但有些数据库比较特别,如Sybase,我们访问用户A创建的表T1,不是select * from A.T1,而是先要搞清楚T1表放在哪个schema下,假设是aa,则select * from aa.T1。在数据库连接池没有指定schema的情况下(一般不会指定),BI默认在该用户的默认schema下查找,而Sybase中,BI是通过在这个库中创建一张表以获取当前连接用户的默认schema的,这意味着用户需要有创建表的权限。
二、i需要的数据库权限
对BI需要的数据库权限有所认识后,我们来看看i需要的数据库权限。
i相对单纯些,只有一个数据库连接池,存放机构用户权限等系统表以及任务表等。对于这个连接池的数据库用户,要求有创建表(table)、视图(view)、序列(sequence)、触发器(trigger)的权限。
i中每一个任务都会对应了一套数据库表和视图。数据库表中的字段名是根据报表表元单元格代号来的,形如A1,A2,B1,B2等(从i5.1开始,数据库表中的字段也可是报表中有业务涵义的字段名),而视图中的字段名则来自报表中有业务涵义的字段名。
三、视项目实际情况需要的权限
上面这些权限要求是指我们BI和i程序需要的数据库权限,对于一个项目而言,这些权限可能是不够的。
  • 如果这个用户需要存储过程用于主题表和维表数据的抽取,那么还需要创建存储过程(procedure)的权限;
  • 如果源数据来自其它库而用到了数据链路,则还需要创建数据链路(database link)的权限;
  • 如果还需要创建同义词则需要有创建同义词(synonym)的权限等等。这些额外的权限要求要视项目的实际情况而定。
对于oracle数据库,BI和i的数据库用户还需要在默认表空间上有足够的配额,建议设成对默认表空间不做限额控制,即alter user 用户名 quota unlimited on 默认表空间名。
四、授权语句参考
BI的缺省连接池数据库用户和i的所用连接池数据库用户授权语句参考如下:假若数据库用户为TEST
方案一:
grant connect to TEST;
grant resource to TEST;
grant create view to TEST;(BI41之前的BI版本不需要)
方案二:
grant connect to TEST;
grant create table to TEST;
grant create view to TEST;(BI41之前的BI版本不需要)
grant create sequence to TEST;
grant create trigger to TEST;
alter user TEST quota unlimited on 默认表空间名。



5个回答

只看楼主

卖火车的小火柴 亿信华辰高级工程师

发表于2018-6-14 10:05

只看该作者

取消 关注该作者的回复

沙发

数据库是Oracle 11g吗?如果是Oracle 11g,我们给BI用户赋了connect和resource角色之外,还要单独赋create view权限。如果需要创建数据链路,或同义词,那就还要单独赋create dblink和create synonym之类的。

卖火车的小火柴 亿信华辰高级工程师

发表于2018-6-14 09:39

只看该作者

取消 关注该作者的回复

板凳

[size=13.3333px]

更详细说明参见下面的内容:
在项目应用中,BI&i使用的数据库连接池所对应的用户权限在不使用dba权限时,需要给数据库用户分配哪些权限才能够正常执行相关业务?本文主要介绍使用oracle数据库作为数据连接池时,BI和i系统数据库用户需要拥有怎样的一些权限。
一、BI需要的数据库权限
BI中有3类数据库连接池:服务器缺省连接池,主题集存储连接池,映射方案对应的数据库连接池。每类数据库连接池要求的权限有所不同。
1、服务器缺省连接池
缺省连接池用于存放机构用户、门户、计划任务和资源管理器等系统表。对于这个连接池的数据库用户,要求有创建表(table)、触发器(trigger)、序列(sequence)的权限。从BI41开始还需要有创建视图(view)的权限。
需要有创建表的权限显而易见,为什么还要有触发器和序列的权限?
因为部分系统表的主键字段是个自增长字段,如日志表,oracle中自增长字段由序列+触发器实现,所以,需要创建序列和触发器的权限,但不是所有数据库都需要这2权限,如db2、sql server、mysql等,这些数据库创建表时能添加自增长列,不需要序列+触发器实现,所以,不需要这2权限。
2、主题集存储连接池
主题集存储连接池用于存放分析表表样,结果表等系统表。对于这个连接池的数据库用户,要求有创建表(table)的权限即可。
3、映射方案对应的数据库连接池
主题集中映射方案对应的数据库连接池用于存放主题表和维表数据。对于这个连接池的数据库用户,要求有这些表的查看(select)、插入(insert)、修改(update)和删除(delete)权限以及修改表结构(alter table)的权限。
看到这里大家估计有疑问了,对于存放主题表和维表数据的库不是只要有表的查看权限就行了吗,为什么还要有其它权限?
我们来看看通过BI的维表管理能做哪些事情:
  • 根据数据库表建维表——这需要有表的查看(select)权限
  • 修改维表的字段设置,保存时会同步到对应的数据库表中——这需要有修改表结构(alter)的权限 . 值得注意的是,即使我们没有做任何修改,点击保存依然会按现在的维表结构去修改对应的数据库表结构。因为程序不知道目前的维表结构和数据库表结构是否一致。
  • 通过编辑内容能插入或者修改表中数据——这需要有表的插入(insert)、修改(update)、删除(delete)权限
  • BI既能根据已有数据库表创建维表,也能在创建维表时指定一个不存在表名,根据维表中的字段设置在数据库中自动创建一张数据库表——这需要用户有创建表(table)的权限
主题表也是类似的。
不过,如果我们只是从数据库表创建维表和主题表,不会通过维表和主题表功能创建数据库表、修改表结构或者表中数据,那么只有表的查看(select)权限足够了。
综上,主题表和维表所在数据库最小权限要求为有相关表的查看(select)权限。但有些数据库比较特别,如Sybase,我们访问用户A创建的表T1,不是select * from A.T1,而是先要搞清楚T1表放在哪个schema下,假设是aa,则select * from aa.T1。在数据库连接池没有指定schema的情况下(一般不会指定),BI默认在该用户的默认schema下查找,而Sybase中,BI是通过在这个库中创建一张表以获取当前连接用户的默认schema的,这意味着用户需要有创建表的权限。
二、i需要的数据库权限
对BI需要的数据库权限有所认识后,我们来看看i需要的数据库权限。
i相对单纯些,只有一个数据库连接池,存放机构用户权限等系统表以及任务表等。对于这个连接池的数据库用户,要求有创建表(table)、视图(view)、序列(sequence)、触发器(trigger)的权限。
i中每一个任务都会对应了一套数据库表和视图。数据库表中的字段名是根据报表表元单元格代号来的,形如A1,A2,B1,B2等(从i5.1开始,数据库表中的字段也可是报表中有业务涵义的字段名),而视图中的字段名则来自报表中有业务涵义的字段名。
三、视项目实际情况需要的权限
上面这些权限要求是指我们BI和i程序需要的数据库权限,对于一个项目而言,这些权限可能是不够的。
  • 如果这个用户需要存储过程用于主题表和维表数据的抽取,那么还需要创建存储过程(procedure)的权限;
  • 如果源数据来自其它库而用到了数据链路,则还需要创建数据链路(database link)的权限;
  • 如果还需要创建同义词则需要有创建同义词(synonym)的权限等等。这些额外的权限要求要视项目的实际情况而定。
对于oracle数据库,BI和i的数据库用户还需要在默认表空间上有足够的配额,建议设成对默认表空间不做限额控制,即alter user 用户名 quota unlimited on 默认表空间名。
四、授权语句参考
BI的缺省连接池数据库用户和i的所用连接池数据库用户授权语句参考如下:假若数据库用户为TEST
方案一:
grant connect to TEST;
grant resource to TEST;
grant create view to TEST;(BI41之前的BI版本不需要)
方案二:
grant connect to TEST;
grant create table to TEST;
grant create view to TEST;(BI41之前的BI版本不需要)
grant create sequence to TEST;
grant create trigger to TEST;
alter user TEST quota unlimited on 默认表空间名。



忘记你 初学数据Lv2

发表于2018-6-14 10:09

只看该作者

取消 关注该作者的回复

地板

卖火车的小火柴 发表于 2018-6-14 10:07
更详细说明参见下面的内容:在项目应用中,BI&i使用的数据库连接池所对应的用户权限在不使用db ...

学习了

忘记你 初学数据Lv2

发表于2018-6-14 10:09

只看该作者

取消 关注该作者的回复

5#

  

卖火车的小火柴 亿信华辰高级工程师

发表于2018-6-14 16:17

只看该作者

取消 关注该作者的回复

6#


登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号