概要图

概要图

一 表空间

1.1创建表空间

--问题:创建一个名为hp的表空间,指定数据文件为hp.dbf,大小为10m.

create tablespace hp

datafile 'C:\app\hp\hp.dbf'

size 10M

autoextend on next 5m

maxsize unlimited;

1.2 删除表空间

drop tablespace hp;

1.3思考题

删除表空间的时候,如何删除关联的数据文件??

drop tablespace test_data including contents and datafiles;

二 创建用户

2.1创建用户

--语法结构:create user 用户名 identified by 密码 【default tablespace 表空间名】【temporary tablespace temp】

create user 用户名 identified by 密码

[default tablespace users]  //用户的默认表空间:users

[temporary tablespace temp]  //用户使用的临时表空间temp

[quota 3m on users];        //默认表空间中可以使用的空间配额:3MB
create user hope identified by ;

create user hope1 identified by  default tablespace users;

create user hope2 identified by  default tablespace users temporary tablespace temp;

2.2 修改用户密码

--语法结构:alter user 用户名 identified by 密码

alter user hope identified by ;

2.3 删除用户

--drop user 用户名【cascade】

drop user hope;

drop user hope cascade;

三 权限和角色

--权限指执行特定类型SQL命令或访问其他对象的权利

--系统权限:允许用户执行某些数据库操作

--对象权限:允许用户对某一特定对象执行特定的操作

--角色是具有名称的一组权限的组合

权限指执行特定类型SQL命令或访问其他对象的权利。创建的新用户是没有任何权限的,甚至连登录的数据库的权限都没有,需要为其指定相应的权限。

权限分为两种:系统权限和对象权限。

1. 系统权限

系统权限:允许用户执行某些数据库操作,如创建表、创建索引、连接实例等。

常见系统权限

权限名

描述

CREATE SESSION

创建会话(具有登录权限)

CREATE TABLE

创建表

DROP TABLE

删除表

CREATE SEQUENCE

创建序列

CREATE USER

创建用户

DROP USER

删除用户

CREATE VIEW

创建视图

权限的分配

grant CREATE SESSION,CREATE TABLE,CREATE USER to 用户名;

权限回收

revoke CREATE SESSION from 用户名;

2.对象权限

对象权限:允许用户对某一特定数据对象执行特定的操作,如读取视图,可更新某些列、执行存储过程等。

对象的拥有者拥有所有权限;对象的拥有者可以向外分配权限。

对象权限

视图

序列

过程

修改(alter)

插入(insert)

删除(delete)

更新(update)

查询(select)

执行(execute)

索引(index)

关联(references)

授权:

grant object_priv|ALL [(columns)]

on object  to {user|role|public}

[WITH GRANT OPTION];

grant all on scott.emp to hope;

收回权限:

revoke object_priv|ALL [(columns)]

on object    from {user|role|public}

PS

1.all包括所有权限;

2. public:用户public是oracle预定义的,每个用户享有这个用户享有的权限,那么就意味将该权限授予了该数据库的所有用户

3. WITH GRANT OPTION  权限的分配是级联的。

--赋予权限和角色
--语法结构:grant 角色1,角色2,。。。 to 用户
grant connect to hope2
grant connect,resource to hope2; --给hope2赋予查询scott的emp表的权限
grant select on scott.emp to hope2;
grant select,update on scott.emp to hope2;
--撤销角色和权限:
--语法结构:revoke 角色1,角色2,。。。from 用户
revoke resource from hope2;
revoke connect,resource from hope2;

3.1 常用系统预定义角色

--CONNECT:临时用户

--RESOURCE:更为可靠和正式的用户

--DBA:数据库管理员角色,拥有管理数据库的最高权限

--一般情况下,普通用户,有connect和resource的角色就够了。

3.2 赋予权限和角色

--语法结构:grant 角色1,角色2,。。。 to 用户

grant connect to hope2

grant connect,resource to hope2;

--给hope2赋予查询scott的emp表的权限

grant select on scott.emp to hope2;

grant select,update on scott.emp to hope2;

--撤销角色和权限:

--语法结构:revoke 角色1,角色2,。。。from 用户

revoke resource from hope2;

revoke connect,resource from hope2;

3.3 常见的预定义角色

(1)connect角色

connect角色具有一般应用开发人员需要的大部分权限,当建立了一个用户后,多数情况下,只要给用户授予connect和resource角色就够了,那么connect角色具有以下系统权限:

alter session、create cluster、create database link、create session、create view、create sequence

这种权限只有在对其他用户的表有访问权时,包括select、insert、update和delete等,才会变得有意义。

(2)resource角色

resource角色具有应用开发人员所需要的其他权限,比如建立存储过程、触发器等。这里需要注意的是resource角色隐含了unlimited tablespace系统权限。

resource角色包含以下系统权限:

