Oracle的学习一:安装与卸载、sql *plus常用命令、Oracle用户管理

时间:2022-04-16 07:32:23

1.为什么学习oracle?

  • 性能优越:

小型数据库

中型数据库

大型数据库

acess、foxbase

mysql、sql server、informix

sybase、oracle、db2

复杂量小(100人内)、成本千元内、对安全性要求不高

日访问量5000--15000、成本在万元内,比如商务网站

负载可以处理、海量数据库 、安全性很高sybase<oracle<db2

  • 数据库的选择标准:

项目的规模:a.负载量有多大;b.成本; c.安全性

  • 需求量大:

2.Oracle认证:

DBA认证(OCA认证-->OCP认证--->OCM认证)、Java开发认证、Oracle网络开发认证。

3.Oracle的安装:

  • Oracle安装会自动生成sys用户和system用户:

a. sys用户是超级用户 具有最高权限,具有sysDBA角色,有create database的权限,默认密码是change_on_install。

b. system用户是 管理操作员,权限也很大,具有sysOPER角色,没有create database的权限,默认密码是manager。

c. 一般来讲,对数据库维护,使用system用户登录就可以了。

4、SQL Server 与Oracle 启动的区别:

Sql server----Sql Server启动后,用户sa登录后会看见很多数据库。

Oracle-----Oracle启动后(启动监听一个数据库实例),用户sys、system、scott会看见一个数据库的实例(表、视图、存储函数等数据对象)。Oracle启动服务,最少启动Oracle的一个实例和监听TNListener。

5、Oracle的卸载

  • 运行regedit,进入注册表;
  • 进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE, 删除ORACLE;
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services下以Oracle开头的键值;
  • 重启计算机,然后删除硬盘上的Oracle目录,如果该目录不让删除,那么把这个目录改成一个别的名字,然后重启机器,再删除它。

6、Oracle管理工具的介绍:

  • 1.Oracle自带的工具软件,主要用于执行SQL语句和PL/SQL块;

使用方法:开始菜单中的sql*plus;或运行栏中sqlplusw;或开始菜单中sql*plus worksheet;

  • 2.sqlplus dos下操作oracle的工具,其功能和sql*plus相似;

使用方法:运行栏中输入sqlplus;或运行可执行文件sqlplus.exe;

  • 3.oracle的企业管理器(oracle enterprise manager);

使用方法: 开始菜单中oem,独立登陆;

  • 4.pl/sql developer 属于第三方软件,主要用于开发、测试、优化oracle pl/sql的存储过程;

7.sql*plus常用命令

  • 帮助命令
  • help 命令 或 ? 命令 ;

eg:显示所有命令 help index;

  • Desc[ribe]命令
  • 命令格式:Describe 数据对象;

返回数据库中所存储的对象的描述。

tips:在SQL语句的输入过程中,可以在下一行输入#:作用是可以临时先运行一个SQL命令,执行完后,继续输入刚才的SQL语句。

  • 连接命令
  • conn[ect]

用法:conn 用户名/密码@网络服务名 [as sysdba/sysoper],当用特权用户身份连接时,必须带上as sysdba 或者 as sysoper。

  • disc[onnect]

说明:该命令用于断开与当前数据库的连接

  • passw[ord]

说明: 该命令用于修改用户的密码,如果想要修改其他用户的密码,需要用sys/system登陆

  • show user

说明:显示当前用户名

  • exit/quit

说明:该命令会断开与数据库的连接,同时会推出

  • 文件操作命令
  • sav[e] 文件保存路径:

将缓冲区的SQL语句保存到文件;

  • get 文件读取路径

将文件中的SQL语句读取到缓冲区,并用/来运行;

  • start和@ 文件 [参数1,...]

说明:运行sql脚本--start只能在sqlplus中运行,@可在sqlplus和操作系统命令提示符中运行

案例:无参:sql>@ d:\a.sql 或者 sql>START d:\a.sql

有参:a.sql中的语句 -- select * from emp where deptno=&1 and sal>&2;

运行: @/start d:\a.sql 20 1500;

  • edit

说明:编辑指定的sql脚本

案例:sql>edit d:\a.sql

  • spool

说明:该命令可以将sql*plus屏幕上的内容输出到指定文件中去。

案例:sql>spool d:\b.sql 并输入 sql>spool off

  • 交互式命令
  • 使用替换变量 -- &

说明:可以替代变量,而该变量在执行时,需要用户的输入。

案例: sql>select * from emp where job='&job';

  • 定义替换变量:

说明:def[ine] 变量名=变量值

  • 查看替换变量:

