oracle 进阶三(索引、权限,角色)
来源:互联网 发布:java线程池使用demo 编辑:程序博客网 时间:2024/06/05 03:27
索引
加速数据的存取,合理的使用索引可以大大降低i/o 的次数,提高访问的性能
单列索引:基于单个列所建立的索引
create index 索引名 on 表名(列名);
复合索引:基于多个列的索引,同一个表可以有多个索引,但是要求列的组合必须不能,意思就是不能对于相同的组合列,添加多个索引
create index emp_index1 on emp(ename,jop);
create index emp_index2 on emp(ename,sal);
使用原则:
1. 大表上建立索引
2. 在where子句或者连接条件上建立索引
3. 索引的层次不能超过四层
索引的缺点:
1. 建立索引,系统要占用大约为表的1.2倍的硬盘空间;
2. 更新数据的时候,系统必须要有额外的时间来对索引进行更新,以维护数据和索引的一致性
3. 不恰当的索引会影响系统性能。
显示索引的信息:(suer_indexs、dab_indexs)
select index_name,index_type fromuser_indexs where table_name=’表名’;
显示索引列:
select table_name,colum_name from user_ind_columswhere index_name=’索引名’;
权限和角色
在创建用户的时候,新用户没有任何操作数据库的能力;需要给他分配系统权限和对象权限才可以操作数据库。
系统权限:用户对数据库的操作,例如可不可以登陆数据库,可不可以建表等
create session 连接数据库、create table 建表、createview 建试图
create public synonym 建同义词、createprocedure 建存储过程,函数,包
create trigger 建触发器 create cluster 建簇
查看系统权限select * from system_priviege_map order by name;
授予系统权限(dba用户)
grant create session,create table to kenwith admin option;//授予ken用户创建表的权限,并且它可以把这个权限授予其他用户。
grant create cview to ken;//仅仅把createview权限授予ken自己,它不能把这个权限授予别人
回收系统权限:
一般情况下,回收系统是由dba来完成的,回收的也仅仅时自己的权限,不会涉及到其他人
revoke create session from ken;//回收ken用户的创建会话的权限、
对象权限:用户对表或者试图的操作,增删改查
alter 修改 、delete 删除、select 查询、inster 插入、update 修改数据
index 索引 reference引用、excute 执行
查询对象权限:
select distinct privilege from dba_tab_privs;
grant select on socct.emp to ken;//整个表
grant all on socct,emp(sal) to ken;// 一列
with grant option 被授予的用户可以把授予的权限授予其他用户(只能给用户)
回收用户权限:revoke 如果用户把授予的用户权限收于了其他用户,那么其他用户的也会受到牵连
revoke select on emp from ken;
方案:创建用户时oracle数据库会自动声称一个与用户名想同的方案;(数据对象,表、试图、触发器、存储过程)
角色:包含多种权限,使用角色为了简化权限的管理。分为预定义角色,自定义角色
预定义角色:connect、resource、dba
connect 角色:alter session、createcluster、create database link、create session、
create table、 create view、createsequence
resource角色:createtable\create indextype\create cluster\create type\create procedure \createtrigger
dba 角色:所有的系统权限
自定义角色:具有create role 的系统权限的用户
建立角色:create role 角色名 notidentified;
create role 角色名 identified by 验证密码;
给角色授予权限(dba用户):注意用户权限不可以with admin option
grant create session to 角色名 withadmin option;
drop 角色名; //删除角色,删除角色后,被授予该角色的用户也没有相应的权限l;
查询角色:
select * from dab_roles;\\查询所有角色
select privilege,admin_optin fromrol_sys_privs where role=’角色名’;//显示角色所有的系统权限
sys_tab_privs//查询用户权限
查询用户拥有的角色
select grabted_role,default_role fromdab_role_privs where granter=’用户名’
- oracle 进阶三(索引、权限,角色)
- Oracle索引、权限 角色
- oracle基础教程(第五天)管理索引、权限和角色
- Oracle常用命令07(约束,索引,权限,角色)
- oracle的学习五:数据的完整性、索引、权限、角色
- Oracle学习笔记之数据完整性、索引、权限、角色
- Oracle学习笔记(三)——Oracle用户的管理、权限与角色
- 权限组件之三(角色)
- 权限组件之三(角色)
- RabbitMQ 三 角色权限
- 06-Oracle权限传递、角色管理、三种验证机制
- oracle 权限与角色
- oracle 权限与角色
- oracle 权限与角色
- oracle权限及角色
- oracle 权限与角色
- oracle 权限与角色
- oracle 权限与角色
- 3402 数据结构实验之排序五:归并求逆序数
- struct 成员的对齐方式
- Java中用字节数组表示整数和用整数表示字节数组
- C#总结之异常处理
- SETI--高斯消元
- oracle 进阶三(索引、权限,角色)
- CSS选择器 first-child 、first-of-type 和 nth-of-type()
- web小记(一)
- 什么是HTML5(一):语义
- 中缀转后缀表达式,以及表达式的值
- [读书笔记]程序员的自我修养 chp11
- SpringMVC @RequestBody接收Json对象字符串
- 初识-IIS(互联网信息服务)
- sql map