引言:

数据保存问题?

可使用文件保存和数据库保存。

使用文件保存数据存在几个缺点:

1、文本的安全性问题;

2、文件不利于查询和对数据的管理;

3、文件不利于存放海量数据;

4、文件在程序中控制不方便。

为解决数据保存问题,专家们设计出更加利于管理数据的东东--数据库(本质就是一个软件),它能更有效的管理数据。数据库是衡量一个程序员水平的重要指标。

数据库

1、数据库的本质就是一款软件,这个软件专门用于管理和维护数据;

2、数据存放在数据库中。

数据库服务器、数据库和表的关系

所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每个应用创建一个数据库。

为了保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。

服务器访问量大的时候随时准备重启。

oracle的安装

系统要求 ■ 操作系统最好为windows server ■ 内存最好在256M以上 ■ 硬盘空间需要2G以上

iso文件要镜像陈驱动器才能够使用。

Oracle安装会自动的生成sys用户和system用户:

(1) sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install

(2) system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager

(3) 一般讲,对数据库维护,使用system用户登录就可以拉

也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。

oracle管理工具的介绍(1)

sql*plus是oracle自带的工具软件,主要用于执行sql语句,pl\sql块. 如何使用:

1)在开始->程序->oracle oradb_home10g->application development->sql*plus

2)在运行栏中输入: sqlplusw即可

oracle管理工具的介绍(2)

概述: sqlplus 是 dos下操作oracle的工具,其功能和sql*plus相似.

1)在运行栏中输入 sqlplus

2)找到该可执行文件sqlplus.exe, 在oracle主目录\ora10g\bin\sqlplus.exe ,鼠标双击即可

oracle管理工具的介绍(3)

概述: pl/sql developer 属于第三方软件,主要用于开发,测试,优化 oracle pl/sql 的存储过程比如: 触发器,此软件oracle不带,需要单独安装。

oracle管理工具的介绍(4)

■ Enterprise manager console(企业管理器) oracle 10g是通过web管理的 一般默认端口是5500, 也有1158的。 访问url(请一定保证oracle服务启动了): http://ip:1158 (也可能是5500)/em http://机器名:端口/em

sql*plus常用命令

■ 连接命令

(1)conn[ect]

用法: conn 用户名/密码,则链接进去。

conn 用户名/密码@网络服务名 [as sysdba/sysoper]

当用特权用户身份连接时,必须带上 as sysdba 或是 as sysoper

(2)disc[onnect] 说明:该命令用来断开与当前数据库的连接

(3)passw[ord] 说明:该命令用于修改用户的密码.如果要想修改其它用户的密码,需要用sys/system管理员登陆. (4)show user 说明:显示当前用户名

(5)exit 说明:该命令会断开与数据库的连接,同时会退出sql*plus

文件操作命令 
1.start和@ 
说明: 运行sql脚本 
案例: sql>@ d:\a.sql或是sql>start d:\a.sql 
2.edit 
说明: 该命令可以编辑指定的sql脚本 
案例: sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开 
3.spool 
说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。 
案例: sql>spool d:\b.sql 回车,slecet* from table回车,并输入 sql>spool off

显示和设置环境变量

概述:可以用来控制输出的各种格式,set show如果希望永久的保存相关的设置,可以去修改glogin.sql脚本

1.linesize

说明:设置显示行的宽度,默认是80个字符

show linesize

set linesize 90

2.pagesize说明:设置每页显示的行数目,默认是14

用法和linesize一样

至于其它环境参数的使用也是大同小异

创建用户 
概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用创建新的用户。 
create user 用户名 identified by 密码; (oracle有个毛病,密码必须以字母开头,如果以字母开头,它不会创建用户) 
给用户修改密码 
概述:如果给自己修改密码可以直接使用 
password 用户名 
如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限 
SQL> alter user 用户名 identified by 新密码 
 删除用户 
概述:一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有drop user的权限。 
比如 drop user 用户名 【cascade】 
在删除用户时,注意: 
如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascade;

自己不能够删除自己。

用户管理的综合案例 
概述:创建的新用户是没有任何权限的,甚至连登陆的数据库的权限都没有,需要为其指定相应的权限。给一个用户赋权限使用命令grant,回收权限使用命令revoke。 
为了给讲清楚用户的管理,这里我给大家举一个案例。 
SQL> conn xiaoming/m12; 
ERROR: 
ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied 
警告: 您不再连接到 ORACLE。 
SQL> show user; 
USER 为 "" 
SQL> conn system/p; 
已连接。 
SQL> grant connect to xiaoming; 赋予xiaoming连接的权限
授权成功。 
SQL> conn xiaoming/m12; 
已连接。 
SQL> 
注意:grant connect to xiaoming;在这里,准确的讲,connect不是权限,而是角色。。 看图:

数据库除了表还有存储过程,触发器,视图。

数据对象:函数,过程,包,类型,触发器,工作,库,表,视图,序列,角色,同义词,表空间,簇。

现在说下对象权限,现在要做这么件事情:
* 希望xiaoming用户可以去查询emp表
* 希望xiaoming用户可以去查询scott的emp表 ,管理员和表的拥有者有这个权限,
  grant select on emp to xiaoming
select * from scoot.emp
* 希望xiaoming用户可以去修改scott的emp表
  grant update on emp to xiaoming
* 希望xiaoming用户可以去修改/删除,查询,添加scott的emp表
  grant all on emp to xiaoming
* scott希望收回xiaoming对emp表的查询权限
  revoke select on emp from xiaoming //对权限的维护。
* 希望xiaoming用户可以去查询scott的emp表/还希望xiaoming可以把这个权限(select 权限)继续给别人。
--如果是对象权限,就加入 with grant option
  grant select on emp to xiaoming with grant option
