一、数据库分类
一、数据库分类
1.小型数据库:access、foxbase
2.中型数据库:Informix、sql server、mysql
3.大型数据库:sybase、db2、oracle
二、项目中如何合理地使用数据库,可以依据下面三个方面入手
1.项目的规模
a.负载量有多大,即用户量有多大
b.成本
c.安全性
eg:
小型数据库:
1.负载量小,用户大概100人之内:比如:留言板、信息
2.成本在千元之内
3.对安全性要求不高
中型数据库:
比如负载量 日访问量5000-10000
成本在万元内
比如商务网站
大型数据库
海量负载,可以处理海量数据(sybase<oracle<db2(海量数据处理能力))
安全性高,相对贵
二、sql*plus工具简介
一、sys用户和system用户
Oracle安装会自动生成sys用户和system用户
1.sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install
2.system用户是管理操作员,权限也很大,具有sysoper角色,没有create database权限,默认密码是manager
3.一般讲,对数据库维护,使用system用户登陆就可以啦
注意:也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
二、sql*plus工具简介
sql*plus是Oracle自带的工具软件,主要用于执行sql语句,pl\sql块。
操作如下:
1.在d:\dev\oracle\product\10.2.0\db_1\bin目录下的sqlplusw.exe。(D:\dev\oracle为Oracle的安装目录)
2.在运行中输入“sqlplusw”即可
三、sqlplus dos工具简介
1.概述:sqlplus是在dos下操作Oracle的工具,其功能和sql*plus相似。
2.操作如下:在运行栏中输入“sqlplus”即可
四、PLSQL Developer工具,需要自己安装,推荐大家使用
五、sql*plus常用命令
1.连接命令:
(1)conn[ect]
用法:conn 用户名/密码@网络服务名 [as sysdba/sysoper]
说明:当用特权用户身份连接时,必须带上as sysdba或是as sysoper
eg:
SQL>show user
USER 为“SCOTT”
SQL>conn system/oracle@orcl
已连接
SQL>show user
USER为“SYSTEM”
SQL>
以上命令实现类似切换用户的效果
2.disc/disconn/disconnect
说明:该命令用来断开与当前数据库的连接
3.pssw[ord]
说明:该命令用户修改用户的密码,如果要想修改其他用户的密码,需要用sys/system登录。
eg:
SQL>conn scott/oracle
已连接。
SQL>passw
更改SCOTT的命令
旧口令:
新口令:
重新键入新口令:
口令已更改
SQL>
4.show user
说明:显示当前用户名
5.exit
说明:该命令会断开与数据库的连接,同时会退出sql*plus
6.clear screen
清空屏幕
2.文件操作命令
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并输入sql>spool off
eg:
sql>spool d:\b.sql;
sql>select * from emp;
sql>spool off;
3、交互式命令
说明:可以替代变量,而改变量在执行时,需要用户输入。
select * from emp where job=’&job’;
4、显示和设置环境变量
概述:可以用来控制输出的各种格式,set show 如果希望永久的保存相关的设置,可以去修改glogin.sql脚本
1.linesize
说明:设置显示行的宽度,默认是80个字符
show linesize
set linesize 90
2.pagesize说明:设置每页显示的行数目,默认是14
用法和linesize一样
至于其他环境参数的使用也是大同小异
三、Oracle用户管理一
一、创建用户
概述:在Oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用。
create user 用户名 identified by 密码;
注意:Oracle有个毛病,密码必须以字母开头,如果以数字开头,它不会创建用户
eg:
create user xiaoming identified by oracle;
二、给用户修改密码
概述:如果给自己修改密码可以直接使用
SQL>password 用户名或passw
如果给别人修改密码需要具有dba的权限,或是拥有alter user的系统权限
SQL>alter user 用户名 idendified by 新密码;
三、删除用户
概述:一般以dba的身份去删除某个用户,如果用其他用户去删除用户则需要具有drop user权限。
比如:drop user 用户名 [cascade]
注意:在删除用户时,如果要删除的用户,已经创建了表,那么需要在删除的时候带一个参数cascade,即把改用户及表一同删除;
四、权限
权限分为系统权限和对象权限。
何为系统权限?
用户对数据库的相关权限,connect、resource、dba的系统权限,如建库、建表、建索引、建存储过程、登录数据库、修改密码等。
何为对象权限?
用户对其他用户的数据对象操作的权限,insert、delete、update、select、all等对象权限,数据对象有很多,比如表、索引、视图、触发器、存储过程、包等。
执行select * from dba_object_size;语句可得到oracle数据库对象。
五、角色
角色分为预定义角色和自定义角色。
六、用户管理的综合案例
概述:创建的新用户时没有任何权限的,甚至连登陆的数据库的权限也没有,需要为其指定相应的权限。给一个用户赋予权限使用命令grant,回收权限使用命令revoke。
为了讲清楚用户的管理,这里给大家举一个例子:
SQL>conn xiaoming/oracle
ERROR:
ORA-01045:user XIAOMING lacks CREATE SESSION privilege;login denied
警告:您不再连接到ORACLE。
sql>show user;
USER 为“”
sql>conn system/oracle
已连接。
sql>grant connect to xiaoming;
授权成功。
sql>conn xiaoming/oracle
已连接。
sql>
注意:grant connect to xiaoming;在这里,准确地讲,connect不是权限,而是角色。
现在说下对象权限,现在要做这么件事情:
希望xiaoming用户可以去查阅emp表
希望xiaoming用户可以去查阅scott的emp表
grant select on scott.emp to xiaoming
希望xiaoming用户可以去修改/删除,查询,添加scott的emp表
grant all on scott.emp to xiaoming
scott希望回收xiaoming对emp表的查询权限
revoke select on scott.emp from xiaoming
七、权限的传递
//对权限的维护
希望xiaoming用户可以去查阅scott的emp表/还希望xiaoming可以把这个权限传递给别人。
–如果是对象权限,就加入with grant option
grant select on emp to xiaoming with grant option;
我的操作过程:
sql>conn scott/oracle;
已连接。
sql>grant select on scott.emp to xiaoming with grant option;
授权成功。
sql>conn system/oracle;
已连接。
sql>create user xiaohong identified by oracle;
用户已创建。
sql>grant connect to xiaohong;
授权成功。
sql>conn xiaohong/oracle;
已连接。
sql>grant select on scott.emp to xiaohong;
授权成功。
–如果是系统权限
system给xiaoming权限时:grant connect to xiaoming with admin option
问题:如果scott把xiaoming对emp表的查询权限收回,那么小红会怎样?
下面是我的操作过程:
SQL>conn scott/oracle;
已连接。
SQL>revoke select on emp from xiaoming;
撤销成功。
SQL>conn xiaohong/oracle;
已连接。
SQL>select * from scott.emp;
select * from scott.emp
*
第一行出现错误:
ORA-00942:表或视图不存在
八、with admin option与with grant option的区别:
1、
参考博客:https://www.cnblogs.com/kscnchina/p/4570865.html
评论前必须登录!
注册