1.授予权限
语法:
grant system_privilege1,... to user_name | public
public
将系统权限授予每个用户,包括后创建的用户
例子:
grant create user,create table,create procedure,create view,create session to wang
2.一些常用权限
允许用户登录 :
create/alter/drop session
例: grant create session to wangjie grant create session to wang
创建修改删除用户:
create/alter/drop user
例: grant create user to wang
创建修改删除
表的权限 :
create/alter/drop table
例: grant create table to wang
有了创建表的权限,但是并没有指定保存表的空间大小,所以依然无法创建表
解决(建议使用第一种)
1.授予
unlimited tablespace
无限表空间
2.在quotas选项卡中指定users表空间大小
创建修改删除
序列:
create/alter/drop sequence
例: grant create sequence to wang
创建修改删除
视图 :
create/alter/drop view
例: grant create view to wang
创建修改删除
函数和存储过程,没有专门的创建函数的权限:
create/alter/drop procedure
例:grant create procedure to wang
3.角色权限
1. 角色权限 实质就是系统权限
2. 什么是角色
将一系列权限捆绑,定义一个名字,即角色名
3. 创建角色
create role role1;
语法: create role role_name
4.
为角色授权限
grant create user,create table,create procedure,create view,create session to role1;
语法: grant system_privilege1,... to role_name
5.为用户授予角色
grant role1 to wang; grant role1 to public
语法: grant role_name to user_name | public
6. 删除角色
语法: drop role role_name
7. 注意:
一个用户可以被授予多个角色
4.
对象权限
1.什么是对象
数据库中创建的数据库对象
表,索引,序列,触发器,函数,存储过程,视图
2. 什么是对象权限
对数据库中对象的操作权限就是对象权限
3. 为什么需要对象权限
数据库对象拥有者为其他用户赋予操作此对象的权限
分配后其他用户能够操作此数据库对象
谁创建了对象,谁就拥有该对象的所有对象权限
4.注意:
1.并不是数据库中的每个对象都可以授予上面的权限
2.谁创建了对象,谁就拥有该对象的所有对象权限,例子:scott创建了一个表,scott用户可以对表对象进行增删改查
当一个用户操纵里一个用户数据库对象时,其语法为: 用户名.对象名
5.语法:
grant object_privilege1......... on object_name to user_name | public 【with grant option 】
grant select,insert,update,delete on books to wang;
with grant option
允许所分配的权限再次下放
要撤销这个权限,要先撤销权限,再重新授予一个不带with grant option 的权限
5. 撤销权限
1. 系统权限
语法:
revoke system_privilege1,... from user_name | public
2. 撤销角色:
撤销角色意味着撤销系统权限
revoke role1 from public revoke role1 from wang
语法:
revoke role_name from user_name | public
3. 撤销对象权限
语法:
recoke object_privilege1......... on object_name from user_name | public
6.查询指定角色中有哪些系统权限
select * from dba_sys_privs where grantee = 'CONNECT'; select * from dba_sys_privs where grantee = 'RESOURCE';
select * from dba_sys_privs where grantee = 'role1'
注意:角色名要大写
7.创建一个用户,和scott用户权限相同
create user wangjie identified by root;
grant resource,connect to wangjie;
当为用户授予resource角色后,默认会添加unlimited tablespace权限