黑马程序员c语言教程:Oracle概念(7)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“黑马程序员c语言教程”。
十六、控制用户访问 1.权限的类别
系统级权限: 针对整个系统操作的权限 如: 用户名/密码, 使用表空间的限额等
对象级权限: 针对某个具体object操作的权限
如: 针对某个表, 视图, 表的某个字段的select, update, delete权限 23
J2EE @ zxw 2.查看当前数据库的用户信息
SQL>select username,default_tablespace,temporary_tablespace from dba_users;查看在线用户信息 SQL>select count “number”,username “current username” from v$seion group by username;用户查看自己的缺省表空间SQL>select username,default_tablespace from user_users;3.创建新用户
SQL> create user username identified by paword default tablespace tablespace_name temporary tablespace temp quota unlimited on tablespace_name quota 1k on system [quota 1k on other_tablespace_name „„];给用户赋权限
SQL> grant connect, resource to username;查看当前用户的权限角色
SQL> select * from user_role_privs;查看当前用户的系统权限和表级权限
SQL> select * from user_sys_privs;SQL> select * from user_tab_privs;4、常用的角色及其权限
CONNECT 8 privs 连上Oracle,做最基本操作 RESOURCE 8 privs 具有程序开发最的权限 DBA 114 privs 数据库管理员所有权限
EXP_FULL_DATABASE 5 privs 数据库整个备份输出的权限 IMP_FULL_DATABASE 64 privs 数据库整个备份输入的权限 查看角色明细的系统权限
SQL> select * from role_sys_privs;
5、改变老用户 可以改变老用户的密码, 缺省表空间, 临时表空间, 空间限额.SQL> alter user username identified by paword default tablespace tablespace_name temporary tablespace temp quota unlimited on tablespace_name quota 1k on system
[quota 1k on other_tablespace_name „„];撤销用户的角色或权限
SQL> revoke role_name or priv_name from username;注意事项
撤消用户的角色dba时, 同时撤消了用户unlimited tablespace的系统权限, 切记要再次赋予resource角色给此用户 SQL> grant resource to username;
6、删除用户
如果用户下没有任何数据对象 SQL> drop user username;如果用户下有数据对象
SQL> drop user username cascade;注意事项
如果用户下有含clob,blob字段的表, 应该先删除这些表后,才能用cascade选项完全删除.7、角色的概念和管理 24
J2EE @ zxw 角色是命名多个相关权限的组合.能把它赋于其它的用户或角色我们能创建角色, 使权限管理更容易一些.8、赋于系统的权限语法和例子 语法: SQL> GRANT sys_priv TO {user|role|PUBLIC} [WITH ADMIN OPTION];例子: SQL> GRANT create seion TO sue, rich;SQL> GRANT create table To scott, manager;注意: 如果用WITH ADMIN OPTION通过中间用户赋于的系统权限中间用户删除后, 系统权限仍然存在.9、赋于数据对象级的权限语法和例子 语法: SQL> GRANT object_priv [(columns)] ON object TO {user|role|PUBLIC} [WITH GRANT OPTION];例子: SQL> GRANT select ON s_emp TO sue, rich;SQL> GRANT update(name, region_id)ON s_dept TO scott, manager;注意: 如果用WITH GRANT OPTION通过中间用户赋于的对象权限 中间用户删除后,对象权限就不存在了.-------------
----------------------------完--------------------------补充:
rownum表中的行号,自动生成的,只能用 10 and a
J2EE @ zxw SQL> select courseid, coursename ,score ,decode(sign(score-61),-1,'fail','pa')as mark from course_v;COURSEID COURSENAME SCORE MARK----------------------------------1 java 70 pa 2 oracle 90 pa 3 xml 40 fail 4 jsp 30 fail 5 servlet 80 pa
(3)已经知道原表
year salary---------------------------------------2000 1000 2001 2000 2002 3000 2003 4000 显示查询结果
year salary---------------------------------------2000 1000 2001 3000 2002 6000 2003 10000 即salary为以前年的工资的和; 解答过程如下:
select b.year,sum(a.salary)from test a,test b where a.year
/*============================== *Author: MartriWang@gmail.com *Date: 09/05/2007 *Description:ORACLE Summary
*============================*/ 汇总:
set autotrace on set autotrace traceonly explain set timing on 或通过SQL*PLUS trace,然后查看user_dump_dest下的跟踪文件,使用tkprof工具格式化后阅览。
alter seion set events '10046 trace name context forever,level 12';alter seion set events '10046 trace name context off';SELECT p.spid,s.username FROM v$seion s,v$proce p WHERE s.audsid=USERENV('seionid')AND s.paddr = p.addr;使用方法示例:
DBserver% sqlplus perf/perf
SQL*Plus: Release 9.2.0.6.064bit Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.6.0-Production SQL> set timing on SQL> set autotrace on SQL> select count(*)from perf_sdcch_nn where start_time =(select max(start_time)from perf_sdcch_nn);COUNT(*)----------638 Elapsed: 00:00:00.80 Execution Plan---------------------------0 SELECT STATEMENT Optimizer=CHOOSE(Cost=1 Card=1 Bytes=8)1 0 SORT(AGGREGATE)2 1 INDEX(RANGE SCAN)OF 'IDX02_PERF_SDCCH_NN'(NON-UNIQUE)(Cost=2 Card=1495 Bytes=11960)3 2 SORT(AGGREGATE)4 3 INDEX(FULL SCAN(MIN/MAX))OF 'IDX02_PERF_SDCCH_NN'(NON-UNIQUE)(Cost=1 Card=3852090 Bytes=30816720)Statistics---------------------------0 recursive calls 0 db block gets 15 consistent gets 0 physical reads 0 redo size 492 bytes sent via SQL*Net to client 656 bytes received via SQL*Net from client 2 SQL*Net roundtrips to/from client 0 sorts(memory)0 sorts(disk)1 rows proceed SQL> 从上面的示例我们可以看到,该SQL语句执行花了0.8秒,select语句和inline view,都使用了名为'IDX02_PERF_SDCCH_NN'的索引
物理读为0,redo log size为0,没有生成REDO日志。
一、选择行1.简单的SELECT 语句SELECT 字段名1 [AS] '字段名1 解释' FROM table; 2.处理NULL NVL函数可把NULL转换成其它类型的符号编程技巧: NVL函数在多条件模糊查询的......
四、从多个表里选取数据记录 1.数据表间的连接 简单的连接语法: SELECT 字段名1, 字段名2, …… FROM 表名1, [表名2, ……] WHERE 表名1.字段名 = 表名2.字段名 [ AND ……......
七、在执行SQL语句时绑定变量1.接收和定义变量的SQL*PLUS命令 ACCEPT DEFINE UNDEFINE & 2.绑定变量SQL语句的例子(1) SQL> select id, last_name, salary from s_emp where......
--sql structured query language --DML--Data Manipulation Language--数据操作语言 query information (SELECT), add new rows (INSERT), modify existing rows (UPDATE)......
------------------------- --order by的用法--员工信息按照姓名正序排列select * from emp order by ename asc; --员工信息按照倒叙排列select * from emp order by ename......