表权限的相干操作
grant(赋予权限)
常用的几种角色
1.connect(具有登陆等一系列的权限)
2.dba(拥有全部的权限)
3.resource(拥有建表的权限)
CONNECT角色:主要应用在临时用户,特别是那些不需要建表的用户,通常只赋予他们CONNECT role.CONNECT 是使用Oracle的简单权限,拥有CONNECT角色的用户,可以与服务器建立连接会话(session,客户端对服务器连接,成为会话)。
RESOURCE角色:更可靠和正式的数据库用户可以授予RESOURCE role。RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)等。
DBA角色:DBA role 拥有所有的系统权限--包括无限制的空间选额和给其他用户授予各种权限的能力。用户SYSTEM 拥有DBA角色。
如给用户xiaoming赋予connect的权限
SQL> grant connect to xiaoming;
授权成功。
如何让xiaoming用户去查询scott用户的emp表
只能查询不能修改
grant select on emp to xiaoming;
查看的时候
SQL> select * from scott.emp;
如何让xiaoming用户去修改scott的emp表
grant update on emp to xiaoming;
如果是其他的表就将emp换成想要操作的表名
如何让xiaoming用户可以去修改、删除、查询、添加scott的emp表
grant,delete,select,update,insert on emp to xiaoming;
或
grant all on emp to xiaoming;(给xiaoming用户获取emp这个表全部的权限)
revoke(收回权限)
scott希望收回xiaoming对emp表的查询权限
revoke select on emp from xiaoming;
scott收回xiaoming对emp表的全部权限
revoke all on emp from xiaoming;
//对权限维护
如何让xiaoming用户去查询scott用户的emp表/还希望xiaoming可以把这个权限继续给别人
---如果是对象权限,就在后面加入 with grant option
grant select on emp to xiaoming with grant option;
效果如下:
//这从xiaoming那给xiaohong查询scott用户的emp表的权限
SQL> grant select on scott.emp to xiaohong;
授权成功。
SQL> show user;
USER 为 "XIAOMING"
----如果是系统权限
system给xiaoming赋权限时:
grant connect to xiaoming with admin option;
如果scott把xiaoming对emp的查询权限回收,那么xiaohong对scott的emp表的查询权限会怎么样?
结果:
SQL> conn scott/tiger;
已连接。
SQL> revoke select on emp from xiaoming;
撤销成功。
SQL> conn xiaohong/xiaohong;
已连接。
SQL> select * from scott.emp;
select * from scott.emp
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
这就说明了如果scott把xiaoming对emp的查询权限回收了,那么xiaohong对scott的emp表的查询权限也被回收了