创建用户
概述:在oracle中要创建一个新的用户使用create user 语句,一般是具有dba(数据库管理员)的权限才能使用。
create user 用户名 identified by 密码;
(Oracle有个毛病,密码必须以字母开头,如果以数字开头,它不会创建用户)
给用户修改密码
概述:如果给自己修改密码可以直接使用
password 用户名
如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限
SQL>alter user 用户名 identified by 新密码
删除用户
概述:一般以dba的身份去删除某个用户,如果用其他用户去删除用户则需要具有drop user的权限。
比如
drop user用户名[cascade]
在删除用户时,注意:
如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascade。
用户管理的综合案例
概述:创建的新用户是没有任何权限的,甚至连登录数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令revoke。
案例:
SQL> conn xiaoming/m12; ERROR: ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied 警告: 您不再连接到 ORACLE。 SQL> show user; USER 为 "" SQL> conn system/p; 已连接。 SQL> grant connect to xiaoming; 授权成功。 SQL> conn xiaoming/m12; 已连接。 SQL> 注意:grant connect to xiaoming;
在这里,准确的讲,connect 不是权限,而是角色。。 看图:
现在说下对象权限,现在要做这么件事情:
* 希望xiaoming 用户可以去查询emp 表
* 希望xiaoming 用户可以去查询scott 的emp 表
grant select on emp to xiaoming
* 希望xiaoming 用户可以去修改scott 的emp 表
grant update on emp to xiaoming
* 希望xiaoming 用户可以去修改/删除,查询,添加scott 的emp 表
grant all on emp to xiaoming
* scott 希望收回xiaoming 对emp 表的查询权限
revoke select on emp from xiaoming
对权限的维护
* 希望xiaoming 用户可以去查询scott 的emp 表/还希望xiaoming 可以把这个权限继续给别
人。
--如果是对象权限,就加入 with grant option grant select on emp to xiaoming with grant option
我的操作过程:
SQL> conn scott/tiger; 已连接。 SQL> grant select on scott.emp to xiaoming with grant option; 授权成功。 SQL> conn system/p; 已连接。 SQL> create user xiaohong identified by m123; 用户已创建。 SQL> grant connect to xiaohong; 授权成功。 SQL> conn xiaoming/m12; 已连接。 SQL> grant select on scott.emp to xiaohong; 授权成功。
如果是系统权限
system 给xiaoming 权限时:
grant connect to xiaoming with admin option
问题:如果scott 把xiaoming 对emp 表的查询权限回收,那么xiaohong 会怎样?
答案:被回收。
下面是我的操作过程:
SQL> conn scott/tiger; 已连接。 SQL> revoke select on emp from xiaoming; 撤销成功。 SQL> conn xiaohong/m123; 已连接。 SQL> select * from scott.emp; select * from scott.emp 第 1 行出现错误: ORA-00942: 表或视图不存在
结果显示:小红受到诛连了。