1. 权限的作用
  2. 限制用户对数据的访问

    权限的分类

    1. 系统权限:能够存取数据库的权限

  3. 2. 对象权限:操作数据库对象的内容

  4. 系统权限 
     1.1 如何创建用户:
    1. SQL> create user test default tablespace users identified by test;
    2.  
    3. 用户已创建。

    1.2 数据库中的系统权限

    1. SQL> desc system_privilege_map;
    2. Name Null? Type
    3. ----------------------------------------------------------------- -------- --------------------------------------------
    4. PRIVILEGE NOT NULL NUMBER
    5. NAME NOT NULL VARCHAR2()
    6. PROPERTY NOT NULL NUMBER
    7.  
    8. SQL> select privilege,name,property from system_privilege_map;
    9.  
    10. PRIVILEGE NAME PROPERTY
    11. ---------- ---------------------------------------- ----------
    12. - ALTER SYSTEM
    13. - AUDIT SYSTEM
    14. - CREATE SESSION
    15. - ALTER SESSION
    16. - RESTRICTED SESSION

    1.3 查看某个用户拥有的系统权限

    1. SQL> select username,privilege,admin_option from user_sys_privs;
    2.  
    3. USERNAME PRIVILEGE ADM
    4. ------------------------------ ---------------------------------------- ---
    5. SYS AUDIT ANY NO
    6. SYS DROP ANY INDEX NO
    7. SYS CREATE ANY CLUSTER NO
    8. SYS ALTER ANY TABLE NO
    9.  
    10. 。。。。。。。。。。。。。。。。。。。。。。。。。
    11. rows selected.

    1.4 系统权限的授予与回收
       sys授予select any table给scott

    1. SQL> conn /as sysdba
    2. 已连接。
    3. SQL> grant select any table to scott;--任何普通用户下的表,scott都可以访问
    4.  
    5. SQL> select USERNAME,PRIVILEGE from user_sys_privs;
    6.  
    7. USERNAME PRIVILEGE
    8. ------------------------------ ----------------------------------------
    9. SCOTT CREATE SYNONYM
    10. SCOTT CREATE VIEW
    11. SCOTT UNLIMITED TABLESPACE
    12. SCOTT SELECT ANY TABLE
    13.  
    14. SQL> conn scott/tiger
    15.  
    16. 已连接。
    17.  
    18. SQL> select count(*) from oe.CUSTOMERS;
    19.  
    20. COUNT(*)
    21. ----------
    22.  
    23. SQL> select count(*) from hr.employees;
    24.  
    25. COUNT(*)
    26. ----------

    sys收回select any table给scott

    1. SQL> conn /as sysdba
    2. 已连接。
    3. SQL> revoke select any table from scott;
    4.  
    5. 撤销成功。
    6.  
    7. SQL> conn scott/tiger
    8. 已连接。
    9. SQL> select USERNAME,PRIVILEGE from user_sys_privs;
    10.  
    11. USERNAME PRIVILEGE
    12. ------------------------------ ----------------------------------------
    13. SCOTT CREATE SYNONYM
    14. SCOTT CREATE VIEW
    15. SCOTT UNLIMITED TABLESPACE
    16.  
    17. SQL> select count(*) from hr.employees;
    18. select count(*) from hr.employees
    19. *
    20. 行出现错误:
    21. ORA-: 表或视图不存在

    1.5 权限的转授
         系统权限不能被级联回收

    1. SQL> conn /as sysdba
    2. 已连接。
    3. SQL> grant select any table to scott ;
    4.  
    5. 授权成功。
    6.  
    7. SQL> conn scott/tiger
    8. 已连接。
    9. SQL> grant select any table to hr;
    10. grant select any table to hr
    11. *
    12. 行出现错误:
    13. ORA-: 权限不足
    14.  
    15. SQL> conn /as sysdba
    16. 已连接。
    17. SQL> revoke select any table from scott;
    18.  
    19. 撤销成功。
    20.  
    21. SQL> grant select any table to scott with admin option;--把select any table的授予权限给scott
    22.  
    23. 授权成功。
    24.  
    25. SQL> conn scott/tiger
    26. 已连接。
    27. SQL> grant select any table to hr;
    28.  
    29. 授权成功。
    30.  
    31. SQL> conn hr/hr
    32.  
    33. 已连接。
    34.  
    35. SQL> select count(*) from oe.customers;
    36.  
    37. COUNT(*)
    38. ----------
    39. 319

    SQL> conn /as sysdba
    已连接。
    SQL> revoke select any table from scott;

    1.  

    撤销成功。

    SQL> conn scott/tiger
    已连接。
    SQL> select count(*) from oe.customers;
    select count(*) from oe.customers
    *
    第 1 行出现错误:
    ORA-00942: 表或视图不存在

    1.  

    SQL> conn hr/hr
    已连接。
    SQL> select count(*) from oe.customers;

    1.  

    COUNT(*)
    ----------
    319

  5. 对象权限

    对象权限:在某个数据库对象上的权限

    4.1 在某个表上的所有对象权限:

    1. conn scott/tiger
    2.  
    3. grant all on emp to hr;
    4.  
    5. conn hr/hr
    6.  
    7. SQL> select GRANTEE,OWNER,TABLE_NAME,GRANTOR,PRIVILEGE from user_tab_privs where table_name='EMP';
    8.  
    9. GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE
    10. ------- ------ ----------- ------- --------------------
    11. HR SCOTT EMP SCOTT ALTER
    12. HR SCOTT EMP SCOTT DELETE
    13. HR SCOTT EMP SCOTT INDEX
    14. HR SCOTT EMP SCOTT INSERT
    15. HR SCOTT EMP SCOTT SELECT
    16. HR SCOTT EMP SCOTT UPDATE
    17. HR SCOTT EMP SCOTT REFERENCES
    18. HR SCOTT EMP SCOTT ON COMMIT REFRESH
    19. HR SCOTT EMP SCOTT QUERY REWRITE
    20. HR SCOTT EMP SCOTT DEBUG
    21. HR SCOTT EMP SCOTT FLASHBACK

    4.2 对象权限的授予与回收

    1. 授予单个权限:
    2.  
    3. SQL> show user
    4. USER "SCOTT"
    5. SQL> grant select on emp to hr;
    6.  
    7. 授权成功。
    8.  
    9. SQL> revoke select on emp from hr;
    10.  
    11. 撤销成功。
    12.  
    13. 针对于某个列:
    14.  
    15. SQL> grant update(sal) on emp to hr;
    16.  
    17. SQL> revoke update on emp from hr;
    18.  
    19. 撤销成功。
    1. 4.3 查看对象权限:
    1. SQL> se
    2. SQL> col OWNER for a6
    3. SQL> col TABLE_NAME for a15
    4. SQL> col GRANTOR for a7
    5. SQL> col PRIVILEGE for a20
    6.  
    7. SQL> show user
    8.  
    9. USER "SCOTT"
    10.  
    11. SQL> select grantee,owner,table_name,privilege from user_tab_privs;
    12.  
    13. GRANTEE OWNER TABLE_NAME PRIVILEGE
    14. -------- ------ --------------- --------------------
    15. HR SCOTT EMP FLASHBACK
    16. HR SCOTT EMP DEBUG
    17. HR SCOTT EMP QUERY REWRITE
    18. HR SCOTT EMP ON COMMIT REFRESH
    19. HR SCOTT EMP REFERENCES
    20. HR SCOTT EMP INSERT
    21. HR SCOTT EMP INDEX
    22. HR SCOTT EMP DELETE
    23. HR SCOTT EMP ALTER
    24.  
    25. rows selected.
    26. GRANTEE:接受权限的用户
    27.  
    28. GRANTOR:授出权限的用户
    1. 4.4 对象权限的转授
    1. SQL> show user
    2. USER "HR"
    3.  
    4. SQL> revoke update on employees from scott;
    5.  
    6. 撤销成功。
    7.  
    8. SQL> grant update on employees to scott with grant option;
    9.  
    10. 授权成功。
    11.  
    12. SQL> show user
    13. USER "SCOTT"
    14.  
    15. SQL> grant update on hr.employees to oe;
    16.  
    17. 授权成功。
    18.  
    19. SQL> show user
    20. USER "SCOTT"
    21.  
    22. SQL> update hr.employees set salary=salary+;
    23.  
    24. 已更新107行。
    25.  
    26. SQL> roll
    27. 回退已完成。
    28. SQL> conn oe/oe
    29. 已连接。
    30. SQL> update hr.employees set salary=salary+;
    31.  
    32. 已更新107行。
    33.  
    34. SQL> rollback;
    35.  
    36. 回退已完成。

    4.5 对象权限的级联回收

    1. conn hr/hr
    2.  
    3. grant update on employees to scott with grant option;
    4.  
    5. conn scott/tiger
    6.  
    7. grant update on hr.employees to oe;
    8.  
    9. SQL> update hr.employees set salary=salary+;
    10.  
    11. 已更新107行。
    12.  
    13. SQL> roll
    14.  
    15. conn oe/oe
    16.  
    17. SQL> update hr.employees set salary=salary+;
    18.  
    19. 已更新107行。
    20.  
    21. SQL> roll
    22.  
    23. conn hr/hr
    24.  
    25. revoke update on employees from scott;
    26.  
    27. conn scott/tiger
    28.  
    29. SQL> update hr.employees set salary=salary+;
    30. update hr.employees set salary=salary+
    31. *
    32. 行出现错误:
    33. ORA-: 权限不足
    34.  
    35. conn oe/oe
    36.  
    37. SQL> update hr.employees set salary=salary+;--对象权限会被级联回收
    38. update hr.employees set salary=salary+
    39. *
    40. 行出现错误:
    41. ORA-: 权限不足
  6. 角色
    5.1 角色:角色是一组权限(包含对象权限和系统权限)的集合
    5.2 角色作用:

    比较容易的权限管理

    动态的权限管理

    选择权限的可获得性

    可通过操作系统授予
    5.3. 创建角色并给它授权

    1. SQL> conn /as sysdba
    2. 已连接。
    3. SQL> create role r1;
    4.  
    5. 角色已创建。
    6.  
    7. SQL> grant select any table to r1;
    8.  
    9. 授权成功。
    10.  
    11. SQL> grant update on scott.emp to r1;
    12.  
    13. 授权成功。

    查看角色中有哪些系统权限:

    1. SQL> select PRIVILEGE from role_sys_privs where role='R1';
    2.  
    3. PRIVILEGE
    4. --------------------
    5. SELECT ANY TABLE

    查看角色中的对象权限:

    1. SQL> select OWNER,TABLE_NAME,PRIVILEGE from role_tab_privs where role='R1';
    2.  
    3. OWNER TABLE_NAME PRIVILEGE
    4. ------ --------------- --------------------
    5. SCOTT EMP UPDATE

    5.4 角色授予与回收

    1. SQL> grant r1 to hr;--hr拥有角色r1中所有的权限
    2.  
    3. 授权成功。
    4.  
    5. SQL> conn hr/hr
    6. 已连接。
    7. SQL> select count(*) from oe.customers;
    8.  
    9. COUNT(*)
    10. ----------
    11.  
    12. SQL> update scott.emp set sal=sal+;
    13.  
    14. 已更新14行。
    15.  
    16. SQL> roll
    17. 回退已完成。
    18.  
    19. SQL> conn /as sysdba
    20. 已连接。
    21. SQL> revoke r1 from hr;--r1中所有的权限都从hr中回收
    22.  
    23. 撤销成功。
    24.  
    25. SQL> conn hr/hr
    26. 已连接。
    27. SQL> select count(*) from oe.customers;
    28. select count(*) from oe.customers
    29. *
    30. 行出现错误:
    31. ORA-: 表或视图不存在
    32.  
    33. SQL> update scott.emp set sal=sal+;
    34. update scott.emp set sal=sal+
    35. *
    36. 行出现错误:
    37. ORA-: 表或视图不存在

    5.5 查看当前用户有哪些角色

    1. SQL> select GRANTED_ROLE from user_role_privs;
    2.  
    3. GRANTED_ROLE
    4. ------------------------------
    5. CONNECT
    6. PLUSTRACE
    7. RESOURCE

    角色中的权限,在user_sys_privsH和user_tab_privs中看不到的

    1. SQL> select GRANTED_ROLE from user_role_privs;
    2.  
    3. GRANTED_ROLE
    4. ------------------------------
    5. CONNECT
    6. PLUSTRACE
    7. RESOURCE
    8.  
    9. SQL> conn /as sysdba
    10. 已连接。
    11.  
    12. SQL> select privilege from role_sys_privs where role='CONNECT';
    13.  
    14. PRIVILEGE
    15. --------------------
    16. CREATE SESSION
    17.  
    18. SQL> select PRIVILEGE from user_sys_privs;
    19.  
    20. PRIVILEGE
    21. --------------------
    22. CREATE SYNONYM
    23. CREATE VIEW
    24. UNLIMITED TABLESPACE
    25.  
    26. CREATE SESSION这个系统权限在user_sys_privs中看不到

