ORACLE循序渐进讲解(第一讲)

由于工作原因很长一段时间没有使用oracle,最近花了点时间学习下,把自己所学的记录下来以便日后巩固(以10g为例)。

一、ORACLE 安装和卸载

(1)ORACLE安装可以去百度上搜下只要按着步骤基本上都能安装成功。卸载稍微麻烦点需要删注册表方法网上也有很多。

(2)ORACLE安装成功后会自动创建两个用户sys和system。

1、sys用户是超级用户,具有最高权限,具有dba的角色和sysdba、sysoper数据库管理权限,所有 oracle 的数据字典的基表和视图都存放在sys
用户中,这些基表和视图对于 oracle 的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改,sys有创建create  database的权限。

2、system用户是管理操作员,权限一样很大具有dba角色,没有创建create database的权限。(对于用户和权限的详细区别后面内容有提到)

二、登录ORACLE的方式

(1)通过ORALCE自带的sql plus方式登录(用户名、密码、主机字符串(数据库实例))。

(2)通过window的cmd登录(sqlplus 用户名/密码)。

(3)通过isqlplus登录http://localhost:5560/isqlplus/

(4)通过oracle的企业管理器(oem oracle enterprise manager)。

(5)通过第三方工具PL/SQL DEVELOPER。

三、ORACLE用户管理

1、创建用户

SQL> conn system/orcl
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as system

SQL> create user test identified by test;
User created

SQL> 

2、给用户修改密码

SQL> alter user system identified by scott1;
User altered

3、删除用户

SQL> drop user test;
User dropped

注意如果想删除用户对应的数据对象时(如表)需要用加cascade 如drop user test cascade

4、创建用户并登录数据库(授权test登录角色connect)。

SQL> create user test identified by test;
User created

SQL> grant connect to test;
Grant succeeded

SQL> conn test/test;
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as test

SQL> show user
User is "test"

5、授权用户对象权限(用system用户为test授权可select或update或delete或all操作scott用户的emp表)

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

SQL> grant select on scott.emp to test;
Grant succeeded

SQL> conn test/test;
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as test

SQL> select * from scott.emp;
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK      7902 1980-12-17    1800.00               20
 7499 ALLEN      SALESMAN   7698 1981-02-20    1600.00    300.00     30
 7521 WARD       SALESMAN   7698 1981-02-22    1250.00    500.00     30
 7566 JONES      MANAGER    7839 1981-04-02    2975.00               20
 7654 MARTIN     SALESMAN   7698 1981-09-28    1250.00   1400.00     30
 7698 BLAKE      MANAGER    7839 1981-05-01    2850.00               30
 7782 CLARK      MANAGER    7839 1981-06-09    2450.00               10
 7788 SCOTT      ANALYST    7566 1987-04-19    3000.00               20
 7839 KING       PRESIDENT       1981-11-17    5000.00               10
 7844 TURNER     SALESMAN   7698 1981-09-08    1500.00      0.00     30
 7876 ADAMS      CLERK      7788 1987-05-23    1100.00               20
 7900 JAMES      CLERK      7698 1981-12-03     950.00               30
 7902 FORD       ANALYST    7566 1981-12-03    3000.00               20
 7934 MILLER     CLERK      7782 1982-01-23    1300.00     34.56     10
14 rows selected

注:(1)grant select可换insert、update、delete、all。

(2)同样可以授权数据对象(表或视图)的某列值给指定的用户,如果是select授权某列值给指定的用记时使用创建视图然后把视图授权给指定的用户

注:网上有好多使用grant select on emp(ename,sal) to test;授权,这在9i下可以成功,但在9i以后不允许授予select某列的权限,但可以授insert ,update某列的权限

SQL> conn scott/scott
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as scott

SQL> create view v_test as
  2  select ename,sal from emp;
create view v_test as
select ename,sal from emp
ORA-01031: 权限不足

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

SQL> grant create view to scott;
Grant succeeded

SQL> conn scott/scott
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as scott

SQL> create view v_test as
  2  select ename,sal from emp;
View created

SQL> grant v_test to test;
grant v_test to test
ORA-01919: 角色 'V_TEST' 不存在

SQL> grant select on v_test to test;
Grant succeeded

