本文主要介绍如何创建和删除用户,当然里面牵涉很多知识,慢慢道来。

1,创建用户

需求:假设你是oracle管理员,当一个同事入职,你需要分配给一个账号。

创建用户,一般需要有相应权限的用户才可以创建用户.

create user 用户 identified by 密码

举例,创建一个普通用户yfy,这里我们用管理员来创建。

create user yfy identified by m123

[oracle 要求用户密码不能以数字开头],但是我试了没有问题。

此时用小明登录是不可以的。conn yfy/m123;登录之后会退出数据库连接。

Oracle刚刚创建的用户是没有任何权限的,需要管理员分配相应的权限才能够登录。

如何给用户分配相应的权限?

grant create [resource] to yfy;

如果需要登录resource改为session;其他权限以后再讲;

当然授权给某个用户一些权限,也可以回收权限。

revoke create [resource]  from yfy



创建用户细节:

aql->create user 用户名 identified by 密码                                  --------------------------这一行和上面的一样 

default tablespace users                             默认表空间 ---------------------------用户的表空间在users上

temporary tablespace temp                          临时表空间 ---------------------------用户的临时表空间在temp上

quota 3m on users                            ------------------3m表示建立的数据的对象(表,索引等)最大只能是3m(兆)。 

表空间: 表存在的空间,一个逻辑概念。一个表空间指向一个文件。Oracle事先提供默认的表空间,创建用户的时候就会在默认的表空间。

2,角色

预定义角色: dba,connect,resource 见下图。

把常用的权限集中起来,形成一个角色,根据需求有几种,因此有时候管理员不是分配给某个用户某个权限,而是把一个角色分配给用户,那么这个用户将拥有一系列权限。

自定义角色:管理员觉得现在这些角色不满足当前用户的权限要求,可能把某一系列的权限定义为一个角色。

由此可知,上面的grant create session to yfy; 是分配给用户yfy一个系统权限。如果我们嫌给一个用户一个个的分配权限很麻烦就分配给他一个角色,这个角色包含的权限就比较多。那么如何分配角色呢?

grant 角色 to 用户

例如分配给yfy一个resource角色:grant resource to yfy;

当然分配了角色就要回收角色,命令如下:

revoke 角色 from用户

例如回收yfy的resource角色:revoke resource from yfy;


3,删除用户

删除这个用户

drop user 用户 [cascade];

cascade:当删除一个用户的时候,如果这个用户已经创建过数据对象,那么删除这个用户的时候,必须用cascade,表示把这个用户的同时,把该用户创建的对象一同删除。


4,综合案例

创建一个用户xiaohong,然后给他分配两个角色,可以登录,修改密码,然后回收角色,最后删除用户。

(1) 使用system创建xiaohong

create user xiaohong identifid by m123

(2) 给xiaohong分配两个常用的角色

grant connect to xiaohong;

grant resource to xiaohong;

(3) 让xiaohong登录

conn xiaohong/m123;

(4) 让xiaohong修改密码

passw 或者password;回车之后再改。命令之后可以加上用户名,不加就是修改当前用户;

(5) 回收角色

revoke connect from xiaohong;

revoke resource from xiaohong;

(6)   删除这个用户

drop user xiaohong [cascade];


5,方案

方案schema

当一个用户创建好了之后,如果该用户创建了任意一个数据对象,这时我们的dbms就会创建一个对应的一个方案和用户同名。

需求: 让xiaohong用户可以查询scott的enp表;

步骤如下:

(1)先用scott登录                    conn scott/scott;

(2)赋权限                              grant select [update|delete|insert|all] on emp to xiaohong;

(3)然后xiaohong登录后查询        select * from scott.emp;

方案其实就是说对于每创建一个用户,该用户的数据都在此方案中,别人是看不到的,如果想让别人对你的某些数据有某些权限,则可以赋予,然后对方可以在操作时加上方案名即可操作。

