音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

Oracle知识整理笔记
日期:2015-09-17 16:59:56   来源:脚本之家

小编整理的一篇关于Oracle知识的学习笔记,希望对大家有帮助。

1.简单对比一下SQL Server 和Oracle
  先给大家看一张我画得图:

  安装完Sql Server后,我们打开、连接数据库引擎后可以看到很多的数据库有系统数据库也有用户数据库。而Oracle安装后,一个数据库都对应一个服务,我们在使用前需要在计算机服务中开启相应的服务,如图中所示,服务开启,用户登录后看到的是一个数据库,一个数据库中可以有表、视图、存储过程等数据对象。一个Oracle数据库可以有多个用户,用户的权限不同,进入到数据库中看到的数据对象也是不同的。

2.Oracle中基本的概念和关系
  我总结了一下Oracle中有5个必须要知道的概念:用户、权限、角色、方案和数据对象。
用户的概念大家都知道不用赘述;权限就是能不能做某一件事的证明;而角色可以看做是某些权限的集合体。在Oracle中权限有很多种,如果挨个给用户授权会很麻烦,所以就把一些权限分配给一个角色,那么给用户授予这个角色就解决挨个授予权限的麻烦。方案这里和用户相对应。一个用户,Oracle会默认给它一个方案,这个方案里会存放数据对象。那么数据对象又是什么?一想便知,数据对象就是表、视图、存储过程等的总称。他们之间的关系我用一张图来说明。

  

 系统权限是用户对数据库的相关权限,比如:登录。对象权限是用户对其他用户的数据对象的操作权限。比如:更新其他方案的表。看到这张图不知道大家有没有疑问:Oracle的权限有哪些?角色有哪些?我们怎么操作这个数据库呢?后面的博客会介绍这些。

3.Oracle的一种管理工具pl/sql Developer 
   pl/sql developer 是用于开发pl/sql块的集成开发环境,它是一个独立的产品,而不是oracle的一个附带品。pl/sql是procedural language/sql是Oracle在标准sql语言上的扩展。pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用例外处理各种错误,使得它的功能变得更强大。
pl/sql块由三部分构成:定义部分、执行部分、例外处理部分。定义部分和例外部分可选。

Declear 
/* 定义部分-----定义变量,常量,游标,例外,复杂数据类型*/ 
Begin 
/*执行部分-----要执行的pl/sql语句和sql语句*/ 
Exception 
/*例外处理部分-----处理运行的各种错误*/ 
End; 
举个最简单的例子: 
Begin 
dbms_output.put_line('hello,world'); 
End; 

为什么会出现pl/sql中文乱码问题?
   前提是:本机没有安装Oracle,采用pl/sql远程访问Oracle数据库。本机安装了Oracle客户端和pl/sql。
   服务器上的Oracle有一个字符设置,比如UTF-8或者简体中文,若没有手动修改那么会有一个默认的。在本机上Oracle客户端和pl/sql也需要字符设置.如果服务器和客户端的字符编码不一致,就会出现中文乱码问题。所以,我们要做得就是修改他们使他们一致。(现在看来是如此简单,当时怎么会那么纠结!)
   怎么解决pl/sql中文乱码问题?
   首先,我们要先知道服务器端的Oracle是什么字符编码。打开你的pl/sql,在命令窗口中输入  select userenv('language') from dual;   就会先看到。如图:

然后要做的就是设置本机的字符设置为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK。办法是设置环境变量。步骤:我的电脑-->右击-->属性-->环境变量-->系统变量-->把nls_lang修改成SIMPLIFIED CHINESE_CHINA.ZHS16GBK,然后需要重启pl/sql。网上很多资料说做到这一步就可以解决问题了。但是我的乱码问题还是解决不了。若你的问题也解决不了,请这样做:打开你的注册表找到这样的目录:找到:HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE 中

设置右侧NLS_LANG,将它的值也设置为SIMPLIFIED CHINESE_CHINA.ZHS16GBK。重启pl/sql后,将已经添加进去的记录删除,重新添加一条再测试。以前添加的记录很可能就是乱码写入的,看不到效果。

4、如何分配权限和角色
1).什么是权限,什么是角色?
   权限分为系统权限和对象权限。系统权限是指执行特定类型sql命令的的权利。比如用户具有了create table的权限,可以在其方案中建表;当具有了create any table,可以在任何方案中建表。对象权限是指访问其他方案的权利,用户可以直接访问自己方案的对象,但是如果要访问别的方案的对象,则必须具有对象的权限。比如Scott用户要访问Jane.emp表(Jane方案,emp表),则必须在Jane.emp表上具有对象权限。
  角色是相关权限的命令集合,使用角色的目的主要是为了简化权限的管理。