控制用户的访问之权限、角色【weber出品必属精品】的更多相关文章

  1. 全世界最详细的图形化VMware中linux环境下oracle安装(一)【weber出品必属精品】

    安装流程:前期准备工作--->安装ORACLE软件--->安装升级补丁--->安装odbc创建数据库--->安装监听器--->安装EM <前期准备工作> 安装 ...

  2. 全世界最详细的图形化VMware中linux环境下oracle安装(二)【weber出品必属精品】

    <ORACLE 10.2.05版本的升级补丁安装> 首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入D ...

  3. 初识数据字典【weber出品必属精品】

    数据字典结构 有两部分组成: 1. 基表:以$结尾的系统表,在创建数据库的时候,oracle自动创建的表 2. 用户可以访问的视图 数据字典的种类 DICTIONARY:简称DICT,所有的数据字典, ...

  4. LAMP架构搭建+Discuz论坛搭建【weber出品必属精品】

    一.     本机简介: 本机系统: CentOS-6.4-x86_64 主机名:oracle.ywb IP地址:192.168.146.129 二.     在Linux环境下安装Apache步骤 ...

  5. 静默安装ORACLE【weber出品必属精品】

    安装配置系统环境安装linux ,所有服务都不选择,只是选择安装开发工具,不要安装防火墙(当然也可以在后面关闭) 打开终端,执行如下命令,检查安装包,没有的都要安装 make, glibc, liba ...

  6. 数据库对象(视图,序列,索引,同义词)【weber出品必属精品】

    视图视图的定义:视图就是一个查询的别名为什么使用视图限制数据的存取 SQL> conn /as sysdba 已连接. SQL> grant create view to scott; 授 ...

  7. 创建和管理表【weber出品必属精品】

    创建表 必须有 : 1. CREATE TABLE 的权限 SQL> conn /as sysdba 已连接. SQL> create user test default tablespa ...

  8. oracle数据库事务相关【weber出品必属精品】

    事务的概念:事务:一个事务由一组构成一个逻辑操作的DML语句组成 事务有开始有结束,事务以DML语句开始,以Conmmit和Rollback结束.以下情况会使得事务结束: 1. 执行COMMIT 或者 ...

  9. linux删除ORACLE【weber出品必属精品】

    关闭数据库 sqlplus / as sysdba shutdown abort 清除oracle软件 su - oracle cd $ORACLE_BASE rm -rf * rm -rf /etc ...

