一、做项目该用什么数据库要考虑哪些方面?
1.项目的规模
2.负载量多大,用户多大
3.成本
4.安全性
小型数据库(access、foxbase)
1.负载量小,用户量在1000人以内,比如留言板,小型信息系统
2.成本在千元左右
3.对安全性要求不高
中型数据库(mysql、sql server、informix)
1.负载,日访问量在5000~15000
2.成本,万元以内 比如电子商务网站
大型数据库(sybase、oracle、db2)
1.负载可以处理海量数据
2.成本上万元,较为昂贵
3.安全性高,通过最高级别安全认证
二、安装oracle
1.oracle安装会自动生成sys用户和system用户
(1)sys用户是超级用户,拥有最高的权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install
(2)system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager
(3)一般讲,数据库维护使用system用户登录就可以了
三、sql*plus常用命令
1.conn[ect]
用法:conn 用户名/密码@网络服务名 [as sysdba/sysoper]
当特权用户身份连接时,必须带上as sysdba或是as sysoper
SQL>conn system/manager
2.disc[onnect]
说明:该命令用于断开与当前数据库的连接
3.passw[ord]
说明:该命令用于修改用户的密码。如果要想修改其他用户的密码,需要用sys/system登录。
4.show user
说明:显示当前用户名
5.exit
说明:该命令会断开与数据库的连接,同事会退出
6.文件操作命令
(1)start和@
说明:运行sql脚本
案例:
SQL>@ d:\aa.sql 或者
SQL>start d:\aa.sql
(2)edit
说明:该命令可以编辑指定的sql脚本
案例:
SQL>edit d:\aa.sql
(3)spool
说明:该命令可以将sql*plus屏幕上的内容输出到指定的文件中去
案例:
SQL>spool d:\bb.sql 并输入
SQL>spool off
7.显示和设置环境变量
概述:可以用来控制输出的各种格式,set show 如果希望永久的保存相关的设置,可以去修改glogin.sql脚本
(1)linesize
说明:设置显示行的宽度,默认是80个字符
SQL>show linesize
SQL>set linesize 120
(2)pagesize
说明:设置每页显示的行数目,默认是14,用法和linesize一样
至于其他环境参数的使用也是大同小异
四、oracle用户的管理
1.创建用户
概述:在oracle中药创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用。
SQL>create user xiaoming identified by m123;
2.给用户修改密码
概述:如果给自己修改密码可以直接使用
SQL>password 用户名
概述:如果给别人修改密码则需要具有dba的权限,或是拥有alter user的系统权限
SQL>alter user 用户名 identified by 新密码
3.删除用户
概述:一般以dba的身份去删除某个用户,如果用其它用户去删除用户则需要具有drop user的权限。
比如drop user 用户名 【cascade】
在删除用户时注意,如果要删除的用户,已经创建了表,那久就需要再删除时带一个参数 cascade。
4.给一个普通用户赋权限
权限分为系统权限和对象权限
系统权限是指用户对数据库的相关权限。例如建库,建表,建索引,建存储过程,登录数据库,修改密码等。
grant connect to xiaoming;
connect就是一种预定义角色,给xiaoming这个用户赋予connect角色所具有的权限。这里使用到的是系统权限。
对象权限是指用户对其他用户的数据对象访问(操作)的权限。其中,数据对象指用户创建的表,视图,存储过程,触发器等。
角色分两种,一种为预定义角色,一种为自定义角色
希望xiaoming用户去查询scott用户中的emp表:需要用到对象权限的使用。
SQL>grant select on emp to xiaoming sys和system和scott具有这种赋权的权限。
希望xiaoming用户可以去修改、删除、查询、添加scott中的emp表
SQL>grant all on emp to xiaoming
scott希望收回xiaoming对emp表的查询权限
SQL>revoke select on emp from xiaoming
对权限的维护
希望xiaoming用户可以去查询scott的emp表,还希望xiaoming可以把这个权限继续给别人
--如果是对象权限,就加入with grant option
SQL>grant select on emp to xiaoming with grant option
--如果是系统权限 system给xiaoming赋权时做如下执行,则xiaoming可以赋予其他人connect的权限
SQL>grant connect to xiaoming with admin option
--如果scottxiaoming对emp表的查询权限回收,那么xiaohong会怎么样?
事实证明,xiaoming赋予xiaohong的权限也被回收了。
5.使用profile管理用户口令
概述:profile是口令限制,资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的profile,当建立用户没有指定profile选项,那oracle就会将default分配给用户。
(1)帐户锁定
概述:指定该帐户(用户)登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天)一般用dba的身份去执行该命令
例如:指定xiaoming这个用户最多只能尝试3次登陆,锁定时间为2天
创建 profile 文件
SQL>
create profile lock_account
limit failed_login_attempts 3
password_lock_time 2;
SQL>
alter user xiaoming
profile lock_account;
(2)给帐户(用户)解锁
SQL>
alter user xiaoming
account unlock;
(3)终止口令
为了让用户定期修改密码,可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作。
SQL>
create profile myprofile
limit password_life_time 10
password_grace_time 2;
SQL>alter user xiaoming profile myprofile;
(4)口令历史
概述:如果希望用户在修改密码时,不能使用以前使用过的密码,可使用口令历史,这样oracle就会将口令修改的心细存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码,
例子:
1)建立profile
SQL>
create profile password_history
limit password_life_time 10
password_grace_time 2
password_reuse_time 10;
password_reuse_time //指定口令可重用时间即10天后就可以重用。
2)分配给某个用户
(5)删除profile
概述:当不需要某个profile文件时,可以删除该文件。
SQL>
drop profile password_history [cascade]