oracle数据库逐步学习总结【基础一】
原创作品,转载请在文章开头显眼位置注明出处:https://www.cnblogs.com/sunshine5683/p/10059955.html
一、oracle的基本命令
1、连接命令
用法:conn 用户名/密码 @网络服务名 as sysdba/sysoper
2、disc[onnection] 断开与当前数据库的连接
3、passw[ord]:修改用户密码,修改其他用户密码,需要sys/system用户
4、show user:显示当前登录用户
5、exit/quit:退出sqlplus,同时断开连接
二、文件操作命令
1、start和@ :运行sql脚本

2、spool : 将屏幕上的内容输出到制定的文件中去,注意,该命令只有spool off了才可以在文件中看到内容


查看内容


三、交互式命令
1、& :可以替代变量,该变量在执行时候需要用户输入参数

2、edit :用于编辑指定的sql脚本
四、用户管理
1、创建用户:需要sys或者system用户,create user xiaoming identified by 123; 创建的新用户没有任何权限,需要赋予权限
2、修改密码:password
3、赋予权限:grant connect to xiaoming //赋予小明连接登录数据库的权限(此处connect其实是一种角色)
grant resource to xiaoming //赋予小明创建数据表的权限

grant select on scott.emp to xiaoming //赋予小明查询emp表的权限,此时,小明可以通过select * from scott.emp 访问emp表,但是不能直接访问,即select * from emp,因为emp是scott用户的,小明只有访问权限,而不是小明自己的表,只有自己的表才可以直接访问
grant update on scott.emp to xiaoming //赋予修改表的权限
grant all on scott.emp to xiaoming //将该表的所有访问与修改等的权限赋予小明
注意:赋予一张表的权限给其他用户只有该数据表的创建者才可以,其他用户都是不可以的。
4、权限主要有:select、insert、delect、update、all、create index
5、如果希望小明可以去查询scott.emp,也希望小明可以将该查询权限授予其他用户,那么就使用到了对象权限,即在授权的后面加上 with grant option,也就是:
sql> grant select on scott.emp to xiaoming with grant option;

