① 系统权限:拥有对数据库相应的系统操作的
权限传递:with admin option,二次传递的权限收不回来
② 对象权限:拥有对对象的细节操作
权限传递:with grant option ,二次传递的权限可以被收回
③ 查询:
user_sys_privs
user_tab_privs
user_role_privs
role_role_privs
role_tab_privs
role_sys_privs
④ 权限 给 public 要慎重
grant to
revoke from
1、授权:grant 权限 to 账号/角色
dba、user、role;
查看当前用户拥有的系统权限 select * from user_sys_privs;
查看当前用户拥有的对象权限 select * from user_tab_privs;
查看当前用户拥有的角色 select * from user_role_privs;
查看角色拥有的角色 select * from role_role_privs;
查看角色拥有的系统权限 select * from role_tab_privs;
查看角色拥有的对象权限 select * from role_sys_privs;
2、系统权限与对象权限
Oracle用户对数据库管理或对象操作的权利,分为系统权限和数据库对象权限。
系统权限比如CREATE SESSION,CREATE TABLE等,拥有系统权限的用户,允许拥有相应的系统操作。
数据库对象权限,比如对数据库里面的对象(表,索引,视图,同义词.)进行操作(select,update,insert,delete....)
3、授权语句
grant create session to test; --授予连接数据库权限
grant create table to test; --授予建表权限
grant select on scott.emp to test; --授予查询权限
grant all to test;
4、角色
创建角色:
create role testrole; --创建一个角色 testrole
删除账号及其下的对象:drop user test cascade;
角色可以拥有:系统权限、对象权限、角色;一个账号可以拥有多个角色;账号下面的角色拥有的等价于账号拥有
角色可以理解为权限的打包
5、回收权限:
revoke 权限 from 账号
grant dba to 账号
grant all to 账号
dba能干所有事,处了开启关闭服务器
6、公用账号 public
不要轻易授权给public,不然任何用户都有这个权限
select * from dba sys privs;
select * from dba tab privs;
查看授权的系统权限、对象权限和角色
select * from dba_sys_privs where grantee='SCOTT';
select * from dba_tab_privs where grantee='SCOTT';
select * from dba_role_privs where grantee='SCOTT';