ORACLE数据库-学习笔记1

一:数据库种类

  1. 小型数据库:access、foxbase
    负载量小,用户大概100人之内;成本在千元之内;对安全性要求不高。
  2. 中型数据库:informix、sql server、mysql
    载量:日访问量5000~10000;成本在万元内;商务网站;
  3. 大型数据库:sybase、db2、oracle
    海量负载;安全高。

在项目中怎么选择数据:项目的负载量;项目成本;安全性等。

随着科技的进步,数据库知识也日新月异,一些新技术需要我钻研,同时成熟的技术也需要我们时刻回顾,为故而知新吗。

二:安装oracle数据。百度搜索有很多安装的教程。

数据库 (永久的、磁盘上)
磁盘上存储的数据的集合
在物理上表现为数据文件、日志文件和控制文件等
在逻辑上以表空间形式存在
必须首先创建数据库,然后才能使用Oracle

数据库实例 (临时的、内存中)

  • 每个启动的数据库都对应一个数据库实例,由这个实例来访问和控制数据库
  • 为了运行数据库,Oracle系统所运行的所有进程和分配的内存结构的组合体

数据库物理结构:

  • 数据文件 :扩展名是.DBF,用于存储数据库数据的文件,数据库表和数据文件不存在一对一对应关系
  • 控制文件 :扩展名是.CTL,是数据库启动及运行所必需的文件,默认包含3个控制文件,各个控制文件内容相同
  • 日志文件 :扩展名是.LOG,它记录了对数据的所有更改信息,多个日志文件组之间循环使用

数据库逻辑结构:

  • 表空间:每个Oracle数据库都是由若干个表空间构成,用户在数据库中建立的所有内容都被存储到表空间中,创建数据库时会自动创建若干表空间

三:oracle sql*plus常用命令

  1. sys用户和system用户
    Oracle安装会自动的生成sys用户和system用户
    (1)、sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是manager
    (2)、system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是change_on_install
    (3)、一般讲,对数据库维护,使用system用户登录就可以拉
    注意:也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。
  2. sql*plus是oracle自带的工具软件,主要用于执行sql语句,pl\sql块。
    操作如下:
    (1)、在D:\dev\oracle\product\10.2.0\db_1\bin\目录下的sqlplusw.exe。(D:\dev\oracle\为oracle安装目录)
    (2)、在运行栏中输入“sqlplusw”即可
  3. sqlplus dos工具简介
    (1)、概述:sqlplus是在dos下操作oracle的工具,其功能和sql*plus相似。
    (2)、操作如下:在运行栏中输入“sqlplus”即可
  4. PLSQL Developer工具,需要自己安装 ——推荐大家使用
  5. sql*plus常用命令
    1.conn[ect]
    用法:conn 用户名/密码@网络服务名 [as sysdba/sysoper]
    说明:当用特权用户身份连接时,必须带上as sysdba或是as sysoper
    eg、
    SQL> show user
    USER 为 “SCOTT”
    SQL> conn system/oracle@orcl
    已连接。
    SQL> show user
    USER 为 “SYSTEM”
    SQL>
    以上命令实现类似切换用户的效果
    2.disc/disconn/disconnect
    说明: 该命令用来断开与当前数据库的连接
    3.pssw[ord]
    说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
    eg、
    SQL> conn scott/oracle
    已连接。
    SQL> passw
    更改 SCOTT 的口令
    旧口令:
    新口令:
    重新键入新口令:
    口令已更改
    SQL>
    4.show user
    说明: 显示当前用户名
    5.exit
    说明: 该命令会断开与数据库的连接,同时会退出sql*plus
    5.clear screen
    清空屏幕
    2)、文件操作命令
    1.start和@
    说明: 运行sql脚本
    案例: sql>@ d:\a.sql或是sql>start d:\a.sql
    2.edit
    说明: 该命令可以编辑指定的sql脚本
    案例: sql>edit d:\a.sql,这样会把d:\a.sql 这个文件打开
    3.spool
    说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
    案例: sql>spool d:\b.sql并输入sql>spool off
    eg、
    sql>spool d:\b.sql;
    sql>select * from emp;
    sql>spool off;
    3)、交互式命令
    1.&
    说明:可以替代变量,而该变量在执行时,需要用户输入。
    select * from emp where job=’&job’;
    4)、显示和设置环境变量
    概述:可以用来控制输出的各种格式,set show 如果希望永久的保存相关的设
    置,可以去修改glogin.sql 脚本
    1.linesize
    说明:设置显示行的宽度,默认是80个字符
    show linesize
    set linesize 90
    2.pagesize说明:设置每页显示的行数目,默认是14
    用法和linesize 一样
    至于其它环境参数的使用也是大同小异