注意:以上的scott.emp 可以直接写出emp,因为授权者是scott,而该表也是scott自己的表,但是如果授权者不是scott,则必须写出scott.emp,比如此时小明也有将emp表的查询权限授予其他用户的权利,但是小明要给其他用户授权,就必须携程scott.emp,不能携程emp,否则会报错:表或者视图不存在!
如果是系统权限,则:system给小明权限时候:grant connect to xiaoming with admin option, 此时小明就可以给其他用户授予连接数据库的权限
6、收回权限:revoke select on scott.emp from xiaoming;
注意:收回其他用户访问数据表的权限只有该数据表的创建者才可以,其他用户都是不可以的。如果将小明的权限收回,那么小明给其他用户授予的权限也一并没有了!
7、删除用户:drop user 用户名, 注意,在删除用户时候,如果该用户已经创建了表,那么删除用户的时候需要加上cascade,即:drop user 用户名 cascade,用于删除用户以及该用户创建的表(级联删除)
8、使用profile管理用户口令(一般使用dba权限执行)
sql> create profile lock_account limit filed_login_attempts 3 password_lock_time 2 // 创建口令限制文件,意思是如果密码输入错误三次,那么锁死,锁定时间为2天,然后再次登录,如果在两天之内,就算输入正确的密码,也是无法登录,因为在两天之内该账号是锁定状态。
sql> alter user xiaoming profile lock_account; //给小明用户限定
用户解锁:
sql> alter user xiaoming account unlock; //给小明用户解锁,不至于小明账号被锁死之后两天内真的不能登录,但是该命令同样需要system为小明解锁,如果不解锁,就只能等两天了!
终止口令:为了让用户在规定时间内修改密码,同样也需要dba身份
sql> create profile myprofile limit password_life_time 10 password_grace_time 2;//创建口令文件myprofile,限定用户每隔10天修改登录密码,宽限期为2天,如果时间到了没有修改,那么断开该用户的连接,同时要求修改密码!
sql> alter user xiaoming profile myprofile;//将小明用户应用限制文件
口令历史: 如果在用户修改密码时候,不能使用以前用过的密码,那么可以使用口令历史,oracle会将口令修改的信息放到数据字典,进行密码判断
sql> create profile password_history_limit password_life_time 10 password_grace_time 2 password_reuse_time 10 //简历口令文件
其中:password_reuse_time 10: 指定口令可重用时间,即10天后就可以重用
然后分配给某个用户
口令文件的删除:当某个口令文件不想使用了,可以将其删除!
sql> drop profile password_history_limit cascade
其中cascade表示该口令文件如果已经分配给了用户,那么就的加上cascade
五、oracle表管理 (下一篇继续.....)
oracle数据库逐步学习总结【基础一】的更多相关文章
- Oracle数据库之PL/SQL基础
介绍PL/SQL之前,先介绍一个图像化工具:Oracle SQL Developer 在oracle的开发过程中, 我们难免会使用第三方开发的软件来辅助我们书写SQL, pl/sql是一个不错的sql ...
- 【Oracle教程资源大合集】Oracle数据库免费学习资源汇总
Oracle的产品非常丰富,各类学习资源也五花八门,本文将介绍Oracle官方的免费教程与风哥整理的Oracle视频教程: 1.Oracle帮助中心 Oracle帮助中心也称为Oracle文档中心,这 ...
- oracle 数据库的学习1
1.oracle 数据库常用的基本类型 char(10) -->存储固定长度的字符串 varchar2(10)-->存储可变长的字符串 Date INTEGER -->存储整数 N ...
- Oracle数据库初级学习 2
今天我们介绍Oracle数据库中剩余的查询方法,今天的查询方法会比昨天的更为复杂一些(PS:我也是个初学者,请见谅..). 一.分组函数 分组函数是为了区分同一个表中的不同数据而建立,其关键字为GRO ...
- oracle数据库逐步学习总结【基础二】
原创作品,转载请在文字开头明显位置注明出处:https://www.cnblogs.com/sunshine5683/p/10067872.html 接着上一篇,继续总结! 五.oracle表管理 首 ...
- Oracle数据库初级学习
第一天 SQL查询语句 CMD——SQLPLUS----账号 soctt 密码 tiger,输入完成后进入SQL数据库,如图显示即连接成功. 连接成功后 ,我们首先设置一下基本界面, --设置 每列显 ...
- Oracle数据库的学习
复制数据库结构到另外一数据库的的语句,首先在数据库创建链接,比如我在131数据库,dblink_018 的018为链接名称,随便取 ,可在此表查看数据库链接 select * from dba_db_ ...
- Oracle PL/SQL学习之基础篇(2)--例外
1.例外分类:系统例外.自定义例外 (1)系统例外,参见相关API文档 (2)自定义例外 定义自己的例外:就像自定义变量一样,类型为exception 抛出例外:使用raise抛出自定义例外 set ...
- Oracle PL/SQL学习之基础篇(1)
1.PL/SQL,全称Procedure Language/SQL,过程化sql语言 PL/SQL的程序结构 declare --声明部分(包括变量.光标.例外声明) begin --语句序列(DML ...
随机推荐
- Disruptor使用简介
disruptor是lmax公司开发的一款java高性能并发框架,其本质是一种类似队列的实现“生产者—消费者 ”模式的组件. 下面是其示例代码: public class DisruptorServe ...
- Mysql 练习题一
库操作: 1. 创建 数据库 create database db1; 2. 使用数据库 use db1 3. 查看表 show tables; 4. 删除 drop database db1 ...
- 本宝宝的blog介绍
这里是“小可爱酱”嘤嘤嘤~(名字提供来自星小雨哥哥) 我发现了 不管怎么努力 都会 注孤生 “对不起.” “还有,谢谢你.” 我有一个愿望. “是什么啊?” 就是,希望这个世界上的人们, ta ...
- django 获取外键对应数据的方式
模型 models.py中 from django.db import models class User(models.Model): name = models.CharField() class ...
- hdoj1072 Nightmare(bfs)
题目大意: 在迷宫中有一个炸弹,过六个单位时间就会爆炸,要你求一个起点到迷宫的终点的最短距离,迷宫中有时间重置器,当你走到这个格子,炸弹的爆炸时间重新置为0,迷宫中标识为墙壁的格子不能走,到达任意一个 ...
- 自定义android ProgressDialog
Android系统自己提供的UI的都是比较难看的,开发中经常用到自定义对话框,下面分享个最近项目中使用的加载框. 下面是源代码,主要的原理就是准备几个图片,然后循环播放. MainActivity ...
- R程序包
=== 数据基础操作 ===reshape2 横向.纵向做数据变换,例如把纵向堆叠在数据库中的证券行情数据转换成一个按照不同证券代码横向排列,按照时间纵向排列收盘价的数据表stringr 方便地用正则 ...
- (转)MySQL 线程池内幕
原文:http://blog.jobbole.com/109695/ http://mysqllover.com/?p=826 http://blog.csdn.net/hsuxu/article/d ...
- Java之集合(七)Map
转载请注明源出处:http://www.cnblogs.com/lighten/p/7327216.html 1.前言 按照顺序,本章本是要对Set的相关类进行介绍及讲解的.但是对于其实现有所了解的都 ...
- linux 命令 后台运行
转载 1.在下达的命令后面加上&,就可以使该命令在后台进行工作,这样做最大的好处就是不怕被ctrl+c这个中断指令所中断. 2. 那大家可能又要问了,在后台执行的程序怎么使它恢复到前台来运行呢 ...