ITPub博客

首页 > 数据库 > Oracle > oracle 权限

oracle 权限

原创 Oracle 作者:小二锅头 时间:2015-01-05 22:48:25 0 删除 编辑
摘要:当我们不知道需要为一用户赋予什么权限的时候,我们可以通过查询数据字典来了解相关的权限。
但是有时候我们并不知道权限存在于哪些数据字典当中此时我们只需要oracle的dictionary这个数据字典,因为
oracle所有的数据字典基本都会在此表中有记录,此时当我们想要去查询权限的数据字典只需要去dictionary表中
模糊的匹配PRIV也就是权限那么我们便可以得到所有与权限相关的数据字典,同时根据其注释得到我们想要的数据字典。、

---------------------------------例子----------------------------------------------
1.如果我们想知道数据库中所有的权限,那么数据字典的开头肯定是DBA_%_PRIV%
SQL> select * from dictionary t where t.TABLE_NAME like '%DBA_%PRIV%' order by length(t.TABLE_NAME),t.TABLE_NAME;
 
TABLE_NAME                     COMMENTS
------------------------------ --------------------------------------------------------------------------------
DBA_COL_PRIVS                  All grants on columns in the database
DBA_SYS_PRIVS                  System privileges granted to users and roles ---这个便是我们想要的
DBA_TAB_PRIVS                  All grants on objects in the database
DBA_ROLE_PRIVS                 Roles granted to users and roles
DBA_AQ_AGENT_PRIVS             
DBA_PRIV_AUDIT_OPTS            Describes current system privileges being audited across the system and by user
DBA_REPGROUP_PRIVILEGES        Information about users who are registered for object group privileges
DBA_NETWORK_ACL_PRIVILEGES     Privileges defined in network access control lists
DBA_RSRC_CONSUMER_GROUP_PRIVS  Switch privileges for consumer groups
DBA_RSRC_MANAGER_SYSTEM_PRIVS  system privileges for the resource manager

然后查询DBA_SYS_PRIVS便可以得到用户所有的权限,如下
--这里只列出一小部分
SQL> select * from dba_sys_privs t where t.grantee='DBA' and rownum<10;
 
GRANTEE                        PRIVILEGE                                ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
DBA                            ADVISOR                                  YES
DBA                            AUDIT ANY                                YES
DBA                            DROP USER                                YES
DBA                            RESUMABLE                                YES
DBA                            ALTER USER                               YES
DBA                            CREATE JOB                               YES
DBA                            ANALYZE ANY                              YES
DBA                            BECOME USER                              YES
DBA                            CREATE CUBE                              YES

这样我们就可以判断出我们需要赋予用户所需要的权限了。

一般我们新建立一个用户后只需要给他
grant connect,resource to user_name;这两个角色便可,其余的权限可以在用的时候再给
----------------------------------------------------------------------------结束-----------------------------------------------------------
1.题外话
如果我们想要知道当前用户有哪些角色
select * from user_role_privis;
有哪些系统权限
user_sys_privis;
角色具有哪些系统权限
role_sys_privis
如果查不到这些表格那个就授予用户查询任何表格的权限
grant select any table to user_name;

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

下一篇: oracle 正则表达式
请登录后发表评论 登录
全部评论

注册时间:2013-01-29

  • 博文量
    9
  • 访问量
    40630