概述:创建的新用户是没有任何权限,甚至连登陆数据库的权限都没有。因此对于新创建的用户,需要为其制定
权限。用于给用户赋予权限的命令为grant,会搜权限的命令是revoke
1. 授予权限
a) 只有system和sys用户可以给新建用户设置权限
b) 权限分类:系统权限和对象权限
c) 系统权限:用户对数据库的相关权限
d) 对象权限:用户对其他用户的数据对象操作的权限
e) 角色:预定义角色和自定义角色
f) Dba、resource、Connect就是一种预定义角色
g) oracle对用户权限的控制是通过对角色的分配来实现的
eg: 为用户赋予connect的角色权限。
Eg: | SQL>grant connect toxiaoming; //必须用dba用户才可以授权 SQL> conn xiaoming/m123 |
h) 如果要让新建用户能够创建新表,需要给予resource权限
i) 新用户访问其他用户的数据库,需要对象权限。
j) 给予权限的用户必须是dba用户或被访问数据所在用户才可以赋予。
注:就是比如新用户要访问scott内的user表,那么给新用户赋予访问user权限的用户只能是sys或scott
k) 对象权限:select、insert、update、delete、all、create index…….
Eg: | SQL>grant select on emp to xiaoming; 授权成功。 |
2. 回收权限
a) 对于回收权限,应该由赋予权限的用户进行回收操作,当然也可以是dba用户
Eg: | USER 为 "SCOTT" SQL>revoke select on emp from xiaoming; 撤销成功。 |
SQL>conn system/system 已连接。 SQL>revoke connect from xiaoming; 撤销成功。 |
3. 对对象权限的传递
Eg: | USER 为 "SCOTT" SQL>grant select on emp to xiaomingwith grant option; 授权成功。 |
4. 对系统权限的传递
Eg: | USER 为 "SYSTEM" SQL>grant connect to xiaoming with admin option; 授权成功。 |
问题思考:
问题:如果收回xiaoming用户的权限那么xiaoming所授权的用户是否还存在权限? |
答:xiaoming所授权的用户权限也相应回收 |