oracle学习笔记一:用户管理(2)创建删除用户的更多相关文章

  1. Oracle 学习笔记3:新建数据库没有scott用户解决办法

    新建一个数据库,若选择Oracle组件时,没有选择实例方案,完成后进行口令管理,默认列表中是找不到scott用户解锁的.若要解锁scott用户,可以进行如下操作: 使用system或者sys连接数据库 ...

  2. blfs(systemd版本)学习笔记-编译安装sudo并创建普通用户配置sudo权限

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! blfs书中sudo的安装配置章节:http://www.linuxfromscratch.org/blfs/view/stab ...

  3. blfs(systemv版本)学习笔记-编译安装sudo并创建普通用户配置sudo权限

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! blfs书中sudo的安装配置章节:http://www.linuxfromscratch.org/blfs/view/8.3/ ...

  4. oracle 学习笔记--用户管理

    oracle 用户管理 创建用户(需要具有dba权限的用户) create user 用户名 identified by 密码 defaule tablespace users     //默认表空间 ...

  5. Spring MVC 学习笔记8 —— 实现简单的用户管理(4)用户登录

    Spring MVC 学习笔记8 -- 实现简单的用户管理(4)用户登录 增删改查,login 1. login.jsp,写在外面,及跟WEB-INF同一级目录,如:ls Webcontent; &g ...

  6. Oracle学习笔记—数据字典和常用命令(转载)

    转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...

  7. Android学习笔记——Activity的启动和创建

    http://www.cnblogs.com/bastard/archive/2012/04/07/2436262.html Android Activity学习笔记——Activity的启动和创建 ...

  8. Linux内核学习笔记-2.进程管理

    原创文章,转载请注明:Linux内核学习笔记-2.进程管理) By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  9. golang学习笔记5 用bee工具创建项目 bee工具简介

    golang学习笔记5 用bee工具创建项目 bee工具简介 Bee 工具的使用 - beego: 简约 & 强大并存的 Go 应用框架https://beego.me/docs/instal ...

  10. linux kernel学习笔记-5内存管理_转

    void * kmalloc(size_t size, gfp_t gfp_mask); kmalloc()第一个参数是要分配的块的大小,第一个参数为分配标志,用于控制kmalloc()的行为. km ...

随机推荐

  1. mysql 存储过程 与 循环

    mysql 操作同样有循环语句操作,三种标准循环模式:while, loop,repeat, 外加一种非标准循环:goto [在c或c#中貌似出现过类型循环但是一般不建议用!] 一般格式为:delim ...

  2. 单元测试使用spring注解获取bean

    在实际项目开发中经常会有单元测试,单元测试中经常会用类似这样的代码片段获取spring管理的bean @Test public void testSendEmail(){ MessageService ...

  3. Oracle存储过程in、out、in out 模式参数

    Oracle存储过程in.out.in out 模式参数 标签: oracle存储inout参数 2016-11-14 11:59 3272人阅读 评论(0) 收藏 举报  分类: oracle(7) ...

  4. java8 数据结构的改变(一)

    在JDK1.6,JDK1.7中,HashMap采用数组+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里.但是当数组中一个位置上的元素较多,即hash值相等的元素较多时,通过key ...

  5. java中的内存模型

    概述 Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很多,该语言针对多种异构平台的平台独立性而使用的多线程技术支持也是具有开拓性的一面,有时候在开发Jav ...

  6. Qt5+VS2010的安装及使用

    在我的博客<Win7下Qt5的安装及使用>中讲解了win7下Qt5+MinGW的安装及使用,本节再讲解win7下Qt5+VS2010的安装及使用.利用Qt5+MinGW开发应用程序比较麻烦 ...

  7. MySQL学习笔记-MySQL数据库优化实践[转]

    最近一段时间,我们整理了一些关于Percona,Linux,Flashcache,硬件设备的优化经验,分享给大家: 硬件 1.开启BBWC RAID卡都有写cache(Battery Backed W ...

  8. python——处理xls表格

    因为工作需要,现有一个运营商导出的xls固定电话话费账单. 账单比较详细,而我最终需要的数据只有那个号码这个月用了多少话费的统计结果. 当年没有好好学office,以致于无从下手.泪奔/(ㄒoㄒ)/~ ...

  9. Delphi XE2有什么新功能

    具体内容见PDF Delphi XE2有什么新功能Delphi XE2提供(offers)了令人兴奋(exciting)的新功能,让您能够建立高度可视化的,在Windows,Mac和iOS上的业务应用 ...

  10. [Robot Framework] 通过SikuliLibrary可以获取到图片,但是点击失效

    执行时,可以看到鼠标已经移动到图片上了,但是点击失效,日志也没有报错 后来发现是windows权限的问题. 通过打开Control Panel->System and Security-> ...