2).常用的权限和角色分类
  这里我们只简单介绍最常用的即可,若想了解可查阅帮助文档也可通过查询语句获得。
  a.系统权限:关于数据库连接(database link)、会话(session)、用户(User)、表空间(tablespace)、角色(role)、数据对象(表、视图、存储过程)等这些操作的create、drop和alter。
  b.对象权限:insert --添加 、delete --删除 (数据)、 Alter --修改(修改表结构) 、Update --修改(更新数据) 、Select --查询 。也就是增删改查四大类。
  c.角色分为预定义和自定义两种。预定义是指Oracle所提供的角色,常用的包括:connect,resource,dba.
    dba角色具有所有的系统权限,默认的有dba角色的用户是sys和system。 这两个用户可以将任何系统权限授予其他用户。注意一点就是:dba角色没有启动关闭数据库的权利.Connect角色具有一般开发人员需要的大部分权限,多数情况下,只要给用户授权connect和resource角色就够了。那么connect和resource角色都有什么权限呢?这里没有必要一一列举。我们可通过查询获得。那么如何查询呢?
3).查询
如何查询Oracle有多少种角色? select * from dba_roles;
如何查询Oracle有多少种系统权限和对象权限? select * from system_privilege_map order by name; select  distinct privilege  from dba_tab_privs;
如何查看某个用户有什么样的角色?  select * from dba_role_privs where grantee='用户名';
如何查看一个角色包括什么系统权限和对象权限? select * from dba_sys_privs where grantee='角色名'; select * from dba_tab_privs where grantee='角色名';
4).授予和回收
   这部分知识在学习过程中是按一条一条规则来的,学完觉得特别乱。我把这里的东西按照一个正常的操作过程编成了一条操作线。感觉知识比较清晰了。
   a.现在我要使用Oracle,必须要有用户才行。Oracle默认创建两个用户sys和system.我们可以使用这两个用户登录上去,建立自己的用户,如:create user Ken identified by ken.现在我们使用Ken来登录会给出错误信息。为什么?因为Ken用户没有登录的权限。现在我们需要给Ken授权:grant create session  to Ken  with admin option.这样Ken用户登录就ok了。那么with admin option能起到什么作用?这说明被授权的用户或者是角色还可以将该系统权限给其他用户或者角色。
    回收系统权限操作:依然采用上面的例子:回收登录权限:revoke  create session  from Ken;  系统权限的回收不是级联的。比如:Ken又将登录权限授予Jane,那么回收Ken的权限后,Jane依然可以登录。
    b.对于对象权限来说,我们举个例子:如果我的方案中有一张表emp,现在我想让Ken用户有权限来操作我的表。那我怎么办?第一种办法是用dba用户将操作我的表emp的权限给Ken,这里需要说明一点:dba用户可以将任何对象上的对象权限授予其他用户。第二种办法是我自己来做。  如何做? grant select on emp to Ken with grant option.这里我用到了 with grant option.这能起到这样的作用:Ken用户可以将操作我的表emp的权限在授予别的用户。这里注意一点。它跟with admin option 不同,with grant option只能授予用户,不能授予角色。
    回收对象权限操作:revoke select on emp from Ken ;对象权限的回收是级联的。比如:Ken将对emp表查询的权限授予Jane,那么回收Ken的权限后,Jane也不能对emp表进行查询。
    c.角色授权这里需要两步:1给角色授权2将角色给某一个用户。现在我们将登录权限给一个角色:grant  create session  to 角色名;然后把这个角色给用户Ken:grant 角色名 to Ken.删除角色采用 drop role 角色名。

总结:这篇博客侧重于介绍Oracle的基本机制,是最基本的知识,最后还介绍了如何分配权限和角色,包括它们是什么,分类以及如何去用它们。这里我们要搞明白一个前提就很好理解:我们要做某一件事必须要有权限。当我们没有权限的时候可以使用系统用户去做,如果系统授予我们权限那我们也可以做了。

以上就是对Oracle知识的整理,还有许多知识点未涉及到,在将来的文章更新中会陆续补充,希望大家继续关注。

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    MsSqlMysqloracleMariaDBSQLiteDB2