3个默认的用户
sys //网络管理员 权限由上到下降低 【最后加上 as sysdba】
system //本地管理员
scott //普通用户 默认密码:tiger
创建用户:show user;//显示用户
create user lisi identified by lisi;(前面为用户名,后面为密码)
drop user lisi;//删除用户lisi
grant create session to lisi;(给用户授予session权限,不然连登陆的权限都没有)
grant create table to lisi;(给用户授予创建表的权限)(其它权限不用授予,及有创建权限自动拥有查找、修改、删除权限)
grant unlimited tablespace to lisi;(授予用户不受上线的表空间权限,无空间权限也无法创建表)
grant create any table to public;//将创建表的权限授予给所有用户,其它权限类推
revoke create table from lisi;//撤销lisi创建表的权限
创建表:
create table mytable (id int);//创建表
insert into mytable (id)values(1);//插入表
select * from mytable;//查询
drop table mytable;//删除表
commit;//手动保存数据
查看当前用户所有权限(数据字典不同)
select * from user_sys_privs;//查看系统权限
select * from user_tab_privs;//查看对象权限
select * from user_col_privs;//查看列权限
其它用户查看某个用户的表:(所有事物必须提交,不然没有数据 【commit】)
sys查看: select * from wangwu.wangtable; //必须要标注好访问谁的数据表,不然oracle会默认访问自己的表而出错
普通用户未经授权是无法访问其它用户的表的;授权如下(访问及select)
sys给lisi授权:
grant select on wangwu.wangtable to lisi;//授予lisi访问wangwu的wangtable的权限
wangwu给lisi访问授权:(select)
grant select on wangtable to lisi;
grant select on wangtable to public;//将查询权限授予给所有用户
wangwu给lisi授予插入权限:(insert)
grant insert on wangtable to lisi;
wangwu授予lisi所有权限(及增删改查);
grant all on wangtable to lisi;
wangwu撤销对lisi的所有权限(仅限wangtable表);
revoke all on wangtable from lisi;
wangwu对wangtable添加一列:
alter table wangtable add name varchar(10);//添加name列
wangwu授权lisi更新name列的权限:
grant update(name) on wangtable to lisi;//仅能更新name列
wangwu授权lisi插入id列的权限:
grant insert(id) on wangtable to lisi;//仅能插入id列
系统权限由系统权限授予,对象权限者是谁拥有谁授予
系统权限的传递:
grant alter any table to lisi;//授予lisi修改任何表的权限,但是lisi没有权限授予wangwu它lisi已有的系统权限
grant alter any rable to lisi with admin option;//这个就是对lishi权限的补充,让他有权限去将自己的系统权限授予wangwu
然后lisi可以进行如下操作:
grant alter any table to wangwu;
grant alter any table to wangwu with admin option;//如上类推
对象权限的传递:
grant select on A to lisi with grant option;//系统赋予lisi权限,让lisi有传递对象传递的权限
grant select on A to lisi with grant option;//如上类推
角色:角色就是权限的集合
create role myrole;//创建一个角色myrole
grant create session to myrole;//赋予session权限给myrole
grant create table to my role;//赋予创建表的权限给myrole
grant myrole to zhangsan;//将myrole的权限赋予给zhangsan
drop role myrole;//删除角色
有的系统权限是无法授予给角色的:
grant unlimited tablespace to myrole;//无法授予权限给myrole角色,该权限太大,要直接授予给用户
grant create table to myrole;//可以,只能给自己新建一个表
grant create any table to myrole;//可以,不仅能给自己新建一个表,还可以给其它用户新建一个表
grant alter any table to myrole;//可以
grant alter table to myrole;//错误
grant drop any table to myrole;//可以
grant drop table to myrole;//错误
表属于某个用户
角色不属于某个用户
用户密码丢失:
管理员不能查看密码,但是可以更改密码
alter user lisi identified by zhangsan; //将lisi的密码改zhangsan(原始密码为lisi)
oracle数据库的三种验证机制:
1、操作系统验证//sysdba和sysoper用验证机制此种
2、密码文件验证//sysdba和sysoper用验证机制此种
3、数据库验证
linux和unix下 oracle的启动顺序:
1、lsnrctl start (启动监听)
2、新版本:
sqlplus / as sysdba【或者 sqlplus sys/oracle as sysdba】
早期版本:
sqlplus / nolog
conn sys/oracle as sysdba
3、startup (启动数据库)
windows下 oracle的启动顺序:
1、lsnrctl start (启动监听)
2、oradmin -starup -sid orcl
要先打开服务和监听器(否则无法连接数据库【可以直接按下O找到以O开头的服务或者在我的电脑图标右键。。。】):
就可进去操作数据库了:
当然navicat也是可以的:
- Oracle数据库之 PL SQL 学习笔记
1.定义基本变量: 2.引用型的变量: set serveroutput on declare pename emp.ename%type; psal emp.sal%type; begin ...
- oracle数据库升级记(记一次10.2.0.3版本升级到11.2.0.1版本的过程)
操作系统:windows xp 已有数据库版本:10.2.0.3 升级目标版本:11.2.0.1 步骤大纲: 在源操作系统(安装有10.2.0.3数据库的操作系统)上安装11.2.0.1数据库软件,然 ...
- Oracle数据库的入门之一
Oracle的介绍: Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位的产品.可以说Oracle ...
- 给同为.NET开发者普及一点Oracle数据库经验
前段时间,因为要给自己开发的搜易站内搜索引擎增加Oracle数据库的支持,所以学习了下Oracle的基础知识,发现使用方式跟MYSQL,MSSQL等数据库的思维有很大的不同,总结一下几点不同,希望给初 ...
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...
- [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了
[译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 本文首发自:博客园 文章地址: https://www.cnblogs.com/yilezhu/p/ ...
- 面试题: 数据库 oracle数据库 已看1 意义不大 有用
Oracle数据库面试题总结 2017年04月27日 22:41:44 阅读数:9271 1.SQL语句分类 DQL(数据查询语言)select DML(数据操作语言)insert.delete.up ...
- MyEclipse 连接Oracle数据库(初学者必看)
前言:刚接触Oracle数据库,便有一个需求,编写控制台程序,实现主人登录.数据库为Oracle.下面详细介绍一下MyEclipse 连接Oracle数据库. package DbHelp; im ...
- Oracle数据库 —— DDL
时间:2016-10-5 14:55 逆风的方向更适合飞翔我不怕千万人阻挡只怕自己投降 --------------------------------------- 一.表的创建与管理1.表的基本操 ...
随机推荐
- 如何正确使用$_SERVER['DOCUMENT_ROOT']识别该路径的文件
echo $_SERVER['DOCUMENT_ROOT']; 这时输出当前文件所在的路径 D:/phpStudy/WWW/study/php&mysql $_SERVER['DOCUMENT ...
- ANdroid URL
1 Android开源项目和工具分类 http://blog.csdn.net/shimiso/article/details/40889361 2 分享45个android实例源码 http://w ...
- SCOI2009粉刷匠
Description windy有 N 条木板需要被粉刷. 每条木板被分为 M 个格子. 每个格子要被刷成红色或蓝色. windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色. 每个 ...
- mybatis2
正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Sessio ...
- js 截取字符串,取指定位置的字符(完善中)
1.获取字符串的最后一位或第一位 str.charAt(str.length - 1); str.charAt(0);
- 【c#】对象转json字符串/字符串转Json对象
using Newtonsoft.Json; 一.Hashtable => Json Hashtable hash = new Hashtable(); hash.Add("key1& ...
- 【转】 如何使用Valgrind memcheck工具进行C/C++的内存泄漏检测
系统编程中一个重要的方面就是有效地处理与内存相关的问题.你的工作越接近系统,你就需要面对越多的内存问题.有时这些问题非常琐碎,而更多时候它会演变成一个调试内存问题的恶梦.所以,在实践中会用到很多工具来 ...
- ssh框架的工作原理
struts2的工作原理 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextClea ...
- BeautifulSoup学习笔记
1.如果tag最内层只有一个 NavigableString 类型子节点,那么这个tag可以直接使用tag.string 得到子节点 # encoding=utf-8 from bs4 import ...
- Web之路笔记之三 - 使用Floating实现双栏样式
2014秋季学期Web2.0课程实验 <Lab2 - Journal> 1. 对CSS的BOX MODEL进行亲密接触,理解他的用途. 2. 在float图片的时候,发现此时图片脱离了原来 ...