Oracle数据库用户权限控制 - Role - Synonym

为了控制用户对Production数据库的更改,现在创建一个新用户Production_query和一个新角色V_TD_USR_QUERY_PRD_ROLE,该角色只对Productiontableview有查询权限,并且将该角色赋予给Production_query 为了Production_query用户查询时方便,不用再tableview前加schema名字,可以再Production_query用户下建立Synonyms.

步骤如下:

运行1_CREATE_QUERY_PRD_ROLE.cmd,调用V_TD_USR_QUERY_PRD_ROLE.sql,运行2_CREATE_SYNONYM.cmd,创建Synonym.

[@more@]

1_CREATE_QUERY_PRD_ROLE.cmd

set NLS_LANG=AMERICAN_AMERICA.AL32UTF8

sqlplus sys/password@dbtest as sysdba @./V_TD_USR_QUERY_PRD_ROLE.sql >1_CREATE_QUERY_PRD_ROLE.log

@echo off

echo.

echo Grant select on all tables and views of production schema to PRODUCTION_QUERY!

Pause

V_TD_USR_QUERY_PRD_ROLE.sql

SET PAGESIZE 0

SET LINESIZE 160

SET DEFINE OFF;

-- Create a new user

CREATE USER PRODUCTION_QUERY

IDENTIFIED BY PRODUCTION_QUERY

DEFAULT TABLESPACE USERS

TEMPORARY TABLESPACE TEMP

PROFILE DEFAULT

ACCOUNT UNLOCK;

-- Create new role

CREATE ROLE V_TD_USR_QUERY_PRD_ROLE NOT IDENTIFIED;

-- Grant select on all tables and views of production schema to PRODUCTION_QUERY

SPOOL grant_select_all_tables_views.sql

SELECT 'GRANT SELECT ON PRODUCTION.'||table_name||' TO V_TD_USR_QUERY_PRD_ROLE;'

FROM dba_tables

WHERE owner='PRODUCTION';

SELECT 'GRANT SELECT ON PRODUCTION.'||view_name||' TO V_TD_USR_QUERY_PRD_ROLE;'

FROM dba_views

WHERE owner='PRODUCTION';

SPOOL OFF

@grant_select_all_tables_views.sql

GRANT V_TD_USR_QUERY_PRD_ROLE TO PRODUCTION_QUERY;

ALTER USER PRODUCTION_QUERY DEFAULT ROLE ALL;

GRANT CREATE SESSION TO PRODUCTION_QUERY;

-- Edit SQL : Create synonym for all tables and views of production schema

grant create synonym to production_query;

SPOOL create_synonym_for_tables_views.sql

SELECT 'CREATE SYNONYM '||view_name||' FOR PRODUCTION.'||view_name||';'

FROM dba_views

WHERE owner='PRODUCTION';

SELECT 'CREATE SYNONYM '||table_name||' FOR PRODUCTION.'||table_name||';'

FROM dba_tables

WHERE owner='PRODUCTION';

SPOOL OFF

SET PAGESIZE 14

SET LINESIZE 80

quit

2_CREATE_SYNONYM.cmd

set NLS_LANG=AMERICAN_AMERICA.AL32UTF8

sqlplus production_query/production_query@dbtest @./create_synonym_for_tables_views.sql > create_synonym_for_tables_views.log

@echo off

echo.

echo Create synonym for all tables and views of production schema!

pause

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12472709/viewspace-1036315/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12472709/viewspace-1036315/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值