create cluster、create indextype、create table、create sequence、create type、create procedure、create trigger

(3)dba角色

dba角色具有所有的系统权限,及with admin option选项,默认的dba用户为sys和system他们可以将任何系统权限授予其他用户。

3.4 自定义角色管理

创建角色:

create role 角色名 [identified by tiger];

删除角色:

drop role 角色名;

3.5 为角色分配权限

权限的分配

grant CREATE SESSION,CREATE TABLE,CREATE USER to 用户名;

grant object_priv|ALL [(columns)]  on   object  to 角色名;

权限回收

revoke CREATE SESSION from 角色;

revoke object_priv|ALL [(columns)]  on  object  from 角色名

SQL> conn system/oracle;
SQL> grant create session to 角色名 with admin option
SQL> conn scott/oracle@orcl;
SQL> grant select on scott.emp to 角色名;
SQL> grant insert, update, delete on scott.emp to 角色名;

角色分配给用户

grant connect, resorce to 用户名 with admin option   //可以传递所获权限。

SQL> conn system/oracle;
SQL> grant 角色名 to blake with admin option;

PS:增加WITH ADMIN OPTION选项,则得到的权限可以传递。

删除角色

SQL> conn system/oracle;
SQL> drop role 角色名;

四 Oracle的数据类型@@

类型

语法

描述

文本类型

char(n)

定长

最大2000字符,默认n=1

varchar2(n)

变长

最大4000字符

nchar(n)

定长

unicode数据类型,最大2000

nvarchar2(n)

变长

unicode数据类型,最大4000

clob(character large Object)

字符型大对象,最大8TB

blob(birnary large Object)

二进制数据,可存放图片、声音,最大8TB

数值

number(p,s)

变长

p-有效位,s-小数位;1<=p<=38,-84<=s<=127

日期

date

默认格式:DD-MM-YYYY ‘16-05月-2017’

timestamp(n)

4.1 文本类型

--char:可以存储定长的字符串  char(200)

--varchar:可以存储变长的字符串

--varchar2:可以存储变长的字符串  varchar2(200)

--什么时候用char,什么时候用varchar(2) @@

当已知字符串长度用char比较合适

--不确定字符串长度时,用varchar2比较合适。

--nchar和nvarchar2可以存储Unicode字符集

4.2 数值类型

--数值数据类型:numer

--number  等价于number(38,0)

--number(15)表示可以存储一个15位的整数

--number(22,7)表示可以浮点数,整数部分有15位,小数点后有7位

--注意:不建议大家使用varchar,integer,float,double

4.2 日期数据类型

--与日期类型相关的函数

--sysdate:日期函数:显示当前日期

select sysdate from dual;

--systimestamp:比Date更精确的一个时间

select systimestamp from dual;

--to_date(字符串,格式):将一个Oracle不认识的字符串,转成Oracle认识的日期格式

select to_date('2018-01-05','yyyy-mm-dd') from dual;

--Date:日期类型,存储日期和时间

--TimeStamp:比Date更精确的一种日期类型。

--默认日期格式:

--中文的Oracle:日-月-年   比如1998年7月1日 ->‘01-7月-1998’

--英文的Oracle:day-mon-year  比如1998年7月1日 ->'01-JUL-1998'

--Lob:

--BLOB:存储二进制对象,如图像、音频和视频文件

--CLOB:存储字符格式的大型对象

五  表

5.1创建表

1.使用sql/plus创建

create  table  表的名称(字段名称1  数据类型, 字段名称2 数据类型…);

示例:

创建学生表,字段和类型如下所示:

字段

字段类型

id

number

name

varchar2(20)

sex

char(2)

birthday

date

score

number(4,2)

create table student(

id number,

name varchar2(20),

sex char(2),

birthday date,

score number(4,2)

)

2.使用plsql developer第三方工具创建

--创建表:实际上解决的是表结构的问题,表有几个字段,每个字段的长度是多少,每个字段是什么数据类型

--create table 表名(字段名1 数据类型1(长度),字段名2 数据类型2(长度),。。。);

create table student(stuno  number(),stuname varchar2(),age number(),addr varchar());

5.2 删除表

drop table student;
--删除表及该表关联的约束
drop table score cascade constraints;

5.3 修改表

1.修改表名

RENAME 旧的表名称 TO 新的表名称;

2. 添加列

ALTER TABLE 表名称 ADD

(列名称 数据类型 [DEFAULT 默认值],

列名称 数据类型 [DEFAULT 默认值],

…);

3.修改列

ALTER TABLE 表名称 MODIFY

(列名称 数据类型 [DEFAULT 默认值],

列名称 数据类型 [DEFAULT 默认值],

…);

4.删除列

alter table 表名 drop column 列名;

alter table 表名 drop(列名1,列名2,...);

5 修改字段名

alter table [表名]  rename column 旧的字段名 to 新的字段名;