说明:define --查看所有变量; define 变量名 -- 查看该变量的值

  • 清除替换变量

undef[ine] 变量名,... --清除一个或多个替换变量值

  • 显示和设置环境变量

概述:可以用来控制输出的的各种格式,set、show如果希望永久的保存相关的设置,可以去修改glogin.sql脚本。

  • linesize:

说明:设置显示行的宽度,默认是80个字符。

案例:sql>show linesize; sql>set linesize 90;

  • pagesize

说明:设置每页显示的行数目,默认为14,用法和linesize一样。

8.Oracle用户管理

  • 创建用户

概述:在oracle中要创建一个新的用户,使用create user语句,一般是具有dba的角色才能使用。

eg:create user 用户名 identified by 密码;

  • 给用户修改密码
  • 如果给自己修改密码,

eg:可以直接使用: sql>password 用户名;

  • 如果给别人修改密码,则需要具有DBA的权限,或者拥有alter user的系统权限:

eg:sql>alter user 用户名 identified by 新密码;

  • 删除用户

概述:一般以DBA的身份去删除某个用户,如果用其它用户去删除用户,则需要具有drop user的权限。

eg:drop user 用户名 [cascade]----当删除的用户时,如果有该用户创建的表,那么将删除用户和用户创建的表,即级联删除

  • 权限的授予与回收
  • Oracle中权限、角色、用户名等基础知识与关联
    Oracle的学习一:安装与卸载、sql *plus常用命令、Oracle用户管理
  • 详细解释:

1. Oracle数据库中每一个表都在一个用户空间(即方案)中,各方案中的表名可以相同;另外:每个表都存储在一个表空间(相当于磁盘分区)中。

2. 新创建的用户没有任何权限(不能连接数据库,更不能查询等操作);只有赋予权限/角色才能数据库操作;

3. 只有DBA、OPER或有授予系统权限的用户才能授权系统权限:

授予连接数据库权限:grant connect to 新用户;

授予自己空间中表操作的权限: grant resource to 新用户;

DBA还可以授予DBA权限: grant dba to 新用户;

4. 用户操作其它用户的表时,其它用户应授权对象权限(select/insert/update/all...)给用户。

scott授予emp表的select权限给xiaoming: grant select on emp to xiaoming;

5. 用户查询其它用户的表时:

select * from scott.emp;

  • 收回权限:

revoke select on emp from xiaoming;

  • 数据库维护:

1. scott用户赋予其他用户查询scott的emp表的权限,并且可以把这个权限继续赋给别人。

---如果是对象权限,就加入 with grant option

eg: grant select on emp to xiaoming with grant option;

---如果是系统权限,system给xiaoming权限时,加入 with admin option:

eg: grant connect to xiaoming with admin option;

2. 回收权限时,若scott把xiaoming对emp表的查询权限回收,那么xiaoming的权限也被回收

  • 使用profile管理用户口号

概述:profile是口号限制/资源限制的命令集合,当建立数据库时,oracle会自动建立名称为default的profile。当建立用户没有指定profile选项,那oracle就会将default分配给用户。

  • 账户锁定:

概述:指定该账户(用户)登陆时最多可以输入密码的次数,也可以指定用户锁定的时间(天),一般用DBA的身份去执行该命令。

eg:指定xiaoming这个用户最多尝试3次登陆,锁定时间为2天:

sql>create profile lock_account limit failed_login_attempts 3password_lock_time 2;

sql>alter user xiaoming profile lock_account;

  • 给账户(用户)解锁:

sql>alter user xiaoming account unlock;

  • 终止口令:

概述:为了让用户定期修改密码可以使用终止口令的指令来完成,同样这个命令也需要dba身份来操作; 解锁也是一样的

eg:给用户xiaoming创建一个profile文件,要求该用户每隔10天要修改自己的登录密码,宽限期为两天。

sql>create profile myprofile limit password_lige_time 10password_grace_time 2;

sql>alter user xiaoming profile myprofile;

  • 口令历史

概述:如果希望用户在修改密码时,不能使用以前使用过的密码,已使用口令历史,这样oracle就会将口令历史的性能系存放到数据字典中,这样当用户修改密码时,oracle就会对新旧密码进行比较,当发现新旧密码一样时,就提示用户重新输入密码。eg:

  • 建立profile

sql>create profile password_history limit password_life_time 10password_grace_time 2 password_reuse_time 10;

  • 分配给某个用户(和前面一样):
  • 删除profile

概述:当不需要某个profile文件时,可以删除给文件。

sql>drop profile password_history [cascade(级联删除)];