oracle使用手册

转自 http://www.cnblogs.com/zfc2201/archive/2011/08/17/2143436.html

<strong>3个默认的帐户:</strong>
         sys          change_on_install      网络管理员       [ as sysdba]
         system       manage            本地管理员
         scott          tiger               超级用户
<strong>创建用户、授权和撤消权限</strong>
 
登录oracle:
         sqlplus / as sysdba
         
启动监听:
         lsnrctl start
         
启动数据库的实例:
         oradim -startup -sid orcl
         
SQL> show user ;          //显示当前用户
 
SQL> create user lisi identified by lisi;        //创建一个用户
 
SQL> grant create session to lisi;           //给用户授予会话权限
 
SQL> sqlplus lisi/lisi                   //用创建的用户进行登录
 
SQL> grant unlimited tablespace  to lisi         //给用户授予表空间权限
 
SQL> grant create table to lisi;             //给用户创建表的权限
 
SQL> create table mytable (id int );      //创建表
 
SQL> insert into mytable values (1);     //插入数据
 
SQL> select * from mytable;          //查询数据
 
SQL> drop table mytable              //删除表
 
 
SQL> revoke create table from lisi;      //撤消对表操作的权限
 
SQL> select * from user_sys_privs;     //查询当前用户拥有哪些权限
 
SQL> revoke unlimited tablespace from lisi;       //撤消对表空间操作的权限
 
<strong>丢失管理员密码怎么办?</strong>
用sys用户进行修改
 
sqlplus / as sysdba
 
alter user scott Identified by tiger;
 
oracle 9
更改口令文件
把原有口令文件删掉
E:\oracle\ora92\ database \pwdora9i.ora;
orapwd file=E:\oracle\ora92\ database \pwdora9i.ora password =sys entries=10;
 
select * from v$pwfile_users;
 
oracle 10+
更改口令文件
把原有口令文件删掉
E:\oracle\ora92\ database \PWDorcl.ora;
orapwd file=E:\oracle\ora92\ database \PWDorcl.ora  password =sys  entries=10;
 
select * from v$pwfile_users;
 
<strong>角色管理</strong>
角色就是一个权限的集合。
 
show user ;        显示当前用户
 
create role myrole;         创建一个角色
 
grant create session to myrloe;         给角色授予session权限
 
grant create table to myrole;               给角色授予表操作权限
 
create user zhangsan identified by zhangesan;       创建一个用户
 
grant myrole to zhangsan;       把角色授予给用户
 
sqlplus zhangsan/zhangsan       用户登录
 
drop role myrole;           删除角色
 
grant unlimited tablespace to myrole;       这个权限比较大,不能通过角色授权,只能授权给用户
 
<strong>权限的传递</strong>
<strong></strong>
show user :      查看当前用户
 
select * from user_sys_privs     查看当前用户的系统权限
 
grant alter any table to lisi;      sys可以授权给李四
 
grant alter any table to wangwu;        但是李四不能授权给王五
 
grant alter any table to lisi with admin option ;        //现在李四可以授权给王五了
 
grant alter any table to wangwu with admin option ;      //让王五也可以传递权限
 
create table A(id int );         //在sys中创建一个表A
 
grant select On A to lisi;      //把表操作权限传递给李四,但李四不能传递权限
 
grant select On A to lisi with grant option ;            //现在李四可以传递权限了
 
grant select on sys.A to wangwu with grant option ;;         //让王五也可以传递权限。
 
<strong>系统权限与对象权限</strong>
 
SQL> create user wanwu identified by wangwu
 
SQL> grant create session to wangwu;
 
SQL> sqlplus wangwu/wangwu
 
SQL> grant create table ,unlimited tablespace to wangwu;
 
SQL> create table mytab(id int );
 
SQL> insert into mytab values (2);
 
用lisi访问wangwu 的表,不能访问
SQL> select * from wangwu.mytab;
 
用sys用户访问wangwu 的表,可以,要执行两次
SQL> select * from wangwu.mytab;
SQL> select * from wangwu.mytab;
 
让lisi可以访问wangwu的表
SQL> grant select on mytab to lisi;      //把查询权限授予李四
 
SQL> grant insert on mytab to lisi;      //把插入权限授予李四
 
SQL> commit ;     //提交后才显示数据
 
SQL> grant all on mytab ot lisi;     // 把操作表的最大权限授予李四
 
SQL> revoke all on mytab from lisi;    // 撤消李四对表操作的权限
 
 
 
