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 ...
随机推荐
- 使用session的监听器获取当前在线人数
1首先在web.xml中配置Session的监听器 2创建监听器并且继承HttpSessionListener 3.在jsp中导入监听器 4.获取当前在线人数 5.配置到公共网络(使用natapp的免 ...
- Python 将时间戳转换为本地时间并进行格式化
在python中,时间戳默认是为格林威治时间,而我们为东八区 使用localtime() 本地化时间戳 使用 strftime() 格式化时间戳 time = time.strftime('%Y%m% ...
- 队列的实现——c++
一.介绍 队列(Queue),是一种线性存储结构.它有以下几个特点:(01) 队列中数据是按照"先进先出(FIFO, First-In-First-Out)"方式进出队列的.(02 ...
- python 爬图 helloworld
最近发现 吾志 上用户的头像都很个性,另外,对于没有把日记设为私密的用户,最后一天的日记是公开的,谁都可以查看. 所以,如果每天把所有可查看的日记爬一遍,那么-- 哈哈 以前对爬虫只是了解一点点,没有 ...
- JavaScript ES6 核心功能一览(转)
原文地址:Overview of JavaScript ES6 features (a.k.a ECMAScript 6 and ES2015+) 原文作者:Adrian Mejia 译文出自:掘金翻 ...
- maven 服务器搭建 -- nexus
参考文档 http://blog.sina.com.cn/s/blog_5745d6cb0100hasa.html 首先下载nexus webapp,可以使用wget来下载: Java代码 wget ...
- Python小白学习之路(十)—【函数】【函数返回值】【函数参数】
写在前面: 昨天早睡之后,感觉今天已经恢复了百分之八十的样子 又是活力满满的小伙郭 今日份鸡汤: 我始终相信,在这个世界上,一定有另一个自己,在做着我不敢做的事,在过着我想过的生活.-------宫崎 ...
- Newtonsoft.Json 序列化 排除指定字段或只序列化指定字段
using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using System; using System.Collections.G ...
- (转)rpm2cpio和cpio
原文:https://blog.csdn.net/jubincn/article/details/6687550 rpm2cpio命令:将rpm格式的文件转为cpio格式的文件.rpm是linux中常 ...
- 快捷键&小技巧
shift+鼠标滚轮:实现左右移动 alt+鼠标左键双击:打开属性 chrome中在F12下的Element中,可以先选中某一项,可以直接按住F2进行编辑 chrome中element的右下方我们可以 ...