第二章、Oracle的 用户、权限、角色及表空间的管理

(一)用系统用户登入Oracle

(1)系统用户说明:

  1. Sys:这个账户相当于Sql Server中的sa账户,是个超级账户,拥有的权限最大,可以完成数据库中的所有管理任务。
  2. System:没有sys的权限大,通常用来创建一些用于查看管理信息的表或者视图,同样也部建议使用system架构来创建一些与管理无关的表或视图。
  3. Sys和system在登入oracle工具的时候,sys只能以系统管理员(sysdba)或者系统操作员(sysoper)的权限登入,而system可以直接登入(normal)。
  4. Sysman:是Oracle数据库中用于EM管理的用户,如果你不用改用户也可以删除。
  5. Scott:是Oracle提供的示例用户,里面有一些供初学者操作的数据表(emp,dep,salgrade,bonus)。(默认密码是tiger)

(2)登入普通用户的几种方式:

  1. win+R --> cmd --> sqlplus "/as sysdba"   //以sysdba身份登录(此时可以创建用户,分配权限等)exit退出
  2. win+R --> cmd --> sqlplus username/password   //以指定用户名/密码身份登录
  3. win+R --> cmd --> sqlplus 按照提示,输入用户名密码
  4. win+R --> cmd -->sqlplus /nolog-->conn sys/123456 @orcl as sysdba //首先以没有用户的方式进入sqlpuls,然后用sys用户登入.设置了管理身份为sysdba

(3)登入scott用户

  1. 先登入系统用户
  2. 给scott用户解锁:alter user username account unlock
  3. 登入scott用户:conn scott/tiger
  4. 使用sql语句查询该用户下的表有那些:select table from user_tables;
  5. 查询该用户下有四张表:
  6. DEPI,Emp,Donus,SALGRADE

(二)Oracle表空间的管理

(1)表空间介绍

  1. 数据库与表空间:表空间实际上是数据库上逻辑储存结构,可以把表空间理解为在数据库中开辟的一个空间,用于存放我们数据库的对象,一个数据库可以由多个表空间构成。
  2. 数据文件与表空间:表空间实际上由一个或者多个数据文件构成的,数据文件的位置和大小可以由用户自己来定义。
  3. 表空间的分类:永久表空间,临时表空间,UNDO表空间(回退表空间)。

(2)创建表空间

1.创建表空间的语法:

Create  [tablespace(永久表空间)]/[ temporary(临时表空间) tablespace] 表空间名字 [datafile]/[tempfile]’日志文件名.dbf’ size 表空间大小m;

创建永久表空间:

Create tablespace test1_tablespace datafile’testfile.dbf’ size 10m;

2.创建临时表空间:

Create temporary tablespace temptest_tablespace tempfile’tempfile.dbf’ size 10m;

查询表空间:

3.查询表空间的储存位置

查询永久表空间的位置语法:

Select file_name from dba_data_files where tablespace_name=’表空间名字,并且名字要的大写’;

注意:如果表空间的名字没有大写就会报错未选定行.

4.查看临时表空的储存位置语法:

Select file_name from dba_temp_files where tablespace_name=”临时表空间名字,并且名字大写”;

(三)Oracle的用户管理

(1)创建用户

1.创建用户的语法:

Create user<用户名>

Identified by<用户密码>

Default  tablespace<永久表空间名>

Temporary tablespace<临时表空间名>

2.创建一个用户

Create user yan

Identity by xws

Default tablespace test1_tablespace

Temprary tablespace temporary_tablespace;

(2)查看创建用户

1.查看创建用户语法:

Select usrename from dba_user;

(3)给创建的用户授权

  1. 语法:Grant权限to用户名
  2. 例子:Grant connect to yan;

(4)管理用户

  1. 连接用户:Connect 用户名/口令
  2. 更改密码:Alter user 用户名 identity by 新密码

3.不希望某个用户登入,而又不删除其用户,可以将用户锁定

Alter user 用户名 account lock;

注意:锁死该用户必须在权限比他大的用户下进行

4.删除用户:

Drop user 用户名 cascade

注意:加上cascadeade则将用户连同其创建的东西全部删除

(四)ORACLE的角色管理

(1)三种标准的角色

1.CONNECT(连接角色)

拥有Connect权限的用户只可以登入Oracle,不可以创建实体,不可以创建数据库结构.

创建用户并且给用户授予connect权限;

用管理员身份给改用户授予权限:

2.RESOURCE(资源角色)

拥有Resourse权限的用户只可以创建实体,不可以创建实体结构.

给用户授予resource权限:

授予权限之后创建表格:

3.DBA(数据库管理员角色)

拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构.

给用户授予dba权限:

新授予的用户创建表格:

注意:对于普通用户:授予:connect,resource权限。对于DBA管理用户:授予dba授权。

(2)创建角色

1.创建角色语法:

Create role 角色名;

例如:create role manger;

(3)为角色赋予权限:

Grant 权限 to 角色;

例如:

Grant create table,create view  to manger;

(4)将角色赋予用户:

Grant 角色 to 用户;

例如:grant manger to user01,user02;

(5)将该用户的角色撤销

Revoke 角色名 from 用户;

(6)删除该权限

Drop role 角色名;

(五)用户的权限管理

(1)权限的分类

  1. 系统权限:允许用户执行特定的数据库动作,如创建表、创建索引,连接实例等。
  2. 对象(实体)权限:允许用户操纵一些特定的对象,如读取视图,跟新某些列,执行储存过程等。

(2)系统权限

  1. 查询oracle所有的系统权限:

Select * from system_privilege_map;

2.常用的系统权限如:

Create session

创建会话

Create sequence

创建序列

Create table

创建表

Create user

创建用户

Alter user

更改用户

Drop user

删除用户

Create view

创建试图

 

 

(3)授予系统权限

Grant prilivilege [权限名1,权限名2]to [user,role];

例如:

Grant create table,create sequence to manger;

Grant manager to user01,user02;

给用户user01授予一个会话权限:

给角色manager授予一个创建表,创建序列的权限;

将角色manager赋予给user01

注意:这句话的意思是对用户user01,user02分配创建表,创建序列的权限;

(4)回收系统权限

Revoke  [权限名 | 角色名]from [user | role | public];

例如:

Revoke manager from user01;

Revoke create table,create sequence from manager;

(5)对象权限

1.查询Oracle所有对象权限:

Select * form table_privilege_map;

 

2.常用的对象权限如:

Select ,updata,insert,delect,all 等;

//all包括所有权限;

 

3.授予对象权限的语法格式:

Grant 对象权限 on 用户.表 to [角色 | 用户 | public];

例如:

Grant select,updata,insert on scott.emp to manger;

Grant manager to user01

Grant all on scott.emp to user02

给用户赋予对象权限:

将manager角色赋予给user0

User01用户查询scott.emp表中的数据

4.回收对象权限的语法格式:

Revoke 对象权限 on 用户.表 form [用户 | 角色 | public];

例如:

Revoke  all on  scott.emp from user02;

撤回manage用户的对象权限:

发布了20 篇原创文章 · 获赞 13 · 访问量 9522

猜你喜欢

转载自blog.csdn.net/qq_35653657/article/details/85156179