权限分类:
1、系统权限:系统对顶用户使用数据库的权限(系统权限是相对用户而言的)
2、实体权限:某种权限用户对其他用户的表或视图的操作权限(是针对表或视图而言的)
1、系统权限
DBA:拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构
RESOURCE:拥有RESOURCE权限的用户只可以创建实体,不可以创建数据库结构
CONNECT:拥有connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构
对于普通用户:授予connect、resource权限
对于DBA管理用户:授予connect、resource、dba权限
|–系统权限授权命令
SQL>grant connect,resource,dba to 用户;
(最初只能在sys、system)
普通用户通过授权可以具有与system相同的用户权限,但永远不能打到与sys用户相同的权限
SQL> select * from user_sys_privs;–针对当前登陆用户被授予的系统权限
SQL> select * from dba_sys_privs; –针对所有用户被授予的系统权限
SQL> select * from dba_role_privs;
SQL> select * from role_sys_privs;
|–常见的权限
create session 创建会话
create sequence 创建序列
create synonym 创建同名对象(可以理解为相似的别名)
create table 用户模式中创建表
create any table 在任何模式下创建表
drop table 在用户模式下删除表
drop any table 在任何模式下删除表
create procedure 创建存储过程
execute any procedure 在任何模式下存储过程
create user 创建用户
drop user 删除用户
2、实体权限
|–实体权限分类
select、update、insert、index、alter、delete、all(all包括所有权限)、execute(执行存储过程权限)
1、将user1用户下的表a的查询、更新、插入权限给user2
user1:
SQL> grant select, update, insert on a to user02;
SQL> grant all on a to user02;
user02:
SQL> select * from user01.a;
2、将表的操作权限给全体用户
user1:
SQL> grant all on a to public; // public表示是所有的用户,这里的all权限不包括drop
3、实体权限传递(with grant option):
user01:
SQL> grant select, update on a to user02 with grant option; // user02得到权限,并可以传递
4、实体权限回收:
user01:
SQL>Revoke select, update on a from user02; //传递的权限将全部丢失
如果取消某个用户的对象权限,那么对于这个用户使用WITH GRANT OPTION授予权限的用户来说,同样还会取消这些用户的相同权限,也就是说取消授权时级联的
[实体权限数据字典]:
SQL> select owner, table_name from all_tables; // 用户可以查询的表
SQL> select table_name from user_tables; // 用户创建的表
SQL> select grantor, table_schema, table_name, privilege from all_tab_privs; // 获权可以存取的表(被授权的)
SQL> select grantee, owner, table_name, privilege from user_tab_privs; // 授出权限的表(授出的权限)
[查询权限分配情况]:
SQL> SELECT * FROM user_tab_privs_made; // 查询已授予的对象权限(即某个用户对哪些表对哪些用户开放了对象权限)
SQL> SELECT * FROM user_col_privs_made; // 查询列上开放的对象权限
SQL> SELECT * FROM user_tab_privs_recd; // 查询已接受的对象特权(即某个用户被授予了哪些表上的哪些对象特权)
SQL> SELECT * FROM user_col_privs_recd; // 查询用户已接受列的对象权限
sys; //系统管理员,拥有最高权限
system;//本地管理员,次高权限