1. 连接用户:connect 用户名/密码;

  2. 创建用户:create user 用户名 identified by 密码;

  3. 授权:grant 权限 to 用户名;

   注意:系统权限只能由DBA用户授出,普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。

查询用户拥有的权限:

1.查看所有用户:

  select from dba_users;
  select from all_users;
  select from user_users;
 
2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
  select from dba_sys_privs;
  select from user_sys_privs;
  
3.查看角色(只能查看登陆用户拥有的角色)所包含的权限
sql>select from role_sys_privs;
 
4.查看用户对象权限:
  select from dba_tab_privs;
  select from all_tab_privs;
  select from user_tab_privs;
 
5.查看所有角色:
  select from dba_roles;
 
6.查看用户或角色所拥有的角色:
  select from dba_role_privs;
  select from user_role_privs;
  
7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
select from V$PWFILE_USERS
  
比如我要查看用户 wzsb的拥有的权限:
 
SQL> select from dba_sys_privs where grantee='WZSB';
  
GRANTEE                        PRIVILEGE                                ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
WZSB                           CREATE TRIGGER                           NO
WZSB                           UNLIMITED TABLESPACE                     NO
 
比如我要查看用户 wzsb的拥有的角色:
 
SQL> select from dba_role_privs where grantee='WZSB';
  
GRANTEE   GRANTED_ROLE   ADMIN_OPTION  DEFAULT_ROLE
------------------------------ ------------------------------ ------------ ------------
WZSB                           DBA                         NO              YES
 
查看一个用户所有的权限及角色
select privilege from dba_sys_privs where grantee='WZSB'
union
select privilege from dba_sys_privs where grantee in 
(select granted_role from dba_role_privs where grantee='WZSB' );

      3.1 oracle权限分类:

      系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。
      实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。


      3.2 系统权限:

      DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
      RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
     CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
      对于普通用户:授予connect, resource权限。
      对于DBA管理用户:授予connect,resource, dba权限。


      3.3 实体权限:

  • 实体权限的授命令
    语法如下:GRANT 实体权限名|ALL TO 用户|角色|PUBLIC,其中,ALL表示实体的所有实体权限。
    如:SQL>GRANT SELECT ON BOOKS_QUTHORS TO USER1;

  • 用来查询表的实体权限的授权信息:SQL>SELECT * FROM USER_TAB_PRIVES

  • 回收实体权限,使用REVOKE,其语法如下:
    REVOKE 实体权限名|ALL ON 实体名 FROM 用户名|角色名|PUBLIC。

      

权限传递:

grant select on xiaoming.temp to xiaohong ;//登录xiaoming后,将小明的temp表的查询权限授给xiaohong;