SQL> select * from v_test;
ENAME            SAL
---------- ---------
SMITH        1800.00
ALLEN        1600.00
WARD         1250.00
JONES        2975.00
MARTIN       1250.00
BLAKE        2850.00
CLARK        2450.00
SCOTT        3000.00
KING         5000.00
TURNER       1500.00
ADAMS        1100.00
JAMES         950.00
FORD         3000.00
MILLER       1300.00
14 rows selected

授权test用户只能修改sal字段。

SQL> grant update(sal) on emp to test;
Grant succeeded

授权test用户只能插入empno和empname字段。

SQL> grant insert(empno,ename) on emp to test;
Grant succeeded

6、收回用户对应权限。(用scott用户登录收回上面的v_test查询的权限和修改sal字段权限和插入empno,ename的权限)

SQL> CONN SCOTT/SCOTT
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as scott

SQL> REVOKE SELECT ON V_TEST FROM TEST;
Revoke succeeded

SQL> REVOKE UPDATE(SAL) ON EMP FROM TEST;
REVOKE UPDATE(SAL) ON EMP FROM TEST
<span style="color:#ff0000;">ORA-01750: UPDATE/REFERENCES 只能从整个表而不能按列 REVOKE</span>
SQL> REVOKE UPDATE ON EMP FROM TEST;
Revoke succeeded
SQL> REVOKE INSERT ON EMP FROM TEST;
Revoke succeeded

注:注意上面的错误提示不能对表的某列revoke只能对整个表revoke。

7、权限的传递。(用SCOTT用户登录授权test用户select查询v_test的权限并允许test用户拥有把此权限传递授予test1用户)

SQL> CONN SCOTT/SCOTT
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as scott

SQL> GRANT SELECT ON V_TEST TO TEST WITH GRANT OPTIONS;
GRANT SELECT ON V_TEST TO TEST WITH GRANT OPTIONS
<span style="color:#ff0000;">ORA-00994: 缺失 OPTION 关键字</span>

SQL> GRANT SELECT ON V_TEST TO TEST WITH GRANT OPTION;
Grant succeeded

SQL> CONN TEST/TEST
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as test

SQL> GRANT SELECT ON V_TEST TO TEST1;
GRANT SELECT ON V_TEST TO TEST1
<span style="color:#ff0000;">ORA-00942: 表或视图不存在</span>

SQL> GRANT SELECT ON SCOTT.V_TEST TO TEST1;
Grant succeeded

注:(1)权限的传递只需要在授权时加上with grant option就能让被授权的用户将些权限授予其他用户。

(2)如果授权的是系统权限(上面操作的都是对象权限)传递给其他人时只需要加上with admin option。

(3)此时如果scott用户把test的查询v_test权限收回将一同把test1的查询v_test权限收回。

8、使用profile管理用户口令。

profile 是口令限制,资料限制的命令集合,当建立数据库时,ORACLE会自动建立名称为default的profile,当建立用记没有指定profile选项,寻oracle会将default分配给用户。

(设定test用户最多只能尝试2次登录,锁定时间为3天)

SQL> conn system/orcl
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as system

SQL> create profile lock_account limit failed_login_attempts 2 password_lock_time 3;
Profile created

SQL> alter user test profile lock_account;
User altered
<span style="color:#ff0000;">通过下面对用户强制解锁</span>
SQL> alter user test account unlock;
User altered

(设定用户定期修改密码,每隔10天修改自己的密码宽限期为3天)

SQL> create profile remind_account limit password_life_time 10 password_grace_time 3;
Profile created

SQL> alter user test profile remind_account;
User altered

删除直接drop profile remind_account;

时间: 2024-08-07 02:55:49

ORACLE循序渐进讲解(第一讲)的相关文章

ORACLE循序渐进讲解(第四讲)

一.数据库管理员 1.sys与system的区别(用实例说明) 在第一讲说过下面两句话: (1)sys用户是超级用户,具有最高权限,具有dba的角色和sysdba.sysoper数据库管理特殊权限,所有 oracle 的数据字典的基表和视图都存放在sys 用户中,这些基表和视图对于 oracle 的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改,sys有创建create  database的权限. (2)system用户是管理操作员,权限一样很大具有dba角色,没有创建create

ORACLE循序渐进讲解(第二讲)

