代码改变世界

Oracle 学习第一篇

2017-10-25 14:42  你若安好!  阅读(259)  评论(0编辑  收藏  举报

学习目标:

学习目标:

 

^ 数据库简介

 

^ Oracle用户管理

 

^ Oracle权限角色

 

 

 

1. 数据库简介

 

1.1 数据库(DataBase)

 

数据库是一种软件产品,是用于存放数据,管理数据库的存储仓库,是有效组织在一起的数据集合。

 

1.2常用数据库软件

 

      大型数据库

 

              Oracle   oracle是著名Oracle(甲骨文)公司的数据库产品,它是世界上第一个商品化的关系型数据库管理系统,也是第一个推出和数据库结合的第四代语言开发工具的数据库产品。Oracle公司的软件产品丰富,包括Oracle服务器产品,Oracle开发工具和Oracle应用软件。其中最著名的就是Oracle数据库,目前最新的版本是Oracle11g。

 

      DB2     是IBM的关系型数据库管理系统, DB2有很多不同点版本,可以运行在从掌上产品到大型机不同的终端机器上。 DB2在高端数据库的主要竞争对手是Oracle。

 

    Sybase 是美国Sybase公司研制的一种关系型数据库,是较早采用C/S技术的数据库厂商,是一种典型的 UNIX 或Windows NT 平台上客户机/服务器环境下的大型数据库系统, 在国内大中型系统中具有广泛的应用。

 

     中小型数据库

 

     Sql Server Microsoft SQL Server 是运行在 Windows NT服务器上,支持C/S 结构的数据库管理系统。它采用标准SQL语言。

 

          Mysql 是一个小型关系型数据库管理系统,开发者为瑞典 MySQL AB 公司。在2008年1月16 号被 Sun 公司收购。而2009年 Sun 又被  Oracle 收购。MySQL 体积小、速度快、总体拥有成本低,尤其是开放源码,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。

 

    小型数据库

 

    Access Microsoft Office Access(前名  Microsoft Access) 是由微软发布的关联数据库管理系统,是Microsoft Office 的成员之一。

 

1.3数据库分类(关系型和非关系型数据库)

 

  当前主流的关心型数据库有  Oracle 、DB2 、 Microsoft SQL Server、 Microsoft Access、MySQL等。

 

  非关系型数据库有  NoSql 、MonGOdb。

 

  关系型数据库通过外键关联来建立表与表之间的关系,非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定。

 

1.4 SQL(Structured Query Languge)

 

  SQL(Structured Query Language)语言是用来在关系数据库上执行数据操作、检索及维护所使用的标准语言,是一个综合的、通用的关系数据库语言。大多数数据库都使用相同或相似的语言来操作和维护数据库。

 

SQL 语言可以用来查询数据、操纵数据、定义数据、控制数据,使软件开发人员、数据库管理人员都可以通过SQL 语言对数据库执行特定的操作。

 

1.5 DBA

 

  DBA: Database Administrator数据库管理员

 

1.6 Table (表)

 

  表是数据库存储的基本单元,对应于现实世界中的实体对象,比如部门、职员等,表是一个二维结构,有行和列组成,横向为行(Row),也叫记录(Record),用来表示实体的数据,比如一个职员的相关信息。纵向为列(Column),也叫字段(Filed),用来表示实体的属性,比如职员的薪水。

 

2. Oracle 用户管理

 

2.1 sys 和 system 用户

 

  当我们每创建一个数据库实例时,就会自动生成三个用户:

 

  sys用户:超级管理员(群主),权限最大,有creata database 的权限

 

  system 用户:普通管理员用户(普通群管理员),没有create database 的权限

 

  scott 用户:普通用户(普通的群成员)在默认的情况下,scott 用户是锁定状态(lock user),一般我们启用它。如果安装的时候,忘记对scott 用户解锁,比如scott 可以通过system 来对该用户解锁。

 

  解锁步骤:

 

    1、先使用system 登陆,运行sql plus

 

    2、使用命令:alter user scott account unlock

 

   sys 和 system 的主要区别:

 

地位

sys:Oracle 的一个超级用户

system:Oracle 默认的系统管理员,拥有DBA权限

作用

主要用来维护系统信息和管理实例

通常用来管理Oracle数据库的用户、权限和存储等

登录身份

只能以 SYSDBA 或SYSOPER角色登录

只能以Normal 方式登录

 

Normalsysdbasysoper 有什么区别:

 

Normal:是普通用户

 

Sysdba:拥有最高的系统权限

 

Sysoper:主要用来启动、关闭数据库

 

2.2 Oracle后台服务

 

OracleDBConsoleorcl                      网络企业管理器服务

 

OracleOraDb10g_home1 TNSListener     监听服务(监听端口 1521)(设置成手动)

 

OracleServiceORCL                        数据库实例服务(设置成手动)

 

2.3 Oracle 开发工具

 

1)sql plus工具是oracle自带的工具软件(在开始-->搜索sqlplus

 

2)Pl/sql developer: 属于第三方软件,主要用于开发、测试、优化oracle pl/sql 的存储过程比如:触发器,此软件oracle不带,需要单独安装。

 

  1. sql*plus 常用命令

 

