Oracle建立表空间和用户

Oracle建立表空间和用户                 
 
[sql] view plain copy
建立表空间和用户的步骤:  
用户  
建立:create user 用户名 identified by "密码";  
授权:grant create session to 用户名;  
            grant create table to  用户名;  
            grant create tablespace to  用户名;  
            grant create view to  用户名; 
create table 只能在自己的schema下创建table;
create any table 可以在别人的schema下创建table,
例如userA执行:create table userB.tableName(n char(1));
给用户userb创建表tabelName 


[sql] view plain copy
表空间  
建立表空间(一般建N个存数据的表空间和一个索引空间):  
create tablespace 表空间名  
datafile ' 路径(要先建好路径)\***.dbf  ' size *M  
tempfile ' 路径\***.dbf ' size *M  
autoextend on  --自动增长  
--还有一些定义大小的命令,看需要  
 default storage(  
 initial 100K,  
 next 100k,  
);  
[sql] view plain copy
例子:创建表空间  
create tablespace DEMOSPACE   
datafile 'E:/oracle_tablespaces/DEMOSPACE_TBSPACE.dbf'   
size 1500M   
autoextend on next 5M maxsize 3000M;  
删除表空间  
drop tablespace DEMOSPACE including contents and datafiles  


[sql] view plain copy
用户权限  
授予用户使用表空间的权限:  
alter user 用户名 quota unlimited on 表空间;  
或 alter user 用户名 quota *M on 表空间;  


完整例子:
[sql] view plain copy
--表空间  
CREATE TABLESPACE sdt  
DATAFILE 'F:\tablespace\demo' size 800M  
         EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;   
--索引表空间  
CREATE TABLESPACE sdt_Index  
DATAFILE 'F:\tablespace\demo' size 512M           
         EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;       
  
--2.建用户  
create user demo identified by demo   
default tablespace demo;  
   
--3.赋权  
grant connect,resource to demo;  
grant create any sequence to demo;  
grant create any table to demo;  
grant delete any table to demo;  
grant insert any table to demo;  
grant select any table to demo;  
grant unlimited tablespace to demo;  
grant execute any procedure to demo;  
grant update any table to demo;  
grant create any view to demo;  
[sql] view plain copy


-- 取消权限
 revoke create  any table from bigdata;
 revoke connect,resource from  bdtest; 
--导入导出命令     
ip导出方式: exp demo/demo@127.0.0.1:1521/orcl file=f:/f.dmp full=y  
exp demo/demo@orcl file=f:/f.dmp full=y  
imp demo/demo@orcl file=f:/f.dmp full=y ignore=y  




步骤一:  删除user
drop user ×× cascade
说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的。
步骤二: 删除tablespace
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;


connect resource权限
    grant connect,resource to user;
   执行上面的sql语句后用户包括的权限:
    CONNECT角色: --是授予最终用户的典型权利,最基本的
        ALTER SESSION --修改会话
        CREATE CLUSTER --建立聚簇
        CREATE DATABASE LINK --建立数据库链接
        CREATE SEQUENCE --建立序列
        CREATE SESSION --建立会话
        CREATE SYNONYM --建立同义词
        CREATE VIEW --建立视图
    RESOURCE角色: --是授予开发人员的
        CREATE CLUSTER --建立聚簇
        CREATE PROCEDURE --建立过程
        CREATE SEQUENCE --建立序列
        CREATE TABLE --建表
        CREATE TRIGGER --建立触发器
        CREATE TYPE --建立类型
    从dba_sys_privs里可以查到:
    SQL> select grantee,privilege from dba_sys_privs where grantee='RESOURCE' order by privilege;
    GRANTEE PRIVILEGE
    ------------ ----------------------
    RESOURCE CREATE CLUSTER
    RESOURCE CREATE INDEXTYPE
    RESOURCE CREATE OPERATOR
    RESOURCE CREATE PROCEDURE
    RESOURCE CREATE SEQUENCE
    RESOURCE CREATE TABLE
    RESOURCE CREATE TRIGGER
    RESOURCE CREATE TYPE
    已选择8行。


1.查看所有用户:
  select * from dba_users;
  select * from all_users;
  select * from user_users;
2.查看用户或角色系统权限:
  select * from dba_sys_privs;
  select * from user_sys_privs;
3.查看用户对象权限:
  select * from dba_tab_privs;
  select * from all_tab_privs;
  select * from user_tab_privs;
4.查看所有角色:
  select * from dba_roles;
5.查看用户或角色所拥有的角色:
  select * from dba_role_privs;
  select * from user_role_privs;
 
 
注意:
1、以下语句可以查看Oracle提供的系统权限
select name from sys.system_privilege_map
 
2、查看一个用户的所有系统权限(包含角色的系统权限)


select privilege from dba_sys_privs where grantee='DATAUSER'  
union  
select privilege from dba_sys_privs where grantee in (select granted_role from dba_role_privs where grantee='DATAUSER' ); 
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页