oracle用户权限管理

oracle中3个默认用户
  sys change_on_install [as sysdba]
  system manager
  scott tiger
一、创建用户及修改密码
  create user lisi identified by lisi;
  alter user lisi identified by lisi;
二、系统权限
  grant create session to lisi;
  grant create table to lisi;
  grant unlimited tablespace to lisi;
       --把创建连接的权限赋予所有人
  grant create session to public;
       --授予权限
  grant 权限 to 用户名;
       --撤销权限
  revoke 权限 from 用户名;
       --查询用户的系统权限
  select * from user_sys_privs;
  select * from dba_sys_privs;
三、对象权限
  grant select(update,insert,delete) on mytab to lisi;
       --授予其他用户操作表的所有权限
  grant all on mytab to lisi;
  revoke select(update,insert,delete) on mytab from lisi;
  revoke all on mytab from lisi;
       --查看用户的对象权限
  select * from user_tab_privs;--其他用户对当前表的操作权限
  select * from user_col_privs;--其他用户对当前表字段的操作权限
     对象权限可以控制到列:
  grant update(name) on mytab to lisi;
  grant insert(id) on mytab to lisi;
  select * from user_col_privs;
   注意:查询和删除不能控制到列
四、权限的传递
       --把系统权限赋予给李四并允许授予给其他用户
  grant create session to lisi with admin option;
       --把用户权限赋予给李四并允许授予给其他用户
  grant select on A to lisi with grant option;
五、角色管理
  创建角色;create role myrole;
  给角色授予权限:grant 权限 to myrole;
  删除角色:drop role myrole;
  将角色授予给用户:grant 角色 to 用户;
  用户查询拥有的角色:select * from user_role_privs;
  注意:有些系统权限无法直接赋予角色
  create table create any table
  [alter table] alter any table
  [drop table] drop any table
  表示属于某一个用户的,角色不属于某个用户。

六、用户权限相关查询
  dba_* 描述的是数据库中的所有对象
  all_* 描述的是当前用户有访问权限的所有对象
  user_* 描述的是当前用户所拥有的所有对象
  *_users 用户表
  *_sys_privs 系统权限表
  *_tab_privs 用户对象权限表
  dba_roles 所有角色


  select * from user_sys_privs;
  select * from dba_sys_privs;
  select * from user_tab_privs;--其他用户对当前表的操作权限
  select * from user_col_privs;--其他用户对当前表字段的操作权限
  select * from role_sys_privs;--查看角色(只能查看登录用户拥有的角色)所包含的权限

posted @ 2020-10-15 11:27  AWNUygah  阅读(96)  评论(0编辑  收藏  举报