SQL> disconn
 
SQL> conn wangwu/wangwu
 
SQL> commit :    //每次对表操作后要提交
 
SQL> alter table mytab add name varchar (50);
 
SQL> insert into mytab values (1, 'zhang' );
 
SQL> insert into mytab values (2, 'li' );
 
SQL> insert into mytab values (3, 'wang' );
 
SQL> commit ;
 
SQL> grant update ( name ) on mytab to lisi;        //让李四只有更新 name 列的权限
 
SQL> grant insert (id) on mytab to lisi;          //让李四只有插入id列的权限
 
SQL> update wangwu.mytab set name = 'lihuoming' where id=1;
 
 
<strong>帐户管理细节</strong>
 
1.三个常用的系统用户:
         scott(一个数据库的普通用户)
         conn scott/tiger
         
         manager(数据库管理员)
         conn system/manager
         
         sys(数据库对象的拥有者权限最高)
         conn sys/change_on _install as sysdba
         
创建用户的完整格式:
         create user 用户名 identified by 密码
         default tableSpace 表空间
         Temporary TableSpace 表空间
         Quota 整数[ K | M | Limited | unlimited ] on 表空间
         
         例子:
         create user abc
         identified by 123
         default tablespace Users
         Temporary tablespace Temp
         Quota 50M on Users
         
         
限制用户:
         用户加锁    --  alter user 用户名 account lock
         用户解锁  --    alter user 用户名 account unlock
         用户口令即刻失效 --  alter user 用户名 password expire
         
删除用户:
         drop user 用户名 [ CasCade ]
         CasCade 表示删除用户所有对象
         
         示例:
         drop user abc cascade ;
ORACLE 完全学习手册 第二章 oracle 体系结构概述 在system用户下 DESC dba_data_files; SELECT file_name,bytes,blocks,status,autoextensible FROM dba_data_files WHERE tablespace_name='SYSTEM'; 第四章 表空间 DESC dba_tablespaces; SELECT tablespace_name,extent_management,allocation_type FROM dba_tablespaces; 第七章 SQL基础 SELECT table_name FROM user_tables; SELECT * FROM dept; SELECT deptno,dname FROM dept; --显示EMP表中工资高于2000的雇员 SELECT ename,sal FROM emp WHERE sal>2000; --显示EMP表中雇员名字是KING的雇员信息 SELECT ename,job,hiredate,sal FROM emp WHERE ename='KING'; --显示EMP表中在"01-1-82"这后雇佣雇员 SELECT ename,sal,hiredate FROM emp WHERE hiredate>'01-1月-82'; SELECT ename,sal,hiredate FROM emp WHERE hiredate>to_date('1-1月-1982','dd-mon-yy'); --显示EMP表中工资在1000~2000之间 SELECT ename,sal,hiredate,job FROM emp WHERE sal BETWEEN 1000 AND 2000; --显示首字符为S的所有雇员名及其工资 SELECT ename,sal FROM emp WHERE ename LIKE 'S%'; --显示第三个字符为大写A的所有雇员名及其工资 SELECT ename,sal FROM emp WHERE ename LIKE '__A%'; --查询EMP表中工资为1250和3000的雇员信息 SELECT ename,sal FROM emp WHERE sal IN(1250,3000); --查询EMP表中部门号为20且岗位为CLERK的所有雇员信息 SELECT ename,sal,job,deptno FROM emp WHERE deptno=20 and job='CLERK'; --查询工资高于2500或岗位为MANAGER的所有雇员信息 SELECT ename,sal,job,deptno FROM emp WHERE sal>2500 or job='MANAGER'; --查询EMP表中部门号不为10,30或40且岗位是CLERK的所有雇员信息 SELECT ename,sal,job,deptno FROM emp WHERE deptno NOT IN(10,30,40) AND job='CLERK'; --工资升序显示雇员信息 SELECT ename,sal FROM emp WHERE deptno=30 ORDER BY sal; --降序显示雇员工资 SELECT ename,sal FROM emp WHERE deptno=30 ORDER BY sal DESC; --工资升序 补助降序显示雇员信息 SELECT ename,sal,comm FROM emp WHERE deptno=30 ORDER BY sal asc,comm desc; --显示每个部门的平均工资和最高工资 SELECT deptno,avg(sal),max(sal) FROM emp GROUP BY deptno; --显示每个部门每种岗位的平均工资和最高工资
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值