程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> oracle使用一(入門)

oracle使用一(入門)

編輯:Oracle數據庫基礎
通過命令查看控制文件,數據文件,日志文件:

  控制文件 : 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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved