视频教程号称7天玩转,不过根据本人的资质以及视频的内容,我估计我怎么也得个把月才能掌握吧,玩转不太可能,不过能满足自己需要应该问题不大吧。
流行的数据库系统
- 小型:access, foxpro
- 中型:MySQL, SQL Server, Informix
- 大型:Oracle, Sybase, DB2
如何选择数据库
- 项目的规模(负载量有多大,即用户有多少)
- 成本
- 安全性
Oracle认证
- 初级:OCA认证
- 专家级:OCP认证
- 大师级:OCM认证
sys用户与system用户
sys:
- 超级用户,具有最高权限
- 具有sysdba角色
- 具有create database的权限
- 默认密码为manager
system:
- 管理员,权限也很大
- 具有sysoper角色
- 不具有create database的权限
- 默认密码为change_on_install
- 通常对数据库进行维护,使用system用户登录就够了
Oracle的数据对象有
- 表
- 视图
- 触发器
- 存储过程
- ....
Oracle 根据登录用户权限的不同,展现的数据对象也不同
Oracle管理工具
- SQL PLUS:Oracle自带的工具软件,用于执行SQL语句、PL SQL语句块
- Oracle企业管理器(Oracle Enterprise Manager, OEM)
- PL/SQL(第三方工具):用于开发、测试、优化Oracle PL/SQL的存储过程,需要单独安装
Oracle SQL PLUS常用命令
connect 用户名/密码@网络服务名 [as sysdba/sysoper]
当用特权用户身份连接时,必须带上as sysdba或as sysoper
disconnect
断开与当前数据库的连接
password
修改用户的密码,如果需要修改其他用户的密码,需要使用sys/system用户登录
show user
显示当前用户名
exit
断开与数据库的连接并退出
start 脚本路径
作用:运行sql脚本
edit 脚本路径
作用:编辑指定的sql脚本
spool 脚本路径
....
spool off
作用:将sql plus屏幕的内容输出到指定文件中
&
作用:可以替代变量,而该变量在执行时,需要用户输入,如
select * from emp where job="&job"
显示与设置环境变量:用来控制输出的各种格式,set show 如果希望永久保存相关的设置,可以修改ORACLE_HOME/sqlplus/admin/glogin.sql脚本
linesize:设置显示行的宽度,默认为80个字符
show linesize;
set linesize 90;
pagesize:设置每页显示的行数目,默认为14
show pagesize;
set pagesize 16;
用户管理
创建用户:只有具有dba权限的用户才能创建用户
create user <新用户名> identified by <密码>
注意:密码必须以字母开头,否则会创建失败
给其他用户修改密码需要具有dba权限或拥有alter user的系统权限
alter user 用户名 identified by <新密码>
删除用户:通常以dba的身份去删除某个用户,如果其他用户去删除用户则需要具有drop user的系统权限
drop user 用户名 [cascade]
注意:如果需要删除的用户已经创建了表,就需要带cascade参数,那么将会删除该用户及该用户创建的表
关于新创建的用户
- 新创建的用户是没有任何权限的,包括登录数据库的权限也没有
- 给一个用户赋权限使用命令grant
- 回收用户的权限使用命令revoke
Oracle的权限可以分为两种
- 系统权限:用户对数据库的相关权限(Oracle的系统权限约有140余种)
- 对象权限:用户对其他用户的数据对象操作的权限(25种)
- SELECT
- INSERT
- UPDATE
- DELETE
- ALL(包含前4种)
- CREATE INDEX
- ...
将scott用户的emp表的select权限赋给用户matclone:
grant select on emp to matclone;
撤销用户matclone对scott用户的emp表的select权限:
revoke select on emp from matclone;
Oracle的角色
由于Oracle中权限的种类太多,为了方便管理员对用户批量赋权限,Oracle预设了一些不同的角色,这些角色中包含了一组已经设定好的权限,通过将角色赋给用户,可以实现对用户批量赋权限。Oracle中的角色分为两类:
1. 预定义角色
- CONNECT角色
- DBA角色
- RESOURCE角色:用户可以在任何空间建表
2. 自定义角色
将CONNECT角色的权限赋给用户matclone:
grant CONNECT to matclone;
撤销用户matclone的CONNECT角色:
revoke CONNECT from matclone;
对权限的维护
权限的传递
1. 如果是对象权限,添加with grant option参数
案例: 将scott用户中的emp表的SELECT权限赋给test1用户时,同时希望test1用户能够具备将该权限传递给其他用户的能力
grant SELECT on emp to test1 with grant option;
2. 如果是系统权限,添加with admin option参数
案例:将CONNECT权限赋给test1用户时,同时希望test1用户能够具备将该权限传递给其他用户的能力
grant CONNECT to test1 with admin option;
撤销权限时
- 如果是系统权限,则不影响后面的用户
- 如果是对象权限,则后面的用户权限会被连带撤销
SQL PLUS的注释
单行注释: -- 被注释掉的内容
多行注释: / 被注释掉的内容 /