初识 Oracle

1.Oracle 的 安装

我装的是 oracle 10g, 然后照着网上的教程点鼠标就行,虽然出现警告,但用着没问题。

2.PLSQL Developer

类似于 mysql 里面的 navicat ,可视化操作数据库的工具,但操作难度高于navicat ,也可以说oracle比mysql 难学

3.oracle 初步认识

我逛了很多博客,终于发现了自己习惯的,所以记录了一点,并进行了一点实操。

sys;   //系统管理员,拥有最高权限

system;//本地管理员,次高权限

scott; //普通用户,密码默认为tiger,默认未解锁

 

命令行窗口 → sqlplus:启动一个SQL*Plus客户端工具

       或 → sqlplus username/password [as sysdba]

       或 → sqlplus /nolog:打开SQL*Plus,但不登录

          → conn username/password@192.168.7.58:1521/orcl

          → disconnect 断开连接

 

在登陆的时候,可以选择下面三种登录方式:

sqlplus / as sysdba;  //登陆sys帐户

sqlplus sys as sysdba;//同上

sqlplus scott/tiger;  //登陆普通用户scott    (sqlplus  yilei/yilei)

 

 

下面分别介绍系统权限和对象权限:

(1)系统权限:

 

    grant 权限列表,.. to username [with admin option 同时获得权限分配权];

    revoke 权限列表,.. from usernam;  

 

知识点、用户

MySQL,一个用户,多个数据库,每个数据库拥有各自的表,而Oracle一个数据库,多个用户,每个用户拥有各自的表(数据库对象)

创建用户:

      create user username identified by password [account lock | unlock]

      [password expire 设置密码过期];

   解锁|加锁

      alter user username account unlock | lock;

   修改密码

      非管理员用户登录状态:password  → 旧口令 → 新口令 :修改当前用户的密码

      管理员登录状态:password username → 新口令 :修改指定用户的密码

      alter user username identified by newpassword;

   删除用户

      drop user username [cascade];

      cascade表示级联删除用户的所有对象,删用户时,一起删除该用户的对象

   删除当前正在连接的用户

      v$session 存放的是已经连接的用户的信息

      select sid,serial#,username from v$session where username = ‘’;

      alter system kill session 'sid,serial#';

      drop user username [cascade];

   查看当前的登录的用户

      show user;

个人理解:  首先创建用户时,必须用到管理员,当创建成功后,可以使用用户登录

比如:

  先登录系统管理员 sys

 

然后创建 一个username 为 yi ,password 同样也为 yi 的用户

退出当前用户(SYS),准备连接 用户 yi

连接失败,提示信息为 :user Yi lacks Create session privilege

原来是没有会话权限

重新使用 sys ,赋予 user YI session 权限

新创建用户YI 连接成功。

 

知识点、角色与权限

角色基本内容如下:

        grant 角色 to username;

        revoke 角色 from username;   

        一个角色是多个权限的集合

        系统预定义角色

        connect 连接

        resource 访问资源权限,访问表、序列,不包括create session

        

dba 拥有所有权限

        自定义角色

        create role 角色名

        grant 权限列表|角色列表 to 角色名

每个Oracle用户都有一个名字和口令,并拥有一些由其创建的表、视图和其他资源。Oracle角色(role)就是一组权限(privilege) (或者是每个用户根据其状态和条件所需的访问类型)。用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户。一个用户也可以直接给其他用户授权。

数据库系统权限(Database System Privilege)允许用户执行特定的命令集。例如,CREATE TABLE权限允许用户创建表,GRANT ANY PRIVILEGE 权限允许用户授予任何系统权限。

数据库对象权限(Database Object Privilege)使得用户能够对各个对象进行某些操作。例如DELETE权限允许用户删除表或视图的行,SELECT权限允许用户通过select从 表、视图、序列(sequences)或快照 (snapshots)中查询信息。

(1)、3种标准角色

Qracle为了兼容以前的版本,提供了三种标准的角色(role):CONNECT、RESOURCE和DBA。

1. CONNECT Role(连接角色)

 

临时用户,特别是那些不需要建表的用户,通常只赋予他们connect  role。CONNECT是使用Oracle的简单权限,这种权限只有在对其他用户的表有访问权时,包括select、insert、update和delete等,才会变得有意义。拥有CONNECT role的用户还能够创建表、视图、序列(sequence)、簇(cluster)、同义词(synonym )、会话(session)和与其他数据库的链(link)。

 

2. RESOURCE Role(资源角色)

 

更可靠和正式的数据库用户可以授予resource  role。RESOURCE提供给用户另外的权限以创建他们自己的表、序列、过程(procedure)、触发器(trigger)、索引(index)和簇(cluster)。

 

3. DBA Role(数据库管理员角色)

 

DBA role拥有所有的系统权限----包括无限制的空间限额和给其他用户授予各种权限的能力。SYSTEM由DBA用户拥有。下面介绍一些DBA经常使用的典型权限。

 

A.grant(授权)命令

 

下面对刚才创建的用户user01授权,命令如下:

 

grant connect, resource to user01;

 

B.revoke(撤消)权限

 

已授予的权限可以撤消。例如撤消(1)中的授权,命令如下:

 

revoke connect, resource from user01;

 

一个具有DBA角色的用户可以撤消任何别的用户甚至别的DBA的CONNECT、RESOURCE 和DBA的其他权限。当然,这样是很危险的,因此,除非真正需要,DBA权限不应随便授予那些不是很重要的一般用户。

 

撤消一个用户的所有权限,并不意味着从Oracle中删除了这个用户,也不会破坏用户创建的任何表;只是简单禁止其对这些表的访问。其他要访问这些表的用户可以象以前那样地访问这些表。

 

(2)、创建角色

除了前面讲到的三种系统角色—-CONNECT、RESOURCE和DBA,用户还可以在Oracle创建自己的role。用户创建的role可以由 表或系统权限或两者的组合构成。为了创建role,用户必须具有CREATE ROLE系统权限。下面给出一个create role命令的实例:

create role STUDENT;

 

这条命令创建了一个名为STUDENT的role。

 

一旦创建了一个role,用户就可以给他授权。给role授权的grant命令的语法与对用户的语法相同。在给role授权时,在grant命令的to子句中要使用role的名称,如下所示:

 

grant select on CLASS to STUDENT;

现在,拥有STUDENT角色的所有用户都具有对CLASS表的select权限。

 

  1. 、删除角色

要删除角色,可以使用drop role命令,如下所示:

drop role STUDENT;

 

 

用PL/SQL Developer 建表,以及用cmd (win + r) 查询 指定用户下 有多少表

 

首先的给该用户授予一个权限 ,同样得要比它高一级以上的管理员 授予

 

Resource  是一个角色,自带 访问表的权限。

 

然后就是创建表,用PL/SQL Developer

 

语句为:

create table MAN

(

  id      NUMBER not null,

  name    VARCHAR2(8) not null,

  gender  VARCHAR2(2) not null,

  age     NUMBER not null,

  address VARCHAR2(20) default '地址不详',

  regdata DATE not null

)

Oracle 中没有int 类型,用 Number 代替

 

Oracle 和 mysql 在 查询用户有多少表 有很大不同,mysql:show tables

Oracle 为  select table_name from user_tables (这是完整的命令语句,而不是 变量语句)

 

select table_name from user_tables; //当前用户的表

select table_name from all_tables; //所有用户的表

select table_name from dba_tables; //包括系统

select table_name from dba_tables where owner=’zfxfzb’

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一彡十

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值