创建表空间
永久表空间
表空间是数据逻辑的划分,一个表空间只能属于一个数据库, 所有数据库对象都存放在表空间中,但主要存放的是表,数据存放在表,表存放在表空间
临时表空间
Oracle 临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序。重启数据库可以释放临时表空间
语句
1、创建表空间需要sys或system账号
SQL> sqlplus / as sysdba
2、查询用户表空间文件的路径,然后在此目录下创建新的表空间
SQL> select name from v$datafile;
NAME
/opt/oracle/oradata/orcl/system01.dbf
/opt/oracle/oradata/orcl/sysaux01.dbf
/opt/oracle/oradata/orcl/undotbs01.dbf
/opt/oracle/oradata/orcl/users01.dbf
3、创建永久表空间
SQL> create tablespace testper logging datafile '/opt/oracle/oradata/orcl/testper.dbf' size 100m autoextend on next 100m maxsize 500m extent management local;
Tablespace created.
4、创建临时表空间
查询临时表空间文件的路径,然后在此目录下创建临时表空间
SQL> select name from v$tempfile;
NAME
/opt/oracle/oradata/orcl/temp01.dbf
SQL> create temporary tablespace testtem tempfile '/opt/oracle/oradata/orcl/testtem.dbf' size 100m autoextend on next 100m maxsize 500m extent management local;
Tablespace created.
解析
--创建表空间语句
create tablespace test --表空间名字
logging --默认的参数,是否生成创建日志 nologging不生成可加快创建速度,该属性针对 undo 和 temporary 表空间不启作用
datafile 'D:\dev-software\Oracle\oradata\ORCL\element_hn.dbf' --物理文件名及路径
size 100m --表空间大小
autoextend on --自动增长
next 100m --每次扩展大小
maxsize 500m --最大大小
extent management local; --本地管理表空间是通过位图管理的,这是最重要的子句,说明了表空间如何管理范围。
创建用户
语句
SQL> create user test3 identified by 123456 default tablespace testper temporary tablespace temp;
User created.
SQL> alter user 用户名 identified by 新密码;
授权
在oracle的数据库中权限分为三类
-
对象权限(Object privileges) ? 对象权限是指指定的表,试图,序列上制定执行动作的权限。 -
角色权限(Role privileges) ? 角色是可以授予用户相关权限的组,该方法使权限的授予,撤回更加容易。 常见的三种角色 ? connect role(连接角色) ? --临时用户,特指不需要建表的用户,通常只赋予他们connect role. ? --connect是使用oracle的create session简单权限 resource role(资源角色) –更可靠和正式的数据库用户可以授予resource role。该角色不包含connect的连接权限 –resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。 dba role(数据库管理员角色) –dba role拥有所有的系统权限 –包括无限制的空间限额和给其他用户授予各种权限的能力。system由dba用户拥有 -
系统权限(System privileges) ? 为用户分配创建表(create table)、创建用户(create user)、创建视图(create view)、创建存储过程(create procedure),无限制使用表空间(unlimited tablespace)等权限。 注意:无限制使用表空间(unlimited tablespace)权限无法授予角色,只能授予给用户!
命令
授予角色权限
SQL> create role test7;
Role created.
SQL> grant create session,create table to test7;
Grant succeeded.
授予用户角色权限
SQL> grant connect,resource to test2;
Grant succeeded.
SQL> grant dba to test3;
Grant succeeded.
撤销权限
SQL> revoke connect from test2;
Revoke succeeded.
sys用户下
查询用户的角色权限 区分大小写
SQL> select * from dba_role_privs where grantee='TEST2';
GRANTEE GRANTED_ROLE ADM DEF
TEST2 CONNECT NO YES
TEST2 RESOURCE NO YES
查询用户的系统权限
SQL> select * from dba_sys_privs where grantee='TEST2';
GRANTEE PRIVILEGE ADM
TEST2 UNLIMITED TABLESPACE NO
查看某个角色所拥有的权限
SQL> select * from dba_sys_privs where grantee='CONNECT';
GRANTEE PRIVILEGE ADM
CONNECT CREATE SESSION NO
当前用户下
SQL> select * from session_privs;
SQL> select * from user_sys_privs;
SQL> select * from user_tab_privs;
SQL> select * from role_sys_privs;
|