天天看点

oracle数据库01-连接&用户&权限

     oracle数据库是oracle(中文名称叫甲骨文)公司的核心产品,oracle数据库是一个适合于大中型企业的数据库管理系统。

     oracle数据库涉及银行、电信、移动通信、航空、保险、金融、电子商务和跨国公司等,oracle的市场占有率最高,显然oracle的主要用户涉及面非常广。

     oracle产品是免费的,可以在oracle官方网站上下载到安装包,但是oracle服务是收费的。在java开发中,oracle数据库是非常理想的选择。

     oracle公司成立以来,从最初的数据库版本到oracle7i、oracle8i、oracle9i,oracle10g,oracle11g到oracle12c虽然每一个版本之间的操作都存在一定的差别,但是oracle对数据的操作基本上都遵循sql标准。因此对oracle开发来说版本之间的差别不大。(以后都为oracle12c下操作)……

     oracle同mysql一样,数据库软件和客户端软件是分开的。mysql是基于数据库的,即每个项目可以创建一个单独的数据库。oracle是基于用户的,即在oracle中只创建一个数据库,在该数据库中位每个项目创建一个用户,每个用户使用自己创建的数据表。

     oracle数据库安装后的全局数据库名是数据库在服务器网络中的唯一标识。

     安装过程中的口令管理中,可以对数据库用户设置密码,设置是否锁定。

     oracle中为管理员预置了两个用户分别是sys和system,密码为全局数据库口令。sys相当于老板,system相当于总经理,所有的资源都是sys用户的,system可以调配这些资源。oracle客户端使用用户名和密码登录oracle系统后才能对数据库操作。

  

     sql*plus命令行客户端,在windows的cmd中:

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

oracle数据库01-连接&用户&权限

    连接身份:表示该用户连接后拥有的权限。(sysdba、sysoper、normal)

      sysdba: 即数据库管理员,权限包括:打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制、管理功能、创建数据库。sys用户 必须用sysdba身份才能登录,system用户可以用普通身份登录。

      sysoper:即数据库操作员,权限包括:打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制。

      normal:即普通用户,权限只有查询某些数据表的数据。默认的身份是normal用户。

   服务器连接字符串:

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

network/admin/ tnsnames.ora。

oracle数据库01-连接&用户&权限

    oracle的服务:oracleserviceorcl和oracleoradb12home1tnslistener;

       oracleserviceorcl该服务是oracle数据库启动的基础,只有该服务启动了,oracle数据库才能正常启动。这是必须启动的服务。

       oracleoradb12home1tnslistener该服务是服务器端为客户端提供的监听服务,只有该服务在服务器上正常启动,客户端才能连接到服务器。该监听服务接收客户端发出的请求,然后将请求传递给数据库服务器。一旦建立了连接,客户端和数据库服务器就能直接通信了。

   oracle启动和关闭:startup open; shutdown immediate;

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

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

 create user 用户名 identified by 口令(密码) [account lock|unlock]

  eg:create user tskk identified by tskk123 account unlock;

  修改用户的密码:alteruser 用户名 identified by 新密码;

  修改用户处于锁定(非锁定)状态:alter user

用户名 account lock|unlock;

     oracle用户对数据库管理或对象操作的权利,分为系统权限和数据库对象权限。

        系统权限比如:create session,create table等,拥有系统权限的用户,允许拥有相应的系统操作。

        数据库对象权限,比如对表中的数据进行增删改操作等,拥有数据库对象权限的用户可以对所拥有的对象进行对应的操作。

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

       connect角色:主要应用在临时用户,特别是那些不需要建表的用户,通常只赋予他们connect role。connect是使用oracle的简单权限,拥有connect角色的用户,可以与服务器建立连接会话(session,客户端对服务器连接,称为会话)。

      resource角色:更可靠和正式的数据库用户可以授予resourcerole。resource提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)等。      dba角色:dba role拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。用户system拥有dba角色。

      dba角色:dba role拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。用户system拥有dba角色。

     授予角色给用户:grant角色|权限 to 用户(角色)

     回收权限:revoke 角色|权限 from 用户(角色)