首页 > 数据库技术 > 详细

赋予普通用户DBA权限,default role 显示“NO”

时间:2016-04-29 02:11:31      阅读:288      评论:0      收藏:0      [点我收藏+]
我2014年在医院his项目,给门诊医生站创建用户,遇到一奇怪问题,赋予该用户dba角色,然后没有dba权限,后来发现在该用户下dba不是default role 很奇怪!
后来有一个小师弟也遇到这个问题,现在把当时的文档发表给大伙共享

数据库版本
SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0      Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

创建用户mzys,授予角色connect、resource、dba(其实一个dba角色就够了)


登陆mzys发现当前会话没有dba角色
SQL> conn mzys/mzys
Connected.
SQL> select * from session_roles;


ROLE
------------------------------
CONNECT
RESOURCE

查询该用户是拥有dba角色,担不是default role
SQL> select * from user_role_privs;
USERNAME                       GRANTED_ROLE                   ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
MZYS                            CONNECT                        NO  YES NO
MZYS                            DBA                            NO  NO NO
MZYS                            RESOURCE                       NO  YES NO

很奇怪,门诊医生站用户MZYS自创建后没有指定过default role,为什么赋予dba角色时,默认不是default role。
解决:
1、在当前用户会话下,临时解决
SQL> set role connect,resource,dba;


Role set.

查询session_roles
SQL> select * from session_roles;


ROLE
------------------------------
CONNECT
RESOURCE
DBA
SELECT_CATALOG_ROLE
HS_ADMIN_SELECT_ROLE
EXECUTE_CATALOG_ROLE
HS_ADMIN_EXECUTE_ROLE
DELETE_CATALOG_ROLE
EXP_FULL_DATABASE
IMP_FULL_DATABASE
DATAPUMP_EXP_FULL_DATABASE


ROLE
------------------------------
DATAPUMP_IMP_FULL_DATABASE
GATHER_SYSTEM_STATISTICS
SCHEDULER_ADMIN
WM_ADMIN_ROLE
JAVA_ADMIN
JAVA_DEPLOY
XDBADMIN
XDB_SET_INVOKER
OLAP_XS_ADMIN
OLAP_DBA


21 rows selected.
但是查询user_role_privs
SQL> select * from user_role_privs;


USERNAME                       GRANTED_ROLE                   ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
MZYS                            CONNECT                        NO  YES NO
MZYS                            DBA                            NO  NO NO
MZYS                            RESOURCE                       NO  YES NO

2、永久解决
SQL> conn / as sysdba
Connected.
SQL> alter user mzys default role all;
User altered.

问题解决!!

赋予普通用户DBA权限,default role 显示“NO”

原文:http://blog.itpub.net/29893219/viewspace-2089927/

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!