6.举例

(1)给学生表添加班级编号

alter table students add(class_id number);

(2)学生姓名变成varchar2(30)

alter table students modify(name varchar2(30));

(3)删除学生表的score字段

alter table students drop column score;

alter table students drop(score);

(4)把学生表名students修改成stu

SQL>rename students to stu;

oracle-表空间-用户-角色-权限的更多相关文章

  1. oracle创建表空间-用户-角色-授权

    1.创建数据表空间: SQL> create tablespace rusky_data datafile 'D:\rusky\rusky_data01,dbf' size 10M autoex ...

  2. oracle 表空间 用户

    Oracle创建表空间.创建用户以及授权.查看权限 创建临时表空间 CREATE TEMPORARY TABLESPACE test_temp TEMPFILE 'C:\oracle\product\ ...

  3. oracle表空间的创建+权限分配

    /*分为四步 */ /*第1步:创建临时表空间 */ create temporary tablespace user_temp tempfile 'D:\oracle\oradata\Oracle9 ...

  4. oracle 表空间/用户 增加删除

    create temporary tablespace user_temp tempfile 'C:\dmp\user_temp.dbf' size 50m autoextend on next 50 ...

  5. Oracle 表空间和用户权限管理

    一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻 ...

  6. Oracle 表空间和用户权限管理【转】

    一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻 ...

  7. Oracle开发:创建一个用户并分配表空间和分配权限

    -- 创建一个用户并分配表空间和分配权限 -- 以sysdba登录 oracle@sha-col-oracle-2:~> sqlplus / as sysdba SQL*Plus: Releas ...

  8. Oracle表空间,用户,用户授权

    一:Oracle表空间 1,Oracle表空间与SQL Server文件组对比 SQL Server的文件组(文件组包括若干MDF,NDF数据文件)对我们来说并不陌生,前段时间我在博客“怎样玩转千万级 ...

  9. Oracle 表空间、用户

    一.表空间 临时表空间 创建临时表空间范例 CREATE TEMPORARY TABLESPACE duke_temp /* 临时表空间名称:duke_temp */ tempfile 'C:\ora ...

随机推荐

  1. Django实现简单的图书管理系统

    目录 Django写图书管理系统 功能截图 创建Django项目 开始项目 配置文件 建立路由关系 开始写Django项目 编写核心逻辑函数 写前端页面 add_author.html add_boo ...

  2. Window和Mac下端口占用情况及处理方式

    1. 在Mac下端口占用的情况: 找到占用的进程并杀掉: 1.查看端口占用进程 sudo lsof -i :8880 可以看到进程的PID 2.杀掉进程 sudo kill -9 4580(4580为 ...

  3. springboot自己实现mysql主从数据切换机制

    在很多公司都是实现了数据的读写分离,所谓的读写分离,就是写的时候从主库 ,然后从库就会从主库中复制过去,这样就会形成了数据的读写分离,然而在很多场景是适用的,那么我们怎么做呢,可以利用aop 加注解的 ...

  4. appscan如何扫描移动应用APP

    1.前置条件:让手机和电脑处于同一WIFI下 1打开appscan,选择手动探索/外部设备. 2在弹出的对话框页面点击右上角“记录代理配置”. 3在弹出的页面选择记录代理页签,设置Appscan代理端 ...

  5. jquery移除元素某个属性

    removeAttr() 方法从被选元素中移除属性. 例如:$("p").removeAttr("style");

  6. 订单风险系统BI

    最近被公司叫去协助传统做维表查询服务,项目已经做完.和前端联调过程发现oracle对查询 sql和产品设计还是挺重要的.不能全部堆给代码去做,如何方便代码,代码优化到最高性能才是首要解决的事,前端才能 ...

  7. JavaWEB过滤器和监听器技术

    过滤器介绍 什么是过滤器 生活中的例子: 滤水器,口罩,杯子上滤网,渔网 生活中的过滤器:留下我们想要的,排除,我们不想要的. 高考: 只有分数够高的同学才能进入理想的大学.有一部分同学被拦截在大学之 ...

  8. [转]使用RDLC报表

    使用RDLC报表(一) 1       建立数据源 启动VS2005新建一个窗体项目,命名为TestProj 在左边的窗体内选择“添加新数据源”或在菜单上操作“添加新数据源”: 选择后出现对话窗体,选 ...

  9. Django惰性加载和LazyObject

    看登录中间件的时候发现request.user返回的是SimpleOject对象,往下看翻到了LazyObject,看源码看了半天没看懂 网上搜了一堆资料了解下惰性加载实现是的什么功能,再回去看源码, ...

  10. leyou_06_Nginx的自启

    1.在linux系统的/etc/init.d/目录下创建nginx文件 vim /etc/init.d/nginx 添加以下内容 #!/bin/sh # # nginx - this script s ...