高尾山:oracle使用一(入门)

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 04:39:35
通过命令查看控制文件,数据文件,日志文件:

  控制文件 : 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.使用 public 可以将一种特权授予所有用户 ,以下命令 以system 用户的身份

   连接到数据库上 ,并将execute any procedure 特权授予 public

Connect system/manager@oracle;

Grant execute any procedure to public;

13. 检查授予用户的权限(通过 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;

角色:

   角色就是一组特权,它可以分配给一个用户或者其他角色.

以下命令创建一个管理 employees2 表的角色

         create role employyes2_manger

给角色赋予权限:

       grant select,update,insert,delete on  yyaccp.employees2 to employyes2_manger

对象特权:

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

21.使用同名对象,前面我们所有的授权后,如果要访问一个表名称要通过模式名称后面跟上一个表名。例如:yyaccp.tusertable。 以下命令通过创建同名对象(synonym)之后就可以不再输入模式名了。同名对象使用 create synonym 语句创建。以下命令用 yyaccp 用户登陆后,将 create synonym 特权给 tuser用户:

 Connect yyaccp/accp;

 Grant create synonym to tuser; 

然后以tuser 用户的身份连接到数据库上,并执行一条 create synonym 语句,为 yyaccp.tusertable 创建一个同名的对象

Connect tuser/tuser;

Create synonym tusertable for yyaccp.tusertable;

22.使用公共同名对象:

   可以为表创建公共同名对象(public synonym)。再创建公共同名对象之后,所用的用户都可以看到这个同名对象,下面四条语句完成公共同名对象

 

Connect system/manager;

Grant create public synonym to yyaccp;

Connect yyaccp/accp;

Create public synonym sttable for yyaccp.sttable;

如果以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