Oracle学习笔记 1

个人博客:http://demi-panda.com

通过命令查看控制文件,数据文件,日志文件:
  控制文件 : Desc v$controlfile;
  数据文件 :desc v$datafile;
  日志文件: desc v$logfile;
1. 执行导入  .sql文件
    命令语法如下:
          directory_path\store_schema.sql
    其中 directory_path 是保存 store_schema.sql 脚本的目录和路径
    例如:以下代码演示了导入C盘下的 sql 脚本文件:
          @c:\sql\store_schema.sql

2.  在SQL Plus 中切换不同的用户,例如以下命令切换到 system 用户登陆
connect system/manager@oracle 其中oracle 是指服务名

3. oracle 安装后,dual 是默认的表名 在SQL Plus 中输入:
    select sysdate from dual;
   它可以返回当前日期

**** 注意:SQL语句以分号(;)结束

4. oracle 中的数据库是以表空间存在的,以下命令创建了一个名为:yyaccp的表空间,并且指定数据文件的路径。

    create tablespace yyaccp
    datafile 'D:\oracle\oradata\oracle\yyaccp.DBF'
    size 5M autoextend on;

5. oracle 中可以通过命令创建用户名,以下命令创建了一个 yyaccp 用户名,
   并为它确定默认表空间和临时表空间
      create user yyaccp identified by yyaccp
      default tablespace yyaccp
      temporary tablespace temp;

6. 如果要给授权的用户可以在数据库中执行一定的操作那么应该为该用户授予
   执行这些操作的权限,例如,如果要让这个用户连接到数据库上必须要为该
   用户授予“创建会话的权限”,以下命令为 yyaccp 用户创建了会话权限
   (使用grant语句)
        grant create session to yyaccp;
    授予权限以后就可以通过 yyaccp 用户连接到数据库了:
       connect yyaccp/yyaccp@oracle;

7.用户密码的可以通过 alter 进行修改 以下命令修改了 yyaccp 用户的密码:
     alter user yyaccp identified by accp;

8. password 命令可以用来修改当前登陆的用户的密码,在登陆后输入password
  命令,sql plus 会提示输入原来的密码,然后再输入两次新密码 例如:
    connect yyaccp/accp;


   输入: password;
   sql plus 显示:
       更改YYACCP的口令
       旧口令: ******
       新口令: ******
       重新键入新口令:******
       口令已更改



9. 删除用户可以通过 drop user 进行删除,以下命令删除 yyaccp 用户
   connect system/manager@oracle;
   drop user yyaccp;

10. 使用 grant向用户授予不同的特权:以下通过system 用户向 yyaccp 用户授予了 创建会话、创建用户以及创建表的权限
    Connect system/manager@oracle;
    Grant create session, create user , create table to yyaccp;
    
   常用的系统特权:
Create  session 连接到数据库上
Create  sequence 创建序列
Create table 创建表
Create any table 在任何模式中创建表
Drop table 删除表
Drop any table 删除任何模式中的表
Create procedure 创建存储过程
Execute any  procedure 执行任何模式中的存储 过程
Create user 创建用户
Drop user 删除用户
Create view 创建视图

11.使用with admin option 选项。授权的用户可以把特权授予其他用户使用
   以下命令 将execute any procedure 特权授予 yyaccp 用户,同时指定了
   with admin option 选项。
Connect system/manager@oracle;
  Grant execute any procedure to yyaccp with admin option;

12. 检查授予用户的权限(通过 user_sys_privs 表)检查某个用户具有哪些权限:
   以下命令演示了 yyaccp 用户连接到数据库上,并对 user_sys_privs 进行查询
Connect  yyaccp/accp@oracle;
Select * from user_sys_privs ;
  

14. 撤销系统特权。以下system撤销了 yyaccp用户的dba权限
    Revoke dba from yyaccp;
  
15.当用户创建表或向已有的表中插入数据时,提示Ora-01536:表空间不足
可以通过以下方式解决:
(1) alter user USERNAME quota 100M on TABLESPACENAME;
(2) alter user USERNAME quota unlimited on TABLESPACENAME;
(3) grant unlimited tablespace to USERNAME;
例如 :创建了 yyaccp 用户 但是yyaccp 用户在 yyaccp 表空间中建表时出现Ora-01536状态码,执行以下命令:
Connect system/manager;
alter user yyaccp quota unlimited on yyaccp;

对象特权:
16.   对象特权允许用户对数据库对象执行特定的操作,比如对表进行添加、修改、删除、查询等操作。
以下表格列出了常用的对象特权:
对象特权 允许执行的操作
select 执行查询操作
Insert 执行插入操作
Update 执行修改操作
Delete 执行删除操作
execute 执行存储过程

向用户授予对象特权:
17. 可以使用 grant 语句向用户授予 对象特权 ,下面这个例子以 yyaccp 用户的身份连接到数据库,并向 tuser 授予以下特权:对 tusertable 表的 select ,
Insert ,update 对象特权进行授权
   Connect yyaccp/accp;
   Grant select ,insert ,update on yyaccp.tusertable to tuser;

18. 以下命令对tusertable 表中的 name , address 列的 update 特权授予tuser 用户
Grant update(name,ddress) on yyaccp.tusertable to tuser;

19. 使用 grant 选项可以使授权的用户把这种特权再授予其他用户。下面命令对tusertable 表的 select 特权授予 tuser 用户,同时指定了 with grant option 选项
   Grant select on yyaccp.tusertable to tuser with grant option

20. 检查已授予的对象特权(通过查询 user_tab_privs_made) 可以检查某个用户对哪些表向其他用户开放了哪些对象特权:
   Select  * from user_tab_privs_made

user_tab_privs_made 部分列
列名称 说明
Grantee 该特权授予的用户
Table_name 所授予的特权所操作的对象(例如表)名
Grantor 授权者
Privilege 对该对象授予的特权
grantable 特权所授予的用户是否可以将这种特权再授予其他用户,该值等于  yes 或 no
hierarchy 特权是否构成层次关系。该值等于 yes 或 no



User_col_privs_made 可以检查某个用户对哪些列对象开放了哪些特权。
   Select * from user_col_privs_made;

from user_col_privs_made 部分列
列名称 列说明
Grantee 该特权授予的用户
Table_name 所授予特权所操作的对象名
Column_name 所授予特权所操作的对象名
Grantor 授权者
Privilege 对该对象授予的特权
grantable 特权授予的用户是否可以将这种权限再授予其他用户,该值等于 yes 或 no

如果以tuser 用户身份连接到数据库上就可以通过公共对象名称 sttable 对 yyaccp.sttable 进行检索:
   Connect tuser/tuser;
   Select * from sttable;

23.撤销用户对象的特权:
   使用 revoke 语句撤销某个用户的对象特权。以下命令以 yyaccp 用户的身份连接到数据库上,并撤销  tuser 对sttable 表的 insert  特权
Connect  yyaccp/accp;
Revoke insert on sttable from tuser

 

你可能感兴趣的:(oracle,sql,脚本)