ORACLE 数据库 学习第一天

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Snrt_Julier/article/details/77018140

这边博文只是记录我上课的一些笔记,即自己的一点理解,不会涉及数据库组成原理。

第一天主要讲了数据库的发展的几个过程,重点还是讲ORACLE数据库的安装和常用操作和SQL中的一些语句

了解到SQL中DDL、DML、MQL、DCL等知识

了解到ORACLE的特色PL/SQL 过程化SQL语言,是对传统的SQL语言的一次扩展,在SQL语言中加入了一些编程语言的特点,例如变量、流程控制等等

最主要的还是下面的内容

/* 创建表空间
create tablespace 表空间名 datafile 存放路径 size 文件大小 autoextend on
表空间名是将要新建的表空间的名称
存放路径表空间的存放路径 是字符串 需要用英文状态下的单引号包裹 最后的文件名是以 dbf为后缀名
*/
-- 例子
create tablespace MyTestTabelSpace 
datafile 'E:/workspace/ORACLE/study_demo01/demo01.dbf' 
size 10m autoextend on;



/* 创建用户
create user 用户名 identified by 密码
default tabelspace 表空间名
temporary tablespace 表空间名 on quota 文件大小 on 表空间名

这边的用户名和密码是指登陆时候用的用户名和密码
但是在用户创建后并不能直接登录 
因为该用户只是具有的登录的先决条件但是并不具备权限

default tabelspace 表空间名 
这是决定了该用户的会对什么表空间进行操作 默认是SYSTEM的表空间

temporary tablespace 表空间名 on quota 文件大小 on 表空间名
是设置表的缓存技术 一般不要去设置使用默认即可
*/
create user SnrtIevg identified by aaaa
default tablespace MyTestTabelSpace;
--temporary tablespace 表空间名 on quota 文件大小 on 表空间名

-- 经过上述步骤还不可以进行登录需要赋予登录权限


/* 赋予权限
ORACLE数据库中的权限分为两种 系统权限 对象权限
对于两种权限的赋予方式并不多相同
系统权限 提供了用户在整个DBMS中的操作 会影响到数据库系统的安全性
grant 权限,权限 to 用户名 with admin option
with admin option
则可以将获得的权限可以赋予其他用户

对象权限 提供给用户在特定数据库下对特定对象(数据表、视图、字段、序列等)的操作能力
grant 权限,权限 on 对象名 to 用户名 with admin option
*/

-- 赋予用户登录权限和创建表的权限
grant create session, create table to SnrtIevg;
-- 为什么没有赋予查询的功能却可以查询??
-- 对于自己创建的表可以进行查询?
-- 对别人创建的表需要去赋予权限?

-- 赋予用户查询数据的功能
grant select, alter on system.Demo02 to SnrtIevg;




/* 移除权限
如赋予权限一样 这里对于不同类型的权限的移除也需要不同的操作方法
系统权限
revok 权限, 权限 from 用户名
对象权限
revoke 权限, 权限 on 对象名 from 用户名
*/

-- 移除用户的创建表的能力
revoke create table from SnrtIevg;
-- 移除用户的登陆的权限
revoke create session from SnrtIevg;

-- 移除用户修改system创建的demo02对象表的权限
revoke alter on system.Demo02 from SnrtIevg;
-- 移除用户的铲鲟system创建的demo02的权限
revoke select on system.Demo02 from SnrtIevg;

revoke select


/*
常用的系统权限
       create session      连接数据库
       create sequence     创建序列
       create synonym      创建同名对象
       create table        创建表
       insert any table    往所有表中插入记录
       select any table    查询所有表
       drop table          删除表
       create user         创建用户
常用的对象权限
       alter               修改
       insert              新增数据
       update              修改数据
       delete              删除数据
       select              查询数据
       execute             执行存储过程
*/









/* 创建角色
由于Oracle数据库中的权限太过于细致处理起来太过于繁琐
(可能不是出于这方面的考虑 数据库原理上可能有 不太记得了) 
于是使用了角色这一概念 来打包处理这些系统权限和对象权限 
再将角色赋予用户达到授予权限的功能
*/

create role myRole;

/*
赋予角色权限
*/
grant create session, create table to myRole;
grant select on system.Demo02 to myRole;

/*
赋予用户以角色
*/
grant myRole to SnrtIevg;

/*
移除用户的权限
*/
revoke myRole from SnrtIevg;
/*
移除角色权限
*/
revoke create table from myRole;
revoke select on system.Demo02 from myRole;

/* 
删除角色

*/
drop role myRole






/* 删除表空间
drop tablespace 表空间名 including contents
其中表空间名是待删除的表空间的表空间名
including contents 是在表空间为空的时候可以省略不写
在语句删除表空间后还需要去删除物理空间中物理存储的文件
*/
-- 例子
drop tablespace MyTestTabelSpace including contents;

alter user system default tablespace MyTestTabelSpace;
create table demo02(
       userId int
);
select * from demo02;


猜你喜欢

转载自blog.csdn.net/Snrt_Julier/article/details/77018140