1、数据库的使用:
- 项目的规模:负载量(用户)有多大?
- 成本:
- 安全性:
(小型数据库)access、forbase
负载小 ;100人以内,比如留言板,信息管理系统。
成本:千元以内。
安全性要求不高。
(中型数据库)mysQL; SQL server;informix;
负载,日访问量在5000-15000,成本在万元以内;比如:商务网站。
(大型数据库)sybase;oracle;db2
安全性高,成本高。
负载海量数据库。
sybase<oracle<db2
Oracle认证
dba认证; oca初级认证、ocp专家级认证、ocm大师认证。
java认证;
oracle网络开发认证:
安装oracle
oracle安装会自动生成sys用户和sysdba用户
(1)、sys用户是超级用户,具有最高权限,具有sysdba角色,具有create database 的权限,该用户默认的密码是manager;
(2)、system用户是管理员操作员,权限很大,具有sysoper角色,没有create database的权限,默认密码是 change_on_install
(3)、一般情况下,数据库的维护,使用system用户。
(4)、cott-普通用户-登录---权限有限,只能操作一部分数据表
事务基于连接
(commit 手动提交)
四个特性:原子性、一致性、隔离性、持久性
常见doc命令:
conn:连接命令;
disc: 断开连接;
passw: 修改密码(如果修改其他用户的密码,需要用sys/system用户登录)
cmd管理员登录: 请输入用户名: (空格) /(空格)as sysdba
show user:显示当前用户名;
exit:退出连接;
文件操作命令:
start和@:运行sql脚本:(sql>@c:aaaa.sql || sql> start c:aaaa.sql)
edit: 编辑命令:sql>edit c:aaaa.sql;
spool: 将sqlplus屏幕上的内容输出到指定文件中去
创建新用户:create user xiaoming identified by tiger;
修改用户密码:create user xiaoming identified by tiger;
删除用户:drop user xiaoming;
注意:在删除用户时,如果要删除的用户,已经创建了表,那么需要再删除时,带一个参数 cascade.
新创建的用户没有任何权限(包括登录)。
赋用户权限:grant connect to xiaoming;---------赋予xiaoming登陆的权限。
权限:
系统权限:用户对数据库的相关权限;create session
对象权限:用户对其他用户的数据对象操作的权限;
select/insert/delete/update/all/create index...
数据对象:用户的创造的表,触发器,视图等数据。
角色:
自定义角色:
预定义角色:
赋用户权限:
grant connect to xiaoming;---------赋予xiaoming登陆的权限。
grant resource to xiaoming; -------赋予xiaoming创建表的权限
grant select on emp to xiaoming-------将查询的权限赋予xiamoing
select * from scott.emp;------查询来自scott的emp表。
grant all on emp to xiaoming-----将对这张表的所有权限赋予给xiaoming;
revoke:收回权限。
revoke select on emp from xiaoming ---------收回xiaoming对emp表的查询权限;
对权限的维护:
xiaoming用户可以查询scott的emp表,并可以将权限转发。
grant select on emp to xiaoming with grant option.-----------如果是对象权限,则在其后加with grant option;
grant connect to xiaoming with admin option---------如果是系统权限(system给xiaoming赋予权限)
!!!如果scott把xiaoming对emp表的查询权限收回。则被xiaoming转发的权限失效。
使用profile 管理用户口令。
概述:profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的profile。当建立用户没有指定profile选项,那oracle就会将default范培给用户。
(1)账户锁定:
概述:指定账户(用户)登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba的身份去执行该命令。
例如:指定scott这个用户最多只能尝试3次登录,锁定事件为2天
sql>create profile aaa limit failed_login_attempts 3 password_lock_time 2;------创建profile文件
sql>alter user scott profile aaa;--------指定用户。
(2)账户解锁:
sql>alter user scott account unlock;
(3)终止口令:
为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个指令也需要dba身份来操作。
例如:给前面创建的用户xiaoming创建一个profile文件,要求该用户每隔10天要修改自家的登录密码,宽限期2天。
sql>create profile myprofile limit password_lifi_time 10 password_grace_time 2;
sql>alter user xiaoming profile myprifile;
(4)口令历史:
建立profile
sql>create profile password_history limit password_life_time 10 password_grace_time 2 passpword_reuser_time 10;
password_reuse_time //指定口令可重用时间10天,后即可以重复使用。
(5)删除profile
概述:当不需要某个profile文件时,可以删除。
sql>drop password_history
oracle安装后默认的三种用户:
sys:超级用户权限,可以进行任何操作,创建表,视图等基本操作以及数据库的备份和恢复
system:权限也比较高,但是不能进行备份和恢复及数据库的升级。
scott:普通用户。connect/resource
例如smith用户
1、特性
----------------------概念
用户、角色、权限
查看所有角色:select * from dba_roles;
查看SCOTT用户有哪些角色:select * from dba_role_privs where grantee='SCOTT';
查看所有对象权限:select distinct privilege from dba_tab_privs;
查看所有系统权限:select distinct privilege from dba_sys_privs;
查看connect角色的权限:select * from dba_sys_privs where grantee='CONNECT';
查看resource角色的权限:select * from dba_sys_privs where grantee='RESOURCE';
----------------------------------
权限:
a.系统权限:登录、修改密码、建库、建表等
b.对象权限:用户对其他用户的数据对象操作的权限
select,insert,update,all,create index
----由dba授权用户user1可以查询Scott用户的emp表
grant select on scott.emp to user1 with admin option
注意:加后缀 with admin option 允许其可以把该权限授给其他用户
由scott用户把scott(对象权限)的emp表授权给user1查询:
grant select on emp to user1;
授权所有: grant all on emp to user1;
授权user1只能修改sal字段:
grant update on emp(sal) to user1;
回收权限:
revoke select on emp from user1;
角色:connect/resource(包含了一组权限)
-------------------------------------------
表空间:t 2个数据文件.dbf
安全性,授权,性能,表空间(一个项目创建一个表空间)
表空间:逻辑结构,由多个数据文件组成,从物理上讲,表是存在于数据文件里
从逻辑上讲,表是存在于表空间
数据库---表空间---段---区---块 提高管理效率
1:oracle数据库逻辑结构上包括表空间、段、区和块,物理上由数据文件组成,一个表空间包含一个或多个数据文件。
2: 表空间用于从逻辑上组织数据库的数据,通过表空间可以控制数据库占用的磁盘空间,同时dba可以将不同的数据类型部署到不同的位置,这样有利于提高I/O性能,同时利于备份和恢复等操作。
创建表空间一般由特权用户或dba角色来执行,需要有权限
create tablespace ts001 datafile 'd:A s001.dbf' size 20m uniform size 128k;
建立表空间
建立表空间是使用crate tablespace命令完成的,需要注意的是,一般情况下,建立表空间是特权用户或是dba来执行的,如果用其它用户来创建表空间,则用户必须要具有create tablespace的系统权限。
建立数据表空间
在建立数据库后,为便于管理表,最好建立自己的表空间
create tablespace data01 datafile 'd: estdada01.dbf' size 20m uniform size 128k;
说明:执行完上述命令后,会建立名称为data01的表空间,并为该表空间建立名称为data01.dbf的数据文件,区的大小为128k
使用数据表空间
建立表空间是使用crate tablespace命令完成的,需要注意的是,一般情况下,建立表空间是特权用户或是dba来执行的,如果用其它用户来创建表空间,则用户必须要具有create tablespace的系统权限。
建立数据表空间
在建立数据库后,为便于管理表,最好建立自己的表空间
create tablespace data01 datafile 'd: estdada01.dbf' size 20m uniform size 128k;
说明:执行完上述命令后,会建立名称为data01的表空间,并为该表空间建立名称为data01.dbf的数据文件,区的大小为128k
使用数据表空间
create table mypart(deptno number(4), dname varchar2(14), loc varchar2(13)) tablespace data01;
表空间状态:online,offline,read write,read only
read write(读写):实际上为online状态,只用表空间的状态为read only时才能转换到此状态,默认情况下所有的表空间都是读写状态。任何具有表空间配额并且具有适当权限的用户都可以读写表空间中的数据。
read only(只读):如果将表空间设置为只读状态,则任何用户(包括DBA)都无法向该表空间中写入数据,也无法修改表空间中已有的数据。这种限制与用户的权限无关。
offline(脱机):在有多个应用表空间的数据库中,DBA可以通过将某个应用表空间设置为脱机状态,使该表空间暂时不让用户访问。用户仍然可以访问数据库的其它表空间。
修改表空间状态:alter tablespace dcsopen_tbs online/offline/..;
2、pl/sql
概念:procedural language/sql 过程化语言,扩展了sql语言,可以定义常量变量,
使用条件和循环。
有点:安全,性能高、简化java代码,存储过程、函数、触发器
缺点:移植性不好
提高性能:优化java代码中的sql语言;使用存储过程
数据库除了sql优化还有哪些优化方法