1) conn[ect] (可用于切换用户使用)

 

     用法: conn 用户名/密码    网络服务名[as sysdba/sysoper]

 

当用特权用户身份连接时,必须带上 as sysdba as sysoper

 

2) disc[onnect]

 

说明:该命令用来断开与当前数据库的连接,但不退出sql plus 窗口

 

3)passw[ord]

 

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

 

特别说明:如果给自己改密码则可以不用带用户名。如果给别人修改密码需要带用户名(必须是system 或者sys 用户才可以修改)

 

4) show user

 

说明:显示当前用户名

 

5) Exit

 

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

 

  1. 创建用户

 

oracle中要创建一个新的用户使用 create user 语句,一般是具有dba(数据库管理员)的劝限才能使用。

 

1)创建用户

 

命令:create user 用户名 identified by 密码;

 

2) 给用户修该密码

 

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

 

命令:create user 用户名 identified by 密码;

 

3)修改自己的密码

 

如果给自己修改密码可以直接使用

 

命令: password 用户名

 

问题 创建好后的用户名为什么无法登录?

 

Oracle中用户建立后是无法正常登录的,只有在数据库管理员(DBA)对用户分配相应的权限后,用户才能登录。

 

 

 

  1. Oracle 用户分配权限和角色

 

概述: 创建的新用户是没有任何权限的,甚至连登录数据库的权限都没有,需要为其指定相应的权限。

 

给一个用户赋权限使用命令 grant ,回收权限使用命令 revoke

 

赋权限基本语法: grant 权限/角色 from 用户名;

 

回收权限基本语法: revoke 权限/角色 from 用户名;

 

5.1 分配权限

 

语法: grant create 权限 to 用户名;

 

例如: 给小明赋于会话的权限

 

Sql> grant create session to xiaoming;

 

5.2 分配角色

 

也可以按角色对用户分配权限

 

语法: grant 角色名 to 角色

 

Sql>grant resource to xiaoming;

 

5.3 oracle 中权限的概念

 

权限分为系权限与对象权限

 

系统权限:是数据库管理员相关的权限:create session(登录权限)、create table(创建表权限)、create idex(创建索引权限)、create view(创建视图权限)、create sequence(创建序列权限)、create trigger(创建触发器权限)

 

对象权限:是用户操作数据库对象相关的权限。比如对表的增删改查(insert 增、delete 删、update 改、select 查);

 

5.4 角色

 

oracle中角色分为:预定义角色和自定义角色:

 

域定义角色:把常用的权限集中起来,形成角色。常见的角色有:dbaconnectresource等;

 

Connect角色:是授予用户的最基本的权利,能够里连接到oracle 数据库中,并在对其他用户的表有访问权限时,做SELECTUPDATEINSERT等操作。Create session--建立会话;Alter session--修改会话;Create view--建立视图;Create sequence--建立序列等权限

 

Resource角色:具有创建表、序列、视图等权限。Create table--建表;Create trigger--建立触发器;Create procedure--建立过程;Create sequence--建立序列;Create type--建立类型等权限;

 

Dba角色:是授予系统管理员的,拥有该角色的用户就能成为系统管理员了,它拥有所有的系统权限。

 

自定义角色:按需定制一定权限形成角色,可以作为预定义角色的补充。来满足用户的需要。

 

  1. 删除用户

 

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

 

命令drop user 用户名 [cascade] ;[]可选参数)

 

在删除用户时,注意:如果要删除的用户,已经创建了表,那么就需要在删除的时候带一个参数cascadeCascade有级联作用

 

 

 

                       练习

 

1、创建用户xiaoming,并赋予connectresource

 

创建用户基本语法:create user 用户名 identified by 密码;

 

Sql>create user xiaoming identified by 123;

 

给用户授权基本语法:grant 权限/角色 to 用户名;

 

Sql>grant connect to xiaoming;

 

Sql>grant resource to xiaoming;

 

2、切换用户

 

切换用户基本语法:connect 用户名/密码;

 

Sql>conn xiaoming/123;

 

3、xiaoming修改密码

 

修改密码基本语法:password 用户名;

 

Sql>password xiaoming;

 

管理员修改密码基本语法:alter user用户名 identified by 新密码;

 

sys system 用户修改其他用户的方法)

 

Sql>alter user xiaoming identified by xiaoming123;

 

4、使用xiaoming建表

 

建表基本语法:create table 表名(字段属性);

 

Sql>create tale users(id number);

 

5、添加数据

 

添加数据基本语法:insert into 表名 values(值);

 

Sql>insert into users values(1);

 

6、查询数据

 

查询表内容基本语法:select * from 表名;

 

Sql>select *from users;

 

7、删除表

 

删除表基本语法:drop table 表名;

 

Sql>drop table users;

 

8、回收权限(需syssystem用户)

 

回收权限基本语法:revoke 权限/角色名 from 用户名;

 

Sql>revoke connect from xiaoming;

 

Sql>revoke resource from xiaoming;

 

9、删除用户

 

删除用户基本语法:drop user 用户名 [cascade]

 

当我们删除一个用户的时候,如果这个用户自己已经创建过对象,那么我们在删除该用户是,需要加[cascade],表示把这个用户删除的同时,把该用户创建的数据对象一并删除。

 

Sql>drop user xiaoming;