Oracle

xiaoxiao2021-03-01  16

1、Oracle简单介绍

数据库创建后会有一系列为该数据库提供服务的内存空间和后台进程,称为该数据库的实例。每一个数据库至少会有一个实例为其服务。实例中的内存结构称为系统全局区(SGA),系统会根据当前计算机系统的性能给 SGA 分配非常可观的内存空间。

虽然一个 Oracle 数据库服务器中可以安装多个数据库,但是一个数据库需要占用非常大的内存空间,因此一般一个服务器只安装一个数据库。每一个数据库可以有很多用户,不同的用户拥有自己的数据库对象(比如:数据库表),一个用户如果访问其他用户的数据库对象,必须由对方用户授予一定的权限。不同的用户创建的表,只能被当前用户访问。因此在 Oracle 开发中,不同的应用程序只需使用不同的用户访问即可。

2、数据库安装完之后

虽然一个 Oracle 数据库服务器中可以安装多个数据库,但是一个数据库需要占用非常大的内存空间,因此一般一个服务器只安装一个数据库。每一个数据库可以有很多用户,不同的用户拥有自己的数据库对象(比如:数据库表),一个用户如果访问其他用户的数据库对象,必须由对方用户授予一定的权限。不同的用户创建的表,只能被当前用户访问。因此在 Oracle 开发中,不同的应用程序只需使用不同的用户访问即可。

虽然一个 Oracle 数据库服务器中可以安装多个数据库,但是一个数据库需要占用非常大的内存空间,因此一般一个服务器只安装一个数据库。每一个数据库可以有很多用户,不同的用户拥有自己的数据库对象(比如:数据库表),一个用户如果访问其他用户的数据库对象,必须由对方用户授予一定的权限。不同的用户创建的表,只能被当前用户访问。因此在 Oracle 开发中,不同的应用程序只需使用不同的用户访问即可。

ps:Oracle 数据库中,默认情况下,所有系统的数据,SQL 关键字等都是大写的,在操作过程中,Oracle 会自动把这些内容转换为大写,因此用户操作时不需考虑大小写问题,一般情况下,为了良好的程序风格,程序中建议关键字用大写,非关键字可以使用小写。

3、Oracle客户端工具

        (1) sqlplus工具

连接命令:conn 用户名/密码 as 连接身份@服务器连接字符串

ps:连接身份:表示该用户连接后拥有的权限。

sysdba: 即数据库管理员,权限包括:打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制、管理功能、创建数据库。sys 用户必须用 sysdba 身份才能登录,system 用户可以用普通身份登录。sysyoper:即数据库操作员,权限包括:打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制。normal:即普通用户,权限只有查询某些数据表的数据。默认的身份是 normal用户。

客户端工具可以根据“服务器连接字符串”对服务器进行连接,有了连接字符串后客户端就可以像操作本机一样操作远程数据库,因此“服务器连接字符串”的配置也叫本地网络服务配置,如果 SQL*Plus 工具启动在服务器上,并且服务器上只有一个数据库实例的情况下,连接字符串可以缺省,在连接字符串中包括连接服务器的协议,服务器的地址,服务器的端口等设置,Oracle 服务名等,该配置文件在 Oracle安装目录下的: network/ADMIN/ tnsnames.ora。该文件是一个文本文件,用记事本打开后如下所示:

      (2) PL/SQL Developer工具

在实际 Oracle 开发中,经常使用一个功能强大的第三方工具:“PL/SQL Developer”工具。PL/SQL Developer 基本上可以实现 Oracle 开发中的任何操作。它运行在客户端时必须先安装Oracle 客户端,并且通过网络配置向导配置网络服务名后才能正常与服务器连接。

4、Oracle启动和关闭

在windows中启动OracleService服务,在linux中使用lsnrct start 启动监听服务,之后就可以对数据库进行操作了。

使用sqlplus / as sysdba进入到数据库后,用startup(startup open)命令启动数据库服务。用shutdown(shutdown immediate)关闭服务。

5、Oracle用户和权限

Oracle 中,一般不会轻易在一个服务器上创建多个数据库,在一个数据库中,不同的项目由不同的用户访问,每一个用户拥有自身创建的数据库对象,因此用户的概念在 Oracle中非常重要。Oracle 的用户可以用 CREATE USER 命令来创建。其语法是:

CREATE USER 用户名 IDENTIFIED BY 口令 [ACCOUNT LOCK|UNLOCK]

PS:

(1)LOCK|UNLOCK 创建用户时是否锁定,默认为锁定状态。锁定的用户无法正常的登录进行数据库操作。

(2)Oracle 在 SQL*Plus 中的命令以分号(;)结尾,代表命令完毕并执行,系统同时会把该命令保存在缓存中,缓存中只保存最近执行过的命令,如果重新执行缓存中的命令,直接使用左斜杠符号(/)。如果命令不以分号结尾,该命令只是写入缓存保存起来,但并不执行。

尽管用户成功创建,但是还不能正常的登录 Oracle 数据库系统,因为该用户还没有任何权限。如果用户能够正常登录,至少需要 CREATE SESSION 系统权限。

Oracle 用户对数据库管理或对象操作的权利,分为系统权限和数据库对象权限。系统权限比如:CREATE SESSION,CREATE TABLE 等,拥有系统权限的用户,允许拥有相应的系统操作。数据库对象权限,比如对表中的数据进行增删改操作等,拥有数据库对象权限的用户可以对所拥有的对象进行对应的操作。

 还有一个概念就是数据库角色(role),数据库角色就是若干个系统权限的集合。下面介绍几个常用角色:

CONNECT 角色,主要应用在临时用户,特别是那些不需要建表的用户,通常只赋予他们 CONNECT role。CONNECT 是使用 Oracle 的简单权限,拥有 CONNECT 角色的用户,可以与服务器建立连接会话(session,客户端对服务器连接,称为会话)。RESOURCE 角色,更可靠和正式的数据库用户可以授予 RESOURCE role。RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)等。DBA 角色,DBA role 拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。用户 SYSTEM 拥有 DBA 角色。

一般情况下,一个普通的用户(如 SCOTT),拥有 CONNECT 和 RESOURCE 两个角色即可进行常规的数据库开发工作。

可以把某个权限授予某个角色,可以把权限、角色授予某个用户。系统权限只能由 DBA用户授权,对象权限由拥有该对象的用户授权,授权语法是:

GRANT角色|权限 TO 用户(角色) //回收权限 REVOKE 角色|权限 FROM 用户(角色) //修改用户的密码 ALTER USER 用户名 IDENTIFIED BY 新密码 //修改用户处于锁定(非锁定)状态 ALTER USER 用户名 ACCOUNT LOCK|UNLOCK

 

 

 

转载请注明原文地址: https://www.6miu.com/read-4050264.html

最新回复(0)