四:oracle 用户管理

一:创建用户
创建:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用。
语法:create user 用户名 identified by 密码;

CREATE USER user
IDENTIFIED BY password
[DEFAULT  TABLESPACE tablespace] --指定默认表空间
[TEMPORARY  TABLESPACE tablespace]  --指定默认临时表空间
CREATE USER kevin
IDENTIFIED BY kevin
DEFAULT TABLESPACE kevin_tablespace

示例:create user kevin identified by kevin;
注意:oracle规定,密码必须以字母开头,如果以数字开头,它不会创建创建用户时的权限分配:

  • CONNECT角色: –是授予最终用户的典型权利,最基本的
    ALTER SESSION –修改会话  
    CREATE CLUSTER –建立聚簇  
    CREATE DATABASE LINK –建立数据库链接  
    CREATE SEQUENCE –建立序列  
    CREATE SESSION –建立会话  
    CREATE SYNONYM –建立同义词  
    CREATE VIEW –建立视图 
       
  • RESOURCE角色: –是授予开发人员的
    CREATE CLUSTER –建立聚簇  
    CREATE PROCEDURE –建立过程  
    CREATE SEQUENCE –建立序列  
    CREATE TABLE –建表  
    CREATE TRIGGER –建立触发器  
    CREATE TYPE –建立类型      
    DBA角色:拥有系统所有系统级权限。
--分配权限或角色
GRANT  privileges or role TO user;
--撤销权限或角色
REVOKE  privileges or role FROM user;

二:给用户修改密码
给自己修改密码 直接使用:SQL> password 用户名或passw
给别人修改密码则需要具有dba的权限,或拥有alter user的系统权限:

SQL> alter user user_name identified by 123456

三:删除用户
删除用户需要使用具有drop user权限的用户;或者以DBA身份操作。
语法:drop user user_name cascade;
cascade关键字:即在删除用户时,同时删除该用户创建的表。

四:权限:分为系统权限和对象权限。
五:角色:分为预定义角色和自定义角色。

六:权限分配使用关键字 grant

 SQL> conn user_name/user_pwd  

如果在创建 user_name没给其赋予该角色一定给的权限时,将登录失败提示:警告: 您不能连接到 ORACLE。
需要登录DBA用户给用户分配权限。

SQL> conn system/oracle  --已连接。
SQL> grant connect to user_name; --授权成功。
SQL> conn user_name/oracle  --已连接。

准确说:grant connect to user_name 不是赋权限,而是角色。下面我说一下赋予权限的问题。

--给用赋予查看scott下的表 tb_user
grant select on scott.emp to user_name;
--给用赋予修改scott下的表 tb_user
grant update on scott.emp to user_name;
--给用赋予删除scott下的表 tb_user
grant delete on scott.emp to user_name;
--给用赋予增删改查scott下的表 tb_user
grant all on scott.emp to user_name;
--给用收回增tb_user用户的某权限。
revoke select on scott.emp from user_name;

七:权限传递

--把查询emp表的权限赋予 user_name ,且user_name 可以将权限传递下去。
grant select on emp to user_name with grant option;
--收回权限
revoke select on emp from user_name ;

八:with admin option与with grant option区别

1、with admin option用于系统权限授权,with grant option用于对象授权。

2、给一个用户授予系统权限带上with admin option时,此用户可把此系统权限授予其他用户或角色,但收回这个用户的系统权限时,这个用户已经授予其他用户或角色的此系统权限不会因传播无效,如授予A系统权限create session with admin option,然后A又把create session权限授予B,但管理员收回A的create session权限时,B依然拥有create session的权限,但管理员可以显式收回B create session的权限,即直接revoke create session from B.

而with grant option用于对象授权时,被授予的用户也可把此对象权限授予其他用户或角色,不同的是但管理员收回用with grant option授权的用户对象权限时,权限会因传播而失效,如grant select on table with grant option to A,A用户把此权限授予B,但管理员收回A的权限时,B的权限也会失效,但管理员不可以直接收回B的SELECT ON TABLE 权限。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EngineerForSoul

你的鼓励是我孜孜不倦的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值