我的操作过程:
SQL> conn scott/tiger;
已连接。
SQL> grant select on scott.emp to xiaoming with grant option; //不是系统用户(sys,system)要用scott.emp
授权成功。
SQL> conn system/p;
已连接。
SQL> create user xiaohong identified by m123;
用户已创建。
SQL> grant connect to xiaohong;
授权成功。
SQL> conn xiaoming/m12;
已连接。
SQL> grant select on scott.emp to xiaohong; //不是系统用户(sys,system)授权时要用scott.emp 授权成功。 --如果是系统权限。
system给xiaoming权限时:
grant connect to xiaoming with admin option //xiaoming可以把admin这个系统权限继续向下传递 问题:scoot把权限给了xiaoming,xiaoming把权限给了xiaohong,如果scott把xiaoming对emp表的查询权限回收,那么xiaohong会怎样?
答案:被回收。
下面是我的操作过程:
SQL> conn scott/tiger;
已连接。
SQL> revoke select on emp from xiaoming;
撤销成功。
SQL> conn xiaohong/m123;
已连接。
SQL> select * from scott.emp;
select * from scott.emp
第 行出现错误:
ORA-: 表或视图不存在 结果显示:小红受到诛连了。

数据库服务器、数据库和表的关系如图所示:

oracle1的更多相关文章

  1. 【学习笔记】Oracle-1.安装及配置

    Win7旗舰版安装Oracle_11gR1_database:  http://my.oschina.net/laiwanshan/blog/89951 Oracle用户登陆 sqlplus sys/ ...

  2. oracle-1

    使用sqlplus 进入oracle (1)服务的启动终止 oracle 服务的关闭: SQL> shutdown immediate; oracle服务的启动: SQL> startup ...

  3. Oracle-1 - :超级适合初学者的入门级笔记,CRUD,事务,约束 ......

    Oracle 更改时间: 2017-10-25  -  21:33:49 2017-10-26  -  11:43:19 2017-10-27  -  19:06:57 2017-10-28  -  ...

  4. ORACLE-1:虚拟列影响alter修改表字段操作!

    一.问题: 昨天想要修改Oracle数据库中某张表的某个字段,发现怎么都修改不成功!!!并给出了如下提示: ORA-54031:要删除或修改的列由某个虚拟列表达式使用 二.啥是“虚拟列” [不可见的列 ...

  5. Oracle报错,ORA-28001: 口令已经失效[转]

    Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录. Oracle公司是为了数据库的安全性默认在11G中引入了这个默认功能,但是这个 ...

  6. Oracle 图形化以及命令行安装

    @(Oracle)[Install] Oracle 安装 相关版本说明 不同版本的Oracle需要安装在特定的系统版本之上. 如Oracle 11gR2的11.2.0.1.0需要安装在CentOS 5 ...

  7. Hibernate学习笔记4

    一.关于联合主键的映射测试实例 实体类: package com.***.comBineKey;public class Person { private Person_pk pk; private ...

  8. kvm

    硬件,os,内核模块,用户空间工具,命令行具体参数,日志 [root@localhost ~]# yum install pciutils [root@localhost ~]# lscpu;lspc ...

  9. Android_SQLite版本升级,降级 管理

    今天我们主要学习了数据库版本升级对软件的管理操作. 我们手机经常会收到xxx软件升级什么的提醒,你的软件版本更新,同时你的数据库对应的版本也要相应的更新. 数据库版本更新需要主要的问题: 软件的1.0 ...

随机推荐

  1. js 模块化

    http://kb.cnblogs.com/page/132461/ http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth. ...

  2. Web Development Terms

    I've come across lots of terms while learning web development. I'm feeling myself overwhelmed. Here ...

  3. 未能找到类型或命名空间名称DbContext

    Visual Studio调试 .NET 项目时报错: 未能找到类型或命名空间名称“DbContext” 解决办法: 首先 右键 引用——System.Data.Entity 其次,在自己项目里搜索E ...

  4. 转:三十、Java图形化界面设计——布局管理器之BorderLayout(边界布局)

    http://blog.csdn.net/liujun13579/article/details/7772215 边界布局管理器把容器的的布局分为五个位置:CENTER.EAST.WEST.NORTH ...

  5. bzoj1023

    研究了一下仙人掌首先,仙人掌虽然不是树,但却有很强的树的既视感如果把每个环都看做一个点,那么他就是一棵树当然这不能直接缩环,因为环和环可以有一个交点如果是树,求直径都会做,令f[i]表示i到子树的最长 ...

  6. java中计时器的用法Timer和TimerTask的用法__java中利用Timer与TImerTask 计时器间隔执行任务

          经常我们都会有这样的需求,要固定的每隔一段时间执行某一个任务.比如:   我们做一个缓存来减少与数据库的交互,而为了使缓存与数据库中的数据尽量达到同步,需要每个固定的一段时间去数据库中的数 ...

  7. Colour your Log4Net events in your RichTextBox zz

    You’re most probably here because you have already read my article How to watch your log through you ...

  8. 前端模块化开发学习之gulp&browserify篇

     随着web应用的发展,前端的比重占得越来越多,编写代码从而也越来越复杂.而通常我们需要将不同功能或者不同模块的代码分开写,最后在html中一起加载,这样做是可以的,但是当你需要进行维护或者是二次开发 ...

  9. datatables配置及数据传输

    var merchant_url = "index.php?op=merchant"; var table_merchant_setting ={ "ajax" ...

  10. AsyncSocket的使用

    AsyncSocket使用流程 安装AsyncSocket 拷贝AsyncSocket类到项目 使用AsyncSocket set delegate @interface NetWork : NSOb ...