Oracle学习札记1-基本常识

Oracle学习笔记1--基本常识
目前主流数据库:
微软:sql server和access
瑞典MySql:AB公司mysql
IBM公司:DB2、
美国Sybase公司:Sybase
IBM公司:informix
美国oracle公司:oracle
对于oracle的工作岗位需求那是相当的大啊。
Oracle有三个认证:oca、ocp、ocm
Oracle安装过程中注意sys用户和system用户的默认密码,当然,这也是可以更改的。
要想使用oracle,记得开服务:o打头的……Listener和……Service……两个服务。
Oracle管理工具主要有:
Sqlplus、sqlplusw、plsqldeveloper……
oracle 9i会在安装过程中默认提供给你sys和system的密码
oracle 10g是让用户自己来填写的。还有就是我们很常用的Scott用户是被锁的,刚开始我们登录不上去,这时我们应该先用dba用户登录,然后执行这个命令来解锁:alter user scott account unlock;
基本操作命令:
1、连接命令:conn[ect]
用法:conn 用户名/密码@网络服务名 [as sysdba/sysoper],当用特权用户登录时,必须带上as sysdba/sysoper。网络服务名就是指的是数据库实例。如果机器上就装了一个,那默认是可以找到的,所以不用写。如果使用如下命令:conn system/密码 as sysdba;show user之后会发现用户名是sys,说明系统将以sysdba身份登录的system用户默认转成了权限更高的sys。
2、disc[onnect]该命令用来断开与当前数据库的连接。
3、passw[ord]该命令用来修改用户的密码,如果要想修改其他用户的密码,需要用sys或是system用户登录。
4、show user显示当前用户名
5、exit断开与数据库的连接,同时会退出。
文件操作命令:
1、 start和@运行sql脚本。
Eg:sql>start d:\a.sql或sql>@ d:\a.sql
2、 edit该命令可以编辑指定的sql脚本
eg:edit d:\a.sql
3、 spool可以将sql*plus屏幕上的内容输出到指定文件中去。
Eg:spool d:\b.sql用spool off;命令结束
显示和设置环境变量:
可以用来控制输出的各种格式,如果希望永久的保存相关的设置,可以去修改glogin.sql脚本。
1、 linesize设置显示行的宽度,默认是80个字符。
Show linesize;
Set linesize 120;
2、 pagesize设置每页显示的行数目,默认是14
用法和linesize一样,至于其他环境变量的设置,用法也是大同小异。
创建用户:
使用dba权限才可以创建。
Create user 用户名 identified by 密码
密码不能直接以数字打头
给用户修改密码:
如果 给自己修改密码,可以直接使用password,如果是给别人修改密码,则应具有dba的权限或是拥有alter user的系统权限。Alter user 用户名 identified by 新密码
删除用户:
删除用户一般也应具有dba的权限才可以操作,当然,如果有drop user的权限也是可以的。
Drop user 用户名 [cascade] cascade是级联的删除用户的所有数据对象。
权限控制:
使用grant和revoke赋予和收回权限。
Eg:grant connect to xiaoming;使xiaoming这个用户具有connect的角色,就可以完成登录等基本操作。注意,新建的用户是没有任何权限的,就连连接到数据库的权限(发起会话[create session]的权限)都没有,所以会登录失败,connect是一个角色,具有CREATE SESSION的系统权限,可以完成登录数据库的操作。该用户具有了该角色后仍然不能建表,可以为其分配resource角色:grant resource to xiaoming.
当然,可以用grant赋予对象权限
Eg:conn scott/tiger;--用Scott用户登录
Grant select on emp to tom;--Scott用户把emp表的select 权限赋予了tom,接下来tom就可以对emp表执行select操作了。Update、delete、insert的用法都一样。如果想同时把这几个权限都赋予tom,则可以使用grant all on emp to tom;
revoke select on emp from tom;可以回收权限。
Dba用户可以把某个用户的数据库对象的操作权限赋予另一个用户。
Eg:grant select on scott.emp to tom;dba用户可以用该语句把Scott方案下的emp表的select操作权限赋予tom,注意:该权限虽然是dba用户赋予tom的,但是作为emp表的所有者,Scott用户是可以回收该权限的。
SQL> create user xiaoming identified by m123;

User created

SQL> create user xiaohong identified by m123;

User created

SQL> grant connect to xiaoming with admin option;

Grant succeeded

SQL> conn xiaoming/m123;
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
Connected as xiaoming

SQL> grant connect to xiaohong;

Grant succeeded

SQL> conn xiaohong/m123;
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
Connected as xiaohong

SQL> conn system/rain;
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
Connected as system

SQL> revoke connect from xiaoming
  2  ;

Revoke succeeded

SQL> conn xiaoming/m123;
最后连接xiaoming用户的操作会失败,因为权限不够,但是:
SQL> conn xiaohong/m123;
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
Connected as xiaohong

SQL> show user;
User is "xiaohong"
Xiaohong仍然可以登录,说明用revoke回收角色时不是级联的。
使用profile管理用户口令:
Profile是口令限制、资源限制的命令集合。当建立数据库时,Oracle会自动建立名称为default的profile。当建立用户没有指定profile选项,那Oracle就会将default分配给用户
1、 账户锁定
指定该账户登录时最多可以输入密码的次数,也可以指定用户锁定的时间(天),一般用dba用户执行该命令。
指定某个用户最多只能尝试3次登录,锁定时间为2天:
SQL> create profile aaa limit failed_login_attempts 3 password_lock_time 2;

配置文件已创建

SQL> alter user xiaoming profile aaa;
用户已更改。