随机推荐

  1. displaytag 简单使用流程

    1. 首先导入包:displaytag-1.2.jar,commons-lang.jar和standard.jar;commons-beanutils.jar;这四个jar包 2. 然后在jsp页面做 ...

  2. 神经网络作业: NN LEARNING Coursera Machine Learning(Andrew Ng) WEEK 5

    在WEEK 5中,作业要求完成通过神经网络(NN)实现多分类的逻辑回归(MULTI-CLASS LOGISTIC REGRESSION)的监督学习(SUOERVISED LEARNING)来识别阿拉伯 ...

  3. 【转】c/c++各种字符、字符串类型转换

    itoa   功 能:把一整数转换为字符串   用 法:char *itoa(int value, char *string, int radix);   详细解释:itoa是英文integer to ...

  4. javascript各种专业名词

    刚开始学javascript经常看到各种专业名词,在此整理一下个人的学习笔记: 直接量 直接量——就是程序中直接使用的数据值,如:88    //数字(String)"hello world ...

  5. Python入门-----介绍

    摘要:Python语言的特点 ----->优雅.明确.简单 一.Python适合的领域 web网站和各种网络服务 系统工具和脚本 作为“胶水”语言,把其他语言开发的模块包装起来方便使用 二.Py ...

  6. GO 输出字符数同时输出这个字符串的字节数

    package main import ( "fmt" "unicode/utf8" ) func main(){ var str string str=&qu ...

  7. PHP 中filter_var的使用

    filter_var() 函数通过指定的过滤器过滤变量. 如果成功,则返回已过滤的数据,如果失败,则返回 false. 语法 :filter_var(variable, filter, options ...

  8. ActionBar +Tab+ViewPager +Fragment 支持侧滑动完成办税工具的页面展示

    1:fragment_zhqrl.xml(征期日历) <?xml version="1.0" encoding="utf-8"?> <Line ...

  9. ural 1017. Staircases

    http://acm.timus.ru/problem.aspx?space=1&num=1017 #include <cstdio> #include <cstring&g ...

  10. ThrottleStop

    ThrottleStop 我的要开这个软件,睿频才能开.不然一直工作在1.8Ghz下默认频率太低了开了这个速度才有提升