最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

如何实现Oracle中用户B只能访问用户A的视图

来源:动视网 责编:小采 时间:2020-11-09 11:28:06
文档

如何实现Oracle中用户B只能访问用户A的视图

如何实现Oracle中用户B只能访问用户A的视图:如何实现Oracle中用户B只能访问用户A的视图,在数据库中建立两个用户,用户A 用于创建一些视图,直接访问自己数据库中一个模式下 我们有这样一个需求:在数据库中建立两个用户,用户A 用于创建一些视图,直接访问自己数据库中一个模式下的表,以及通过数据
推荐度:
导读如何实现Oracle中用户B只能访问用户A的视图:如何实现Oracle中用户B只能访问用户A的视图,在数据库中建立两个用户,用户A 用于创建一些视图,直接访问自己数据库中一个模式下 我们有这样一个需求:在数据库中建立两个用户,用户A 用于创建一些视图,直接访问自己数据库中一个模式下的表,以及通过数据


如何实现Oracle中用户B只能访问用户A的视图,在数据库中建立两个用户,用户A 用于创建一些视图,直接访问自己数据库中一个模式下

我们有这样一个需求:在数据库中建立两个用户,用户A 用于创建一些视图,直接访问自己数据库中一个模式下的表,以及通过数据库链路访问其他数据库中的表;另一个用户B 能访问到这个用户A 中的视图,,并且只能访问视图,且访问连接数有限制。

这个用户B 是用来给其他系统访问的,因此对权限和资源使用都需要有限制条件。

这种需求在很多行业的应用中都很常见。假如这是一道面试题,您该如何去回答呢?

我采用下面的方法来回答这个问题。

第一步,创建新用户A 和B 。

这里用户名称分别为ryd_interface_src 和ryd_interface ,对这两个用户都授予非常有限的权限。

drop user ryd_interface_src cascade;

create user ryd_interface_src identified by ryd_interface_src;

grant connect,create view to ryd_interface_src;

drop user ryd_interface cascade;

create user ryd_interface identified by ryd_interface;

grant connect,create synonym to ryd_interface;

第二步,登录数据库一个模式中,授权给用户A ,使得用户A 能创建视图

conn qlzqclient/qlzqclient

grant select on INVEST_CLOCK to ryd_interface_src with grant option;

grant select on INVEST_LOG to ryd_interface_src with grant option;

这里授权方法加了一个with grant option ,请注意。

第三步,登录数据库用户A 中,创建视图

conn ryd_interface_src/ryd_interface_src

create or replace view run_views as

select id as doc_id, title,fbsj as upload_date,'' as branch_code from qlzq.runs_lantern@CLIENT_QLZQWEB

where EXT1='1' and sysdate > START_TIME

and sysdate < SOLID_TIME

union

select a.doc_id,a.title,a.upload_date,a.branch_code from qlzq.cms_doc_single_attr@CLIENT_QLZQWEB a

left join qlzq.cms_doc_category_map@CLIENT_QLZQWEB b on a.doc_id=b.doc_id

where

a.state =1 and a.is_delete =0

and a.upload_date> sysdate-90

and b.cat_id=4;

create or replace view INVEST_CLOCK_VIEWS as

select * from qlzqclient.INVEST_CLOCK;

create or replace view INVEST_LOG_VIEWS as

select * from qlzqclient.INVEST_LOG;

文档

如何实现Oracle中用户B只能访问用户A的视图

如何实现Oracle中用户B只能访问用户A的视图:如何实现Oracle中用户B只能访问用户A的视图,在数据库中建立两个用户,用户A 用于创建一些视图,直接访问自己数据库中一个模式下 我们有这样一个需求:在数据库中建立两个用户,用户A 用于创建一些视图,直接访问自己数据库中一个模式下的表,以及通过数据
推荐度:
标签: 用户 访问 怎样
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top