Oracle 常用下令总结

打印 上一主题 下一主题

主题 1914|帖子 1914|积分 5742

一、数据库启动 & 关闭&检察

1、启动数据库

  1. SQL> startup nomount;
  2. SQL> alter database mount;
  3. SQL> alter database open;
复制代码
2、关闭数据库

  1. SQL> shutdown immediate;
复制代码
3、毗连数据库



  • 登陆平凡用户
  1. SQL>sqlplus 用户名/密码@实例名//登陆普通用户,@实例名可省略
复制代码


  • 登陆sys帐户
  1. SQL>sqlplus / as sysdba;//登陆 sys 帐户
复制代码
  说明:sys :体系管理员,拥有最高权限
system :本地管理员,次高权限
scott :平凡用户,密码默认为tiger,默认未解锁
  4、检察数据库名

  1. SELECT NAME FROM V$DATABASE;
复制代码
5、检察实例



  • Linux下检察oracle上已启动实例,假如多实例,会展示多个smon进程
  1. ps -ef|grep smon
复制代码


  • 检察当前启动的实例
  1. SQL>select * from global_name;
复制代码


  • 检察默认实例
  1. $ echo $ORACLE_SID
复制代码


  • 切换实例
  1. $ export ORACLE_SID=实例名
复制代码
二、用户

1、创建用户

  1. create user 用户名 identified by 密码;
复制代码
2、重置密码

  1. alter user 用户名 identified by 密码;
复制代码
3、账户解锁

  1. alter user 用户名 account unlock;
复制代码
4、账号赋权

  1. grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限
  2. grant unlimited session to zhangsan;//授予zhangsan用户使用表空间的权限
  3. grant create table to zhangsan;//授予创建表的权限
  4. grant drop table to zhangsan;//授予删除表的权限
  5. grant insert table to zhangsan;//插入表的权限
  6. grant update table to zhangsan;//修改表的权限
  7. grant alert all table to zhangsan;//授予zhangsan用户alert任意表的权限
  8. grant all to public;//授予所有权限(all)给所有用户(public)
复制代码
  tip:oracle对权限管理比力严谨,平凡用户之间也是默认不能互相访问的,需要互相授权
  1. grant select on tablename to zhangsan;//授予zhangsan用户查看指定表的权限
  2. grant drop on tablename to zhangsan;//授予删除表的权限
  3. grant insert on tablename to zhangsan;//授予插入的权限
  4. grant update on tablename to zhangsan;//授予修改指定表的权限
  5. grant insert(id) on tablename to zhangsan;//授予对指定表特定字段的插入权限
  6. grant update(id) on tablename to zhangsan;//授予对指定表特定字段的修改权限
  7. grant role1 to test;//授予角色role1(role1为已存在的角色)
复制代码
5、账户打消权限

  1. 基本语法同 grant,关键字为 revoke
复制代码
6、删除用户

  1. drop user zhangsan; //仅删除用户
  2. drop user zhangsan cascade; //删除用户的同时,删除此用户名下所有的对象
复制代码
7、查询全部用户(DBA账号执行)

  1. select * from all_users;
复制代码
8、检察当前用户毗连

  1. select * from v$Session;
复制代码
9、检察用户角色

  1. SELECT * FROM USER_ROLE_PRIVS;
复制代码
10、检察当前用户权限

  1. select * from session_privs;
  2. select * from user_sys_privs;//查看当前用户所有权限
复制代码
11、检察全部用户所拥有的角色(DBA账号执行)

  1. SELECT * FROM DBA_ROLE_PRIVS;
复制代码
12、创建用户并指定表空间

  1. create user 用户名 identified by 密码
  2. default tablespace 默认表空间名
  3. temporary tablespace 默认临时表空间名;
复制代码
13、检察当前用户的缺省表空间

  1. select username,default_tablespace from user_users;
复制代码
三、视图

1、创建视图

  1. CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
  2.     [(alias[, alias]...)]
  3. AS subquery
  4.      [WITH CHECK OPTION [CONSTRAINT constraint]]
  5.      [WITH READ ONLY]
复制代码
  参数说明:
  

  • OR REPLACE :若所创建的试图已经存在,则替换旧视图;
  • FORCE:不管基表是否存在ORACLE都会自动创建该视图(即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用);
  • NOFORCE :假如基表不存在,无法创建视图,该项是默认选项(只有基表都存在ORACLE才会创建该视图)。
  • alias:为视图产生的列定义的别名;
  • subquery :一条完整的SELECT语句,可以在该语句中定义别名;
  • WITH CHECK OPTION :插入或修改的数据行必须满足视图定义的束缚;
  • WITH READ ONLY :默承认以通过视图对基表执行增删改操作,但是有很多在基表上的限制(好比:基表中某列不能为空,但是该列没有出如今视图中,则不能通过视图执行insert操作),WITH
    READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。实际开发中,基本上不通过视图对表中的数据进行增删改操作。
  2、删除视图

  1. drop BIEW view_name;
复制代码
四、角色

1、创建角色

  1. create role myrole;
复制代码
2、给角色赋权

  1. grant select on table1 to role1;//给角色 role1 赋予查询表 table1 的权限
复制代码
3、将角色赋予某用户:grant 角色名 to 用户名

  1. grant role1 to zhangsan;//role1为已存在的角色
复制代码
4、删除角色:drop role 角色名

  1. drop role myrole;
复制代码
五、表空间

1、创建表空间

  1. create tablespace 表空间名 datafile '/oracle/.../数据文件名.dbf' size 100m autoextend on next 100m maxsize 400m extent management local;
复制代码
2、删除表空间

  1. drop tablespace 表空间名 ;
复制代码
3、检察数据库的表空间使用状态

  1. select a.tablespace_name tnm,b.FILE_PATH,--b.autoextensible,
  2.        b.cnt,
  3.        trunc(a.bytes/1024/1024/1024) total_G,
  4.        trunc(a.bytes/1024/1024/1024/b.cnt) avg_G,
  5.        trunc(c.bytes/1024/1024/1024) free_G,
  6.        trunc((a.bytes-c.bytes)*100/a.bytes,2) used--,(c.bytes*100)/a.bytes "% FREE"
  7.      from SYS.SM$TS_AVAIL A,SYS.SM$TS_FREE C,
  8.          (select tablespace_name,substr(file_name,1,instr(file_name,'/',2)) FILE_PATH, --f.autoextensible,
  9.          count(*) cnt
  10.           from dba_data_files  f group by tablespace_name,substr(file_name,1,instr(file_name,'/',2))--,autoextensible
  11.           ) b
  12.      WHERE  A.TABLESPACE_NAME=C.TABLESPACE_NAME(+)
  13.           AND A.TABLESPACE_NAME=B.TABLESPACE_NAME
  14.        --   AND A.TABLESPACE_NAME IN (select distinct tablespace_name from dba_tablespaces)
  15.           order by  avg_g desc;
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

罪恶克星

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表