Oracle 入门到精通Part 1-用户管理

来源:互联网 发布:edu是什么域名 编辑:程序博客网 时间:2024/05/29 13:31

学习数据库,首先得先登陆数据库,登陆需要账号吧?

那我们就先了解Oracle对账号的管理以及规则,

对以后一些涉及到数据库安全、用户权限可以更好的处理。

默认用户

Oracle安装会自动的生成sys用户和system用户:

(1) sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install

(2) system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager

(3) 一般讲,对数据库维护,使用system用户登录就可以拉 也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。

创建用户
概述:在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
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

问题:如果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: 表或视图不存在
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

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

原创粉丝点击