Oracle用户管理

创建用户

概述:在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: 表或视图不存在

结果显示:小红受到诛连了。

原文地址:https://www.cnblogs.com/hongmaju/p/4587690.html