一.ORACLE常用数据类型(其他类型不太常用) (1)字符类型 1.char 定长,最大2000字符.例如:char(10) '小明' 前四个字符放'小明'后添加6个空格补全. 2.varchar2(20) 变长,最大4000字符.例如:varchar(10) '小明' oracle分配四个字符,这样可心节省空间. 3.clob(character large objiect)字符型大对象最大4G (2)数字类型 number范围-10的38次方到10的38次方,可以表示整数,也可以表示小数.

ORACLE循序渐进讲解(第三讲)

一.oracle常用系统函数 1.日期类函数 (1)to_date(字符串,格式) SQL> select to_date('2014-10-11 12:13:14','yyyy-mm-dd hh:mi:ss') from dual; TO_DATE('2014-10-1112:13:14',' ------------------------------ 2014-10-11 12:13:14 (2)获取当前月份的第一天. SQL> select trunc(sysdate,'month')

《上古天真论》第一讲文字版

上古天真论篇第一讲主讲:徐文兵  主持:梁  冬播出时间:2008-12-06  23:00—24:00  经文:昔在黄帝,生而神靈,弱而能言,幼而徇齐,长而敦敏,成而等天.乃问于天师曰:余闻上古之人,春秋皆度百岁,而动作不衰:今时之人,年半百而动作皆衰者,时世异耶?人将失之耶?岐伯对曰:上古之人,其知道者,法于阴阳,和于术数, 梁冬:我是梁冬.梁某人.而做在我对面的是我的在求学中医方面的偶像级的老师徐文兵老师,徐老师你好!徐文兵:梁冬好!听众朋友们大家好!梁冬:啊呀,一看就很有这个电台风范,从

Unity3D教程宝典之光影烘焙:第一讲光影烘焙

引言:光影烘焙,英文叫Lightmapping 或 light baking.Unity自带了Lightmapping的功能(是Illuminate Labs出的名为Beast的产品).本系列教程分为4讲:第一讲 光影烘焙第二讲 AreaLight第三讲 Light Probes第四讲 脚本控制其中第三第四讲讲解的是动态物体与烘焙后场景的融合.             光影烘焙 打开方式 Window – Lightmapping有几点需要注意:1.所要烘焙物体的mesh 必须要有合适的ligh

跟我学《JavaScript高程3》第一讲,课程笔记

跟我学<JavaScript高程3> 第一讲:第1~3章 课程制作:bling,兴哥,5年Java,3年前端 课程知识:JavaScript.Html.Css 课程目标:前端体系课程,逐步深入,找到一份前端工作    课程大纲:本书目录结构 适合人群:前端初学者,可以0基础,但要认真,踏实 回答几个问题 1.为什么要学习前端?JavaScript有哪些用处?为什么要讲这本书? 移动互联网是未来的趋势,移动设备H5开发带动了前端趋势,今后App基本都是Native+H5实现. 页面效果,数据交互

16位汇编第一讲简介

汇编第一讲 汇编简介 一.什么是汇编 汇编语言他是计算机语言,计算机语言通俗点说就是人类和计算机(也就是CPU)沟通的桥梁,计算机不认识人类的语言,只认得二进制(0和1)但是我们想让你算计完成我们的工作,每次都是0,和1,那样会崩溃的,(老一辈的是这样的)所以后面汇编语言出现了,用一些简单的助记符来替代机器语言(二进制)通用的语言,比如 + - * / 这种助记符, add....汇编语言是和机器语言一一对应的. 二.汇编语言有什么用处好处     1.学好汇编了,你可以理解计算机更为透彻  

Scrapy爬虫框架第一讲(Linux环境)

1.What is Scrapy? 答:Scrapy是一个使用python语言(基于Twistec框架)编写的开源网络爬虫框架,其结构清晰.模块之间的耦合程度低,具有较强的扩张性,能满足各种需求.(前面我们介绍了使用requests.beautifulsoup.selenium等相当于你写作文题,主要针对的是个人爬虫:而Scrapy框架的出现给了我们一个方便灵活爬虫程序架构,我们只需针对其中的组件做更改,即可实现一个完美的网络爬虫,相当于你做填空题!) 基于Scrapy的使用方便性,下面所有的S

html学习第一讲(内容html常规控件的的使用)

1 <html> 2 <head> 3 <title> 这是网页的标题</title> 4 </head> 5 6 <body> 7 <h2><font color ="blue"> 这是网页的内容!</font></h2> 8 9 <a href="http://www.cnblogs.com/gongxijun">这是一个连接<