oracle创建用户、创建表空间

1.首先我们可以用scott用户以sysdba的身份登录oracle.

conn scott/tiger as sysdba  

2.然后我就可以来创建用户了.

create user zzg identified by zzg123;  

-- 创建好用户我们接着就可以修改用户的密码.
alter user zzg identified by unis;  

4.默认情况下用户创建好后系统会默认给该用户分配一个表空间(users);我们可以通过下面的sql语句来查看一下所有用户所在的表空间.

select username,default_tablespace from dba_users;  

5.一般在开发情况下,我们当然不会使用用户的默认表空间,所以这时我们需要创建一个表空间.
在一句命令中执行完下面

create tablespace ts_zzg datafile 'f:\ts_zzg\zzg_data.dbf' size 200M
autoextend ON NEXT 50M maxsize 20000M;  --表空间自动扩展大小

注:datafile后面是表空间的物理存储路径,文件名的后缀可以随便.

6.创建好表空间,还需要将表空间分配给用户.

alter user zzg default tablespace ts_zzg;  
-- 修改表空间名称
SQL> alter tablespace  ts_zzg rename to ts_zzg_newname;  

7.我们可以通过步骤4来查询用户所在的表空间.

8.给用户分配了表空间,用户还不能登陆(没有登录权限),因此还需要为用户分配权限

grant create session,create table,create view,create sequence,unlimited tablespace to zzg;  

9.给用户分配了权限之后我们就可以用zzg用户来登录了.

conn zzg/unis;  

10.登录之后我们也可以来查询用户所具有的权限

select *from session_privs;  

11.最后我们也可以删除用户及其相关对象

drop user zzg cascade;  

解锁用户

ALTER USER username ACCOUNT UNLOCK;
```sql


修改表空间大小
```sql
ALTER DATABASE datafile 'D:\soft\product\11.2.0\dbhome_1\tablespace\BISPACE.DBF' autoextend ON NEXT 100M maxsize 32000M;

查看用户下各表占用表空间大小

Select Segment_Name,Sum(bytes)/1024/1024 total From User_Extents Group By Segment_Name order by total desc
imp bi/bi file="filePath/xxx.dmp" full=y
imp BI/BI file="E:\develop\BI_2017-12-07-00-05-01.dmp" full=y

--查询数据库servername

select value from v$parameter where name = 'service_names';

show parameter service_name

--查询数据库域名

select value from v$parameter where name = 'db_domain';

show parameter domain

--导入dmp

imp bi/bi file="F:\oracle_2017-11-28-00-05-01\work\platform\bak\oracle\BI_2017-11-28-00-05-01.dmp"  full=y

imp sjgl_dsfcj/tiger file="F:\oracle_2017-11-28-00-05-01\work\platform\bak\oracle\SJGL_DSFCJ_2017-11-28-00-05-01.dmp"  full=y

imp bi/bi file="F:\oracle_2017-11-28-00-05-01\work\platform\bak\oracle\BI_2017-11-28-00-05-01.dmp"  full=y

--导出dmp

exp file=d:\daochu.dmp tables=(act%)

--恢复数据
1、获得当前数据库的scn号

    select current_scn from v$database; (切换到sys用户或system用户查询) 

2、查询当前scn号之前的scn

    select * from 表名 as of scn 1499220; (确定删除的数据是否存在,如果存在,则恢复数据;如果不是,则继续缩小scn号)

3、恢复删除且已提交的数据

    flashback table 表名 to scn 1499220;
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select * from 表名 as of timestamp to_timestamp('2013-05-29 15:29:00','yyyy-mm-dd hh24:mi:ss');  (如果不是,则继续缩小范围)
flashback table 表名 to timestamp to_timestamp('2013-05-29 15:29:00','yyyy-mm-dd hh24:mi:ss');

你可能感兴趣的:(oracle创建用户、创建表空间)