Oracle用户管理
创建用户的时候一定是要以管理员的身份来创建。不然就会报权限不足。 System
创建用户: create user 名字 identified by 密码;
修改密码: 自己给自己修改 ;直接使用password;既可以。
修改别人的密码; 就需要使用管理员权限的身份来修改,管理员身份:password 用户名;(普通用户是不能修改别人的密码,只能使用管理员的身份登录。)password 用户名;
删除用户: drop user 名字 (cascade);
注意:在删除用户的时候,如果这个用户已经创建过表了,那么就需要在后面加上cascade参数(级联)
综合例子:
注意:新创建的用户是没有权限的,甚至连连接数据库都连接不上。要使用的话要给定权限才能使用。权限不是一个,很多。
权限只有管理用户:才能给用户赋予权限。Systen sys 可以直接给赋予权限。
权限给定:grant connect(登录权限) to 用户 ;权限;(查询、修改、等等)
Oracle里面直接定义好了权限,大概有140多种权限。
角色:oracle数据库把一些基本的权限提取出来,直接赋给一个角色让他完成相应的操作。一个角色会有不同的权限很多种。一个一个的添加权限很慢。
1.前用户是不能查询emp表的。Select *from emp;
2. 当前用户还不能创建表,出现权限不足, create table test(userid varchar2(20),username varchar2(20));必须授权后才能建立表;
用system身份授权,grant session(回话权限) to xiaoming ;
grant resource to xiaoming;授权基本权限成功。即可创建表。
Desc 查看表结构。
3. 让当前用户是查询scott用户下的emp表的。(对象权限控制)
使用管理员用户直接授权(谁的表谁就有这个权利去授权):grant select on scott.emp to xiaoming; \\方案
Select *from scott.emp;
(update、 delect 、insert all(所有权限));
grant all on scott.emp to xiaoming;
4. 收回权限,收回授权:revoke;
谁赋予的权限,就由谁收回。首先确定谁给的权限。 Scott 收回小明的查询 emp表的权限。
Revoke 权限 on上级用户. emp from 新建的用户
Revoke select on emp from xiaoming;