Oracle学习总结--表空间和权限

1.Oracle组件:

       物理组件:数据文件,控制文件,日志文件
            数据文件    . DBF    
            数据文件用来存储数据库的数据,如表、索引等。
            读取数据时,系统首先从数据库文件中读取数据,并存储到SGA的数据缓冲区中。
        日志文件     .LOG
            记录对数据库的操作,用来恢复和还原
        控制文件     .CTL
            控制文件记录了如下信息:
            1、数据库的创建时间2、数据文件的位置3、日志文件的位置等
            作用是指导数据库 找到数据文件,日志文件并将数据库启动到 open 状态。

    逻辑组件:表空间,段,区,数据块      模式
        表空间:
            表空间是数据库中最大的逻辑单位,一个 Oracle 数据库至少包含一个表空间,就是名为SYSTEM的系统表空间。
            每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。
            表空间的大小等于构成该表空间的所有数据文件大小之和
            CREATE TABLESPACE tablespacename
            DATAFILE ‘filename’ [SIZE integer [K|M]]
            [AUTOEXTEND [OFF|ON]];
        段:
            段是构成表空间的逻辑存储结构,段由一组区组成。
            按照段所存储数据的特征,将段分为四种类型,即数据段、索引段、回退段和临时段。
        区:
            区为段分配空间,它由连续的数据块组成。
            当段中的所有空间已完全使用时,系统自动为该段分配一个新区。
            区不能跨数据文件存在,只能存在于一个数据文件中。
        数据块:
            数据块是Oracle服务器所能分配、读取或写入的最小存储单元。
            Oracle服务器以数据块为单位管理数据文件的存储空间。
        模式:
            模式是对用户所创建的数据库对象的总称。
            模式对象包括表、视图、索引、同义词、序列、过程和程序包等。

2.表空间

create tablespace lzdspace  --表空间名
    datafile 'D:/lzdspace01.dbf'   --表空间对应的数据文件
    size 100M --数据文件大小
    autoextend on next 10M  --数据文件不够用自动扩展,每次扩展大小10M
    maxsize 1000M   --数据文件最大文件大小
    logging --启动重做日志
    permanent  --指定表空间为永久性的表空间
    extend management local autoalllocal  --指定新建表空间为本地管理方式的表空间
    blocksize 16k  --块大小16k
    segment space management auto  --指定本地管理表空间中段的存储管理方式,AUTO自动方式,MANUAL手工方式。

--修改表空间的状态:
    alter tablespace lzdspace offline|online|readonly|read write
            
--修改表空间数据文件的大小
    alter database datafile 'D:\lzdspace01.dbf' resize 200M;
    
--添加数据文件
    alter tablespace lzdspace add datafile 'D:/lzdspace02.dbf' size 10M;
    
--删除数据文件
    alter tablespace lzdspace drop datafile 'D:/lzdspace01.dbf';
                    
--修改表空间数据文件的自动扩张性
    alter database datafile 'D:/lzdspace01.dbf' autoextend on next 5M maxsize 100M;

--删除表空间
    drop tablespace lzdspace;
    drop tablespace lzdspace including contents and datafiles; --同时删除其数据库对象和数据文件
    
--查看数据文件
    select * from dba_data_files;

--查看表空间
    select * from dba_tablespaces;
    
--赋予用户a使用表空间的权限
    grant unlimited tablespace to a;

   
--只要将a3表空间的限额分配给用户a就可以了,只要在sys下执行
    alter user a QUOTA UNLIMITED on a3; --a用户可以无限使用a3表空间
    alter user a quota 100M on a3;      --a用户可以使用100Ma3表空间的数据
注意:不要手动删除数据文件

3.用户和权限

--创建一个用户lzd,口令为a,默认表空间是users,临时表空间是temp
    create user lzd identified by a default tablespace users temporary tablespace temp;

注意:创建此用户后,在没有为这个用户授予相应的连接数据库的权限的情况下,它依然不能连接到数据库.   ora-01045错误

权限问题:没有session权限

为 lzd 授予create session权限,再测试
    grant create session to lzd;

锁定和解除锁定用户, 临时禁止某个用户访问oracle
--语法: alter user 用户名 account [lock|unlock]
--练习: 对 lzd  用户进行锁定和解除锁定操作

--注意:应以system身份登录操作
    alter user lzd account lock;
    alter user lzd account unlock;

为lzd用户授予create session和create user系统权限,可连接系统和创建用户
    grant create session,create user to lzd;
    
--为lzd用户授予create any table 和execute any procedure系统权限,并使用with admin option选项,
--这样它可以将授予自己的权限转授别人.
    grant create any table,execute any procedure to lzd with admin option;
    
--以lzd身份登录系统, 为a用户授予create any table和execute any procedure系统权限.
    grant create any table,execute any procedure to a;

--以system身份登录系统,为public用户授予create session权限。因为public 是公共角色,所有的用户都是其成员,所以,系统中所有的用户都拥有联接系统权限.
    select * from session_privs;--当前用户所拥有的全部权限
    select * from user_sys_privs;--当前用户的系统权限
    select * from user_tab_privs;--当前用户的表级权限
    select * from dba_sys_privs;--查询某个用户所拥有的系统权限
    select * from role_sys_privs;--查看角色(只能查看登陆用户拥有的角色)所包含的权限

        
--收回授予的系统权限
--语法: revoke 系统权限1[,系统权限2] from 用户名
--以system登录,从a处收回create any table权限

    revoke create any table from a;
 --收回对象权限
 --语法:  revoke 对象权限  on 对象名  from 用户名

 revoke update on scott.emp from lzd;    

 

--以a登录,查看它的权限
    select * from user_sys_privs;

--查看用户的对象权限:    
 --user_tab_privs_made, 某个用户对另外一个用户授予的权限
 --user_col_privs_made, 有关列级的权限
 --user_tab_privs_read  , 有关某个用户接受的权限
 --user_col_privs_read    有关列级对象的权限.
 --以scott登录,查看
 select * from user_tab_privs_made;




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值