Oracle对表空间用户用户权限的操作

Posted CS讷于言而敏于行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle对表空间用户用户权限的操作相关的知识,希望对你有一定的参考价值。

一、对表空间的操作

1、创建表空间(create tablespace)

-- ‘hpdb_tablespace‘ 指定表空间名称
-- ‘e:\hpdb.dbf‘ 指定表空间数据文件名称
-- size 指定表空间的初始化大小
-- autoextend on next 30M 指定当表空间不足时,自动扩增的空间大小
-- autoextend off 停止自动扩展表空间
-- maxsize unlimited 表空间的最大空间不设置上限
create tablespace hpdb_tablespace datafile e:\hpdb.dbf size 100M autoextend on next 30M maxsize unlimited;
create tablespace table datafile ‘e:\aa.dbf‘ size 10M;

2、修改表空间的大小

alter database datafile e:\hpdb.dbf resize 30M;

3、为表空间设置自动扩展

alter database datafile e:\hpdb.dbf autoextend on next 30M maxsize unlimited;

4、关闭表空间自动扩展

alter database datafile e:\hpdb.dbf autoextend off

 5、为表空间添加一个数据文件

alter tablespace hpdb_tablespace add datafile e:\22.dbf size 100m;

6、删除表空间中的一个数据文件

alter tablespace hpdb_tablespace drop datafile e:\\22.dbf 

7、 删除表空间

-- 只删除表空间,对应的数据文件并没有删除
drop tablespace hpdb_tablespace;
-- 同时删除表空间和数据文件
-- (1)先将表空间offline
alter tablespace hpdb_tablespace offline;
-- (2)删除表空间和数据文件
-- 删除表空间、数据文件 drop tablespace hpdb_tablespace including contents and datafiles;
--删除表空间、数据文件、关联
drop tablespace hpdb_tablespace including contents and datafiles cascade constraint;

 

二、对临时表空间的操作

1、创建临时表空间(create temporary tablespace)

-- 和创建表空间的方式很相似
-- 注意:表空间通过create tablespace来创建;临时表空间通过create temporary tablespace类创建;表空间通过datafile为表空间指定数据文件的名称;临时表空间通过tempfile为其指定数据文件的名称 -- 临时表空间的作用:临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。 create temporary tablespace hpdb_tmp tempfile ‘e:\hpdb_tmp.dbf‘ size 100M autoextend on next 30M maxsize unlimited;

 2、查看临时表空间

--查看临时表空间
select
name from v$tempfile
--查看当前用户的临时表空间
select * from database_properties where property_name=‘DEFAULT_TEMP_TABLESPACE‘

 3、修改临时表空间的大小

alter database tempfile e:\hpdb_tmp.dbf resize 30M;

 4、为临时表空间设置自动扩展

alter database tempfile e:\hpdb_tmp.dbf autoextend on next 20M maxsize unlimited;

 5、关闭临时表空间的自动扩展

alter database tempfile e:\hpdb_tmp.dbf autoextend off;

 6、为临时表空间添加一个数据文件

alter tablespace hpdb_tmp add tempfile e:\2.dbf size 100M;

7、删除临时表空间中的一个数据文件

--删除2.dbf文件
alter
tablespace hpdb_tmp drop tempfile e:\2.dbf;

8、删除临时表空间

--删除表空间,不删除.dbf文件
drop tablespace hpdb_tmp including contents and datafiles cascade constraints;

9、删除默认的临时表空间

默认的临时表空间不能直接删除,我们只能通过以下步骤间接的删除默认的临时表空间:

  1. 先定义一个新的临时表空间temp2,使temp2作为中转表空间;
  2. 将默认表空间temp1换成temp2;( alter database default temporary tablespace temp1; 
  3. 然后将之前的默认临时表空间temp1删除;
  4. 在定义一个新的临时表空间temp3,使temp3作为新的默认临时表空间;
  5. 删除中转表空间temp2;

经过以上几步,默认的表空间temp1就被替换成了新的表空间temp3。

 

三、对用户的操作

1、创建用户

-- user 后跟用户名
-- identified by 登录密码
-- default tablespace 用户默认表空间
-- temporary tablespace 用户临时表空间
-- 如果建立用户时不指定default tablespace,Oracle会将SYSTEM表空间作为用户默认表空间。 
-- 如果建立用户时不能指定temporary tablespace,Oracle会将数据库默认临时表空间作为用户的临时表空间。
create user CS identified by 123456 DEFAULT tablespace hpdb_tablespace temporary tablespace hpdb_tmp;

2、更改用户的默认表空间

alter user CS default tablespace newTemp;

3、更改用户的默认临时表空间

alter user CS temporary tablespace temp3;

4、修改用户密码

alter user CS identified by 000000

5、 删除用户

--删除用户,并删除该用户创建的对象
--不能删除正在连接的用户
drop user CS cascade

6、锁定用户

alter user CS account lock;

7、解除锁定

alter user CS account unlock;

 

四、用户权限、角色管理

我们新创建的用户是没有任何权限的,甚至连登录连接数据的权限都没有,那么,我们在创建完用户后,就要为其分配权限,或者角色。

用户的权限分为两类:系统权限、对象权限

  系统权限:允许用户执行某些数据库操作(如登录需要的权限create session;创建数据表的权限create table)。

  对象权限:允许用户对某一特定对象执行特定的操作(如select、delete、update等权限)。

  角        色:为了简化权限管理,进而引入了角色的概念,角色是具有名称的一组权限的组合。

系统预定义的用户角色

   CONNECT:时用户 (只有登录的权限)
   RESOURCE:更为可靠和正式的用户
   DBA:数据库管理员角色,拥有管理数据库的最高权限,该角色不应该给一般的用户。

 

1、授予用户角色

--为用户CS授予connect、resource角色
GRANT CONNECT,RESOURCE TO CS;

2、授予用户系统权限

--授予用户CS登录连接数据库的权限
grant create session to CS;
--授予用户CS创建数据表的权限
grant create table to CS;
--赋予用户CS使用表空间的权限
grant ulimited tablespace to CS;

3、授予用户对象权限

-- 赋予用户CS查看数据表dept的权限
grant select on dept to CS;
-- 赋予用户CS查看所有数据表的权限
grant select any table to CS;

4、撤销用户角色

--撤销用户CS的connect、resource角色
REVOKE CONNECT,RESOURCE FROM CS;
--撤销用户CS的创建数据表的权限
revoke create table from CS;
--撤销用户CS的使用表空间的权限
revoke ulimited tablespace from CS;
--撤销用户CS的查看数据表dept的权限
revoke select on dept from CS;
--撤销用户CS查看所有数据表的权限
revoke select any table from CS;

 

 5、权限级联

grant select on Student to CS with grant option;-- 赋予用户CS查看数据表Student的权限,并且用户CS可以将该权限赋予其他用户
  • with grant option (用于对象权限授权,权限是级联的)赋予权限账户被删除或权限被撤销,被赋予权限的用户的权限也将被撤销
  • with admin option (用于系统权限授权,权限是不级联的)赋予权限账户被删除或权限被撤销,被赋予权限的用户的权限不会被撤销

 































以上是关于Oracle对表空间用户用户权限的操作的主要内容,如果未能解决你的问题,请参考以下文章

如何查看用户对于表空间使用空间的权限

怎么把一个表空间的权限给一个角色 或者用户呢?

Oracle 11g 创建表空间权限不足试过了好多方法还是没用

ORA-01950:对表空间 'USERS' 无权限 ?????

各位高手,请问,在oracle中创建的用户都分配哪些权限?一般分配哪些权限?

oracle创建用户授予权限及删除用户