博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle用户授权
阅读量:5873 次
发布时间:2019-06-19

本文共 2373 字,大约阅读时间需要 7 分钟。

hot3.png

一、用户与模式

    用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作

         SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象

         SYSTEM用户,缺省始终创建,且未被锁定,可以访问数据库内的所有对象

    模式(schema):是某个用户拥有所有对象的集合。具有创建对象权限并创建了对象的用户称为拥有某个模式

       注意:创建数据库对象(视图,表等)的任一用户都拥有一个以该用户名称开头的模式,且被视为模式用户

 

二、ORACLE权限:

    系统权限:允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等

    对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等

 

  1.系统权限

    超过一百多种有效的权限(SELECT * FROM SYSTEM_PRIVILEGE_MAP查)

    授予用户系统权限

       GRANT privilege [, privilege...] TO user [, user| role, PUBLIC...]

       [WITH ADMIN OPTION];

 

       PUBLIC     所有用户

             role     角色:(权限的集合)

       WITH ADMIN OPTION 使用户同样具有分配权限的权利,可将此权限授予别人

    

     如:grant create session to xiufeng; 窗口

         grant create table to xiufeng; 建表

         grant unlimited tablespace to xiufeng; 使用表空

     销权限:

              revoke create table from xiufeng;

              revoke unlimited tablespace from xiufeng

 

    2.对象权限

    有两个用户:user1user2,都是在库TEST,分别有表user1.table1,user2.table2

    但是用user1登录的时候,user2上表就不能用,此时就可以使用grant命令了:

    GRANT privilege [, ...] ON object [, ...]    TO  { PUBLIC | GROUP group | username }

        ALL:所有对象权限

        PUBLIC:授给所有的用户

        WITH GRANT OPTION:允许用户再次给其它用户授权

    grant insert,update,delete on user2.bable2 to user1   此时,user1用户就可以操作user2用户的table2表了,user1下,select * from user2.table2.

       限可以控制到列的限:   grant updatename on xiufeng to xiufengtest

                                     

  3.看用户权限: 提供系信息的视图Oracle中称数据字典

        ORACLE中数据字典视图分为3大类,用前缀区别,分别为:USERALL DBA,许多数据字典视图包含相似的信息。

   USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信

   ALL_*有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息

   DBA_*关整个数据库中对象的信息

  (这里的*可以为TABLESINDEXESOBJECTSUSERS等。)

  1.1查看所有用户

  1.select * from dba_user;

  2.select * from all_users;

  3.select * from user_users;

  1.2查看用户系统权限

  1.select * from dba_sys_privs;

  2.select * from all_sys_privs;

  3.select * from user_sys_privs;

  1.3查看用户对象权限

  1.select * from dba_tab_privs;

  2.select * from all_tab_privs;

  3.select * from user_tab_privs;

  1.4.查看所有角色

  1.select * from dba_roles;

  1.5.查看用户所拥有的角色

  1.select * from dba_role_privs;

  2.select * from user_role_privs;

 

 

三.进阶:

  1.不同库下授权:

    命令格式

    grant 权限 on 数据库名.表名 to 用户名@登陆方式 identified by 'password1';

    回收授于用户的权限

    命令格式为:
    revoke
权限 on 数据库名.表名 from 用户名@登陆方式;

 

  2.角色:(限的集合)

    create role myrole

    grant create table to myrole

    grant create session to myrole

    grant drop any table to myrole

    grant  myrole to hong12345 

    说明:有些系统权限无法予角色;        

    create table(表示可以自己建表      

    create any table (表示可以任意用户创建表)        

    alter  table  (不存在)     

    alter any table(表示可以任意修改用表)        

    drop table    (不存在)   

    drop any  table(表示可以任意除用表)

 

 

 

 

转载于:https://my.oschina.net/xiufeng/blog/109832

你可能感兴趣的文章
梦断代码读后感(一)
查看>>
1489 蜥蜴和地下室
查看>>
Linux服务-bind
查看>>
SpringMVC系列(十六)Spring MVC与Struts2的对比
查看>>
20061008: IntelliJ Idea 6
查看>>
Android IOS WebRTC 音视频开发总结(四一)-- QQ和webrtc打洞能力pk
查看>>
Immediately register your GHD frizzy hair straightener concerning the GHD web page
查看>>
清除Xcode缓存
查看>>
Sharepoint2013:在页面上显示错误信息
查看>>
8-2测试总结
查看>>
SQLiteDatabase中query、insert、update、delete方法参数说明
查看>>
将军令
查看>>
多线程实现端口扫描
查看>>
java 类的应用
查看>>
koa cookie使用
查看>>
shutdown immediate ,无法关闭数据库的解决方案
查看>>
CentOS7系统上的GPSTK源码安装
查看>>
三种样式表
查看>>
Eclipse 常用快捷键(动画讲解)
查看>>
python pandas 数据处理
查看>>