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、删除默认的临时表空间
默认的临时表空间不能直接删除,我们只能通过以下步骤间接的删除默认的临时表空间:
- 先定义一个新的临时表空间temp2,使temp2作为中转表空间;
- 将默认表空间temp1换成temp2;( alter database default temporary tablespace temp1; )
- 然后将之前的默认临时表空间temp1删除;
- 在定义一个新的临时表空间temp3,使temp3作为新的默认临时表空间;
- 删除中转表空间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' 无权限 ?????