Java培训-ORACLE数据库学习【2】用户权限

  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;

你可能感兴趣的:(java,oracle,sql)