Oracle学习笔记day03——权限与角色

来源:互联网 发布:分析家免费行情软件 编辑:程序博客网 时间:2024/05/22 04:43

一、用户权限与角色

  1. 权限,Oracle中权限主要分为两种,系统权限和实体权限。


    • 系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。
      ①.授予系统权限查看ORACLE所有系统权限语法:select * from system_privilege_map;说明:要实现授予系统权限只能由DBA用户授出。语法:grant 系统权限1[,系统权限2]… to 用户名1[,用户名2]…[WITH ADMIN OPTION];例子:

      ②.系统权限回收:

      说明:系统权限只能由DBA用户回收语法:revoke 系统权限 from 用户名;例子:


    • 实体权限【对象权限】:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。主要包括select, update, insert, alter, index, delete, all其中all包括所有权限。
      ①.授予实体权限语法:grant 实体权限1[,实体权限2]… on 表名 to用户名1[,用户名2]…[WITH GRANT OPTION];例子:
      ②.实体权限回收语法:revoke 实体权限 on 表名from 用户名;例子:



    • 查询用户拥有哪里权限:【用户都能使用】
      SQL> select * from user_tab_privs;//查询授予用户的对象权限SQL> select * from user_role_privs;//查询授予用户的角色权限SQL> select * from user_sys_privs;//查询授予用户的系统权限SQL> Select * from session_privs;//查询当前用户所拥有的权限


    • 查看全部用户拥有权限:【dba身份访问】
      SQL> select * from dba_tab_privs;//查询授予全部用户的对象权限SQL> select * from dba_role_privs;//查询授予全部用户的角色权限SQL> select * from dba_sys_privs;//查询授予全部用户的系统权限
  1. 角色(角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。)

  • 系统预定义角色
    预定义角色是在数据库安装后,系统自动创建的一些常用的角色。下面我们就简单介绍些系统角色:
    ①.DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。②.RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。③.CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
    注意:
    对于普通用户:授予connect, resource权限。对于DBA管理用户:授予connect,resource, dba权限。
    ①.CONNECT, RESOURCE, DBA这些预定义角色主要是为了向后兼容。其主要是用于数据库管理。oracle建议用户自己设计数据库管理和安全的权限规划,而不要简单的使用这些预定角色。将来的版本中这些角色可能不会作为预定义角色。
    ②.DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE这些角色主要用于访问数据字典视图和包。③.EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。


  • 自定义角色(Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户)
    ①.创建角色
    SQL> create role admin;
    ②.授权给角色
    SQL> grant connect,resource to admin [WITH ADMIN OPTION];SQL> grant select,insert on 表名 to admin [WITH GRANT OPTION]

③.将角色赋予用户
SQL> GRANT admin to 用户 [WITH ADMIN OPTION]
SQL> GRANT role_name TO role_name [WITH ADMIN OPTION]
④.撤销角色的权限
SQL> revoke connect from admin;

⑤.删除角色
SQL> drop role admin;


    原创粉丝点击