1. 程式人生 > >Oracle資料庫(許可權、使用者、角色、基本知識介紹)

Oracle資料庫(許可權、使用者、角色、基本知識介紹)

Oracle資料庫推薦以引用部落格:

本編文章內容分佈:(1)介紹資料庫常見分類(2)關係型資料庫概念(3)Oracle資料庫基本知識介紹(4)Oracle資料庫許可權介紹,其中許可權的內容涉及範圍較大,許可權在本文中和使用者、角色練習較為緊密,角色是許可權的集合,屬於Oracle物件,建立使用者需要許可權,而新建立的使用者要賦予許可權,並且還可以給物件賦予許可權。等等這些基本操作都離不開許可權,所以在本文中主要學習許可權!使用者!角色!

關於使用者與模式:

使用者:對資料庫的訪問,需要以適當使用者身份通過驗證,並具有相關許可權來完成一系列動作.SYS使用者,預設始終建立,且未被鎖定,擁有資料字典及其關聯的所有物件.SYSTEM使用者,預設始終建立,且未被鎖定,可以訪問資料庫內的所有物件

模式(schema):是某個使用者擁有所有物件的集合。具有建立物件許可權並建立了物件的使用者稱為擁有某個模式
注意:建立資料庫物件(檢視,表等)的任一使用者都擁有一個以該使用者名稱稱開頭的模式,且被視為模式使用者

一、資料庫基本知識

小型資料庫:沒有安全性
               Access

中型資料庫:有一定的安全性
               SQL Server
               MySQL    

大型資料庫:安全性最高 
               Oracle:效能高,市場需求量大
                   DB2
                   SYSBASE

(關係型)資料庫相關概念

       資料庫 Database DB 儲存資料的倉庫

       資料庫管理系統 Database Management System DBMS

       用於管理資料庫的軟體
             負責資料的檢索、儲存、安全、一致性控制等
             對已有的資料進行處理,得到新的有用的資料

          關係型資料庫
             E.F.Codde 關於關係模型的論文
             建立在關係模型基礎上的資料庫
             擁有一組有描述的表格,這些表格的作用是裝載資料

         表格
             行:一條記錄,一個實體,具體存在的事物(Java 中的一個物件)
             列:欄位、屬性,用於描述事物的某一個方面(Java中物件的屬性)
             實體集:所有實體的集合
             關係:實體間的關係

SQL(Structured Query Language)

       結構化查詢語言
       是一種語言
       是一種規範 ANSI SQL-82 SQL-86 SQL-92 SQL-99
       所有主流資料庫都遵守

       關係:有方向
          1:1 一對一
          對於實體集A中的每個實體,在實體集B中最多隻有一個實體與之對應;反之,亦然。
          1:n 一對多:外來鍵總設在多方
          對於實體集A中的每個實體,在實體集B中可以有多個實體與之對應。
          n:n 多對多:分解成兩個一對多,新增一箇中間表
          對於實體集A中的每個實體,在實體集B中可以有多個實體與之對應;反之,亦然。

       資料庫設計:邏輯模型
          E-R圖(Entity-Relation圖)

三大正規化(規範):

     1.一張表必須要有一個主鍵,最好選擇與業務無關的邏輯主鍵;
       邏輯主鍵,業務主鍵
     2.外來鍵引用主鍵
       邏輯外來鍵
     3.不要出現冗餘欄位
       實際開發中,有時候並不遵守,一定要冗餘,以保證資料的正確性,提高查詢效率,空間換時間;

關於Oracle資料庫簡單介紹

       1970 Oracle5
       最新  Oracle12c
       9i 10g 小 支援最新的SQL規範SQL-99
       安裝要求:
          記憶體:100M+ 正常執行所需最小記憶體 (3G+ 電腦不卡)
          硬碟:1.5+G

Oracle資料庫相關概念

       資料庫:儲存資料的倉庫,主要指存放資料的檔案,包括資料檔案、控制檔案、資料庫日誌檔案
       資料名:用於唯一的標識資料庫
       例項:一系列為當前資料庫提供服務的記憶體和後臺程序,記憶體與服務程序的集合稱為一個例項
       例項名/SID/服務名:用於唯一的標識一個例項
       例項名與資料庫名可以不一致

Oracle服務

       OracleService+SID,資料庫啟動的基礎服務
       OracleOraDb10g_home1TNSListner,為客戶端提供監聽服務,提供連線服務
       OracleOraDb10g_home1iSQL*Plus,讓客戶端可以通過瀏覽器來對資料庫進行操作

資料庫的啟動和關閉

   登入使用者必須是管理員使用者
           啟動:startup open
           關閉:shutdown immediate
        Oracle客戶端工具
           SQL*Plus
              三種啟動方式
               第一種、開始 → 程式 → Oracle → 應用開發工具 → SQL*Plus
               第二種、命令列視窗 → sqlplus 
               第三種、瀏覽器 → http://ip:5561/isqlplus
               第四種、本方法前提是Oracle檔案放在能在linux終端找到的位置,利用linux命令執行Oracle客戶端,一般情況下都不會運用此方式來開啟Oracle客戶端,建議使用第一種、第二種啟動方式。
               SqlDeveloper(linux系統上修改檔案的讀取許可權)
               終端 → cd sqldevelper → chmod 777 *.sh  
                  → ./sqldeveloper.sh | bash sqldeveloper.sh | sh sqldeveloper.sh

二、監聽器

監聽客戶端連線請求,位於服務端的、獨立執行的一個後臺程序,一旦建立伺服器與客戶端的連線,之後客戶端與服務的通訊不再通過它

命令列視窗 → sqlplus:啟動一個SQL*Plus客戶端工具
或 → sqlplus username/password [as sysdba]
或 → sqlplus /nolog:開啟SQL*Plus,但不登入
→ conn username/[email protected]:1521/orcl
→ disconnect 斷開連線

spool 命令要寫到的檔案的路徑;注意:當使用完畢後要使用spool off;

conn /as sysdba 作業系統驗證

Oracle 登入驗證:作業系統、資料庫驗證、密碼檔案

三、許可權

Oracle在剛開始的入門知識方面和mysql在許可權方面有著較大的不同,在Oracle中幾乎所有的操作(建立使用者、建立表、刪除表等等一些增刪改查在沒有獲得許可權之前是不允許執行的)在沒有獲得許可權之前都不能夠執行,在mysql中則沒有那麼嚴格,所以有必要先了解一下Oracle中許可權的分配。

在建立使用者之前,可以登入系統管理員許可權去建立一個使用者(因為系統管理員有這個許可權),下面是三種使用者分類:

sys;   //系統管理員,擁有最高許可權
system;//本地管理員,次高許可權
scott; //普通使用者,密碼預設為tiger,預設未解鎖

在登陸的時候,可以選擇下面三種登入方式:

sqlplus / as sysdba;  //登陸sys帳戶
sqlplus sys as sysdba;//同上
sqlplus scott/tiger;  //登陸普通使用者scott

比如建立一個使用者和給建立的使用者分配許可權程式碼示例:(下面建立使用者是在系統管理員的身份下建立的,並且系統管理員本身也有這個許可權,但是如果沒有賦予普通使用者建立使用者的許可權,那麼普通使用者建立使用者這個操作就會失敗。)

3.1、在Oracle中建立一個新使用者

(使用者名稱:zhangsan 密碼:zhangsan, 預設登陸是在users表中,並分配10M的空間)

·先用超級管理員連上:sqlplus
·輸入使用者名稱及密碼:scott/tiger
·連線成功後,使用:conn sys/sysdba as sysdba;登入超級管理員後,輸入如下命令:
create user zhangsan identified by zhangsan default tablespace users quota 10M on users
分配許可權給新使用者zhangsan
grant create session, create table, create view to zhangsan

下面語句可以在sys系統管理員登入的情況下建立的

create user 使用者名稱 identified by 密碼;//在管理員帳戶下,建立使用者
alert user scott identified by tiger;//修改密碼    

系統許可權: 允許使用者執行特定的資料庫動作,如建立表、建立索引、連線例項等
物件許可權: 允許使用者操縱一些特定的物件,如讀取檢視,可更新某些列、執行儲存過程等

3.2系統許可權和物件許可權:

(1)系統許可權:

grant 許可權列表,.. to username [with admin option 同時獲得許可權分配權];
revoke 許可權列表,.. from usernam;    

a.常見的系統許可權

   CREATE SESSION                     建立會話

   CREATE SEQUENCE                    建立序列

   CREATE SYNONYM                     建立同名物件

   CREATE TABLE                       在使用者模式中建立表

   CREATE ANY TABLE                   在任何模式中建立表

   DROP TABLE                         在使用者模式中刪除表

   DROP ANY TABLE                     在任何模式中刪除表

   CREATE PROCEDURE                   建立儲存過程

   EXECUTE ANY PROCEDURE              執行任何模式的儲存過程

   CREATE USER                        建立使用者

   DROP USER                          刪除使用者

  b.授予使用者系統許可權

           GRANT privilege [, privilege...] TO user [, user| role, PUBLIC...]

           [WITH ADMIN OPTION];

           PUBLIC     所有使用者

           WITH ADMIN OPTION 使使用者同樣具有分配許可權的權利,可將此許可權授予別人

 c.使用系統許可權

    --使用robinson具有建立會話、建立表

       SQL> CREATE TABLE tb1 AS SELECT * FROM USER_TABLES; --下面提示沒有許可權在users表空間建立物件

       CREATE TABLE tb1 AS SELECT * FROM USER_TABLES


       ERROR at line 1:

       ORA-01950: no privileges on tablespace 'USERS'


       SQL> CONN sys as sysdba;  --使用sys帳戶登陸併為robinson在users表空間指定配額後可以建立表tb1

       Enter password:

       Connected.

       SQL> ALTER USER robinson QUOTA 10M ON USERS;

       User altered.

       SQL> CONN robinson/lion;

       Connected.

       SQL> CREATE TABLE tb1 AS SELECT * FROM USER_TABLES;

       Table created.

  d.檢視系統許可權

            dba_sys_privs  --針對所有使用者被授予的系統許可權

            user_sys_privs --針對當前登陸使用者被授予的系統許可權

  e.回收系統許可權

  REVOKE {privilege | role} FROM {user_name | role_name | PUBLIC}

       --下面的示例中並沒有回收掉原來由scott授予給robisnon EXECUTE ANY PROCEDURE 的許可權

       SQL> REVOKE EXECUTE ANY PROCEDURE FROM scott;

       Revoke succeeded.

       SQL> select grantee,privilege,admin_option from dba_sys_privs

         2  where grantee in ('SCOTT','ROBINSON')  and privilege = 'EXECUTE ANY PROCEDURE'

         3  order by grantee;

       GRANTEE                        PRIVILEGE                                ADM

       ------------------------------ ---------------------------------------- ---

       ROBINSON                       EXECUTE ANY PROCEDURE                    NO



   注意:對於使用with admin option 為某個使用者授予系統許可權,那麼對於被這個使用者授予相同許可權的所有

       使用者來說,取消該使用者的系統許可權並不會級聯取消這些使用者的相同許可權

(2)物件許可權

grant 許可權 on 物件名 to username[with grant option 同時獲得許可權分配權];

revoke 許可權 on 物件名 from username;

不同的物件具有不同的物件許可權,物件的擁有者擁有所有許可權,物件的擁有者可以向外分配許可權.關於授予系統許可權與授予物件許可權的語法差異:授予物件許可權時需要指定關鍵字ON,從而能夠確定許可權所應用的物件.對於表和檢視可以指定特定的列來授權。

物件授權示例

SQL> SHOW USER;
USER is "SCOTT"

SQL> GRANT SELECT ON emp TO robinson;
Grant succeeded.

SQL> GRANT UPDATE(sal,mgr) ON emp TO robinson WITH GRANT OPTION;
Grant succeeded.

 --新建立一個使用者john,使用robinson賬戶授予更新scott.emp(sal,mgr)的許可權
SQL> CREATE USER john IDENTIFIED BY john;
User created.

SQL> GRANT CREATE SESSION TO john;
Grant succeeded.

SQL> CONN ROBINSON/LION
Connected.

SQL> GRANT UPDATE(sal,mgr) ON scott.emp TO john;   --授予scott.emp(sal,mgr)的更新許可權
Grant succeeded.

SQL> UPDATE scott.emp SET sal = sal + 100 WHERE ename = 'SCOTT';  --成功更新
1 row updated.   

--向資料庫中所有使用者分配許可權
SQL> GRANT SELECT ON dept TO PUBLIC;
 Grant succeeded.

c.查詢許可權分配情況

資料字典檢視                      描述

ROLE_SYS_PRIVS            角色擁有的系統許可權

ROLE_TAB_PRIVS            角色擁有的物件許可權


USER_TAB_PRIVS_MADE      查詢授出去的物件許可權(通常是屬主自己查)

USER_TAB_PRIVS_RECD      使用者擁有的物件許可權


USER_COL_PRIVS_MADE      使用者分配出去的列的物件許可權

USER_COL_PRIVS_RECD      使用者擁有的關於列的物件許可權


USER_SYS_PRIVS            使用者擁有的系統許可權

USER_TAB_PRIVS            使用者擁有的物件許可權

USER_ROLE_PRIVS       使用者擁有的角色  

--查詢已授予的物件許可權(即某個使用者對哪些表對哪些使用者開放了物件許可權)
    SQL> SELECT * FROM user_tab_privs_made; --下面是scott使用者開放的物件許可權

   GRANTEE              TABLE_NAME               GRANTOR                   PRIVILEGE            GRA HIE

   -------------------- ------------------------ ------------------------- -------------------- --- ---

   PUBLIC               DEPT                     SCOTT                     SELECT               NO  NO

   ROBINSON             EMP                      SCOTT                     SELECT               NO  NO  


--查詢列上開放的物件許可權

   SQL> SELECT * FROM user_col_privs_made;



   GRANTEE              TABLE_NAME           COLUMN_NAME          GRANTOR        PRIVILEGE            GRA

   -------------------- -------------------- --------------------- -------------- -------------------- ---

   ROBINSON             EMP                  SAL                   SCOTT          UPDATE               YES

   JOHN                 EMP                  MGR                   ROBINSON       UPDATE               NO

   ROBINSON             EMP                  MGR                   SCOTT          UPDATE               YES

   JOHN                 EMP                  SAL                   ROBINSON       UPDATE               NO



--查詢已接受的物件特權(即某個使用者被授予了哪些表上的哪些物件特權)

   SQL> SELECT * FROM user_tab_privs_recd;



   OWNER                TABLE_NAME           GRANTOR                        PRIVILEGE            GRA HIE

   -------------------- -------------------- ------------------------------ -------------------- --- ---

   SCOTT                EMP                  SCOTT                          SELECT               NO  NO



--查詢使用者已接受列的物件許可權

   SQL> SELECT * FROM user_col_privs_recd;



   OWNER                TABLE_NAME         COLUMN_NAME      GRANTOR              PRIVILEGE            GRA

   -------------------- ------------------ ---------------- -------------------- -------------------- ---

   SCOTT                EMP                MGR              SCOTT                UPDATE               YES

   SCOTT                EMP                SAL              SCOTT                UPDATE               YES


d.收回物件許可權

   使用REVOKE 語句收回許可權

   使用WITH GRANT OPTION 子句所分配的許可權同樣被收回


   REVOKE {privilege [, privilege...]|ALL}

   ON object

   FROM   {user[, user...]|role|PUBLIC}

   [CASCADE CONSTRAINTS];


   CASCADE CONSTRAINTS 為處理引用完整性時需要


   --收回許可權示例     

   SQL> conn scott/tiger;
   Connected.

   SQL> REVOKE SELECT ON emp FROM robinson;
   Revoke succeeded.

   SQL> REVOKE UPDATE(sal,mgr) ON emp FROM robinson; --注意此處的提示revoke的是整個表,而非列
   REVOKE UPDATE(sal,mgr) ON emp FROM robinson
               *
   ERROR at line 1:

   ORA-01750: UPDATE/REFERENCES may only be REVOKEd from the whole table, not by column

   SQL> REVOKE UPDATE ON emp FROM robinson;
   Revoke succeeded.

   --使用者robinson的update 許可權被revoke,曾級聯賦予john的許可權也被收回,

   --如下提示表、檢視不存在,user_col_privs_recd中無記錄

   SQL> CONN john/john;

   Connected.

   SQL> UPDATE scott.emp SET sal = sal - 100 WHERE ename = 'SCOTT';
   UPDATE scott.emp SET sal = sal - 100 WHERE ename = 'SCOTT'
               *
   ERROR at line 1:
   ORA-00942: table or view does not exist

   SQL> SELECT * FROM user_col_privs_recd;
   no rows selected

注意:如果取消某個使用者的物件許可權,對於該使用者使用with grant option授予其它使用者相同許可權來說,將級聯刪除這些使用者許可權

e.其它
   檢查DBA許可權的使用者  
       select * from dba_role_privs where granted_role='DBA'; 
   檢視使用者具有的系統許可權:
       SELECT * FROM session_privs;

    在Oracle許可權之間存在傳遞性:

    即使用者A將許可權授予B,B可以將操作的許可權再授予C,命令如下:

      grant alert table on tablename to zhangsan with admin option;//關鍵字 with admin option同時獲得許可權分配權
      
      grant alert table on tablename to zhangsan with grant option;//關鍵字 with grant option效果和admin類似
      即with admin option 允許當前使用者A將許可權賦予B。

3.3許可權總結

1.使用create user語句建立使用者,alter user語句修改使用者,其語法大致相同

    drop user username [CASCADE] 會刪除使用者所擁有的所有物件及資料

2.系統許可權允許使用者在資料庫中執行特定的操作,如執行DDL語句。

    with admin option 使得該使用者具有將自身獲得的許可權授予其它使用者的功能

   但收回系統許可權時,不會從其它帳戶級聯取消曾被授予的相同許可權

3.物件許可權允許使用者對資料庫物件執行特定的操作,如執行DML語句。

    with grant option 使得該使用者具有將自身獲得的物件許可權授予其它使用者的功能

   但收回物件許可權時,會從其它帳戶級聯取消曾被授予的相同許可權

4.系統許可權與物件許可權授予時的語法差異為物件許可權使用了ON object_name 子句

5. PUBLIC 為所有的使用者

6. ALL:物件許可權中的所有物件許可權

四、使用者

MySQL,一個使用者,多個數據庫,每個資料庫擁有各自的表,而Oracle一個數據庫,多個使用者,每個使用者擁有各自的表(資料庫物件)
   sys (系統管理員擁有最高許可權) as sysdba
   system //本地管理員 次高許可權
   scott; //普通使用者,密碼預設為tiger,預設未解鎖
   建立使用者:
      create user username identified by password [account lock | unlock]
      [password expire 設定密碼過期];
   解鎖|加鎖
      alter user username account unlock | lock;
   修改密碼
      非管理員使用者登入狀態:password  → 舊口令 → 新口令 :修改當前使用者的密碼
      管理員登入狀態:password username → 新口令 :修改指定使用者的密碼
      alter user username identified by newpassword;
   刪除使用者
      drop user username [cascade];
      cascade表示級聯刪除使用者的所有物件,刪使用者時,一起刪除該使用者的物件
   刪除當前正在連線的使用者
      v$session 存放的是已經連線的使用者的資訊
      select sid,serial#,username from v$session where username = ‘’;
      alter system kill session 'sid,serial#';
      drop user username [cascade];
   檢視當前的登入的使用者
      show user;

關於使用者常見操作程式碼(下面的程式碼都是可以執行的,在windows作業系統上大寫小區分不敏感,所以大部分大寫的關鍵命令單詞都可以小寫):

1.修改使用者

    修改使用者的語法同建立使用者,僅僅講關鍵字create替換為alter,alter user可以修改除使用者名稱之外的任一屬性

   ALTER USER robinson ACCOUNT LOCK;

2.修改密碼

   DBA 可以建立使用者和修改密碼

   使用者本人可以使用ALTER USER 語句修改密碼

   SQL> ALTER user robinson  IDENTIFIED BY  newpassword;

3.刪除使用者:

   DROP USER username [CASCADE]

   CASECADE 連同使用者建立的物件一併刪除,如果該使用者建立了物件,要加CASCADE刪除,否則刪除不掉

   另外,不能刪除當前正在與ORACLE伺服器相連的使用者。

4.改變使用者在表空間上的配額:

   ALTER USER username  QUOTA 0 ON system;

   ALTER USER scott QUOTA UNLIMITED ON USERS;

   ALTER USER dog QUOTA 30M ON system;

5.檢視使用者表空間配額(dba_ts_quotas):

   SQL> SELECT USERNAME,TABLESPACE_NAME,MAX_BYTES/1024/1024 "Max MB"     

     2  FROM dba_ts_quotas WHERE USERNAME='SCOTT';


   USERNAME              TABLESPACE_NAME           Max MB

   ------------------------------ --------------------------

   SCOTT                 SYSTEM                     30

6.檢視特定物件下使用者所擁有的物件

   使用dba_objects檢視

   SQL> SELECT owner,object_name, object_type FROM dba_objects WHERE owner= 'SCOTT';

五、角色與許可權

角色基本內容如下:
        grant 角色 to username;
        revoke 角色 from username;    
        一個角色是多個許可權的集合
        系統預定義角色
        connect 連線
        resource 訪問資源許可權,訪問表、序列,不包括create session 
        dba 擁有所有許可權
        自定義角色
        create role 角色名
        grant 許可權列表|角色列表 to 角色名

每個Oracle使用者都有一個名字和口令,並擁有一些由其建立的表、檢視和其他資源。Oracle角色(role)就是一組許可權(privilege) (或者是每個使用者根據其狀態和條件所需的訪問型別)。使用者可以給角色授予或賦予指定的許可權,然後將角色賦給相應的使用者。一個使用者也可以直接給其他使用者授 權。

資料庫系統許可權(Database System Privilege)允許使用者執行特定的命令集。例如,CREATE TABLE許可權允許使用者建立表,GRANT ANY PRIVILEGE 許可權允許使用者授予任何系統許可權。

資料庫物件許可權(Database Object Privilege)使得使用者能夠對各個物件進行某些操作。例如DELETE許可權允許使用者刪除表或檢視的行,SELECT許可權允許使用者通過select從 表、檢視、序列(sequences)或快照 (snapshots)中查詢資訊。

(1)、3種標準角色

Qracle為了相容以前的版本,提供了三種標準的角色(role):CONNECT、RESOURCE和DBA。

1. CONNECT Role(連線角色)

臨時使用者,特別是那些不需要建表的使用者,通常只賦予他們CONNECTrole。CONNECT是使用Oracle的簡單許可權,這種許可權只有在對其他使用者 的表有訪問權時,包括select、insert、update和delete等,才會變得有意義。擁有CONNECT role的使用者還能夠建立表、檢視、序列(sequence)、簇(cluster)、同義詞(synonym )、會話(session)和與其他資料庫的鏈(link)。

2. RESOURCE Role(資源角色)

更可靠和正式的資料庫使用者可以授予RESOURCE role。RESOURCE提供給使用者另外的許可權以建立他們自己的表、序列、過程(procedure)、觸發器(trigger)、索引(index)和簇(cluster)。

3. DBA Role(資料庫管理員角色)

DBA role擁有所有的系統許可權----包括無限制的空間限額和給其他使用者授予各種許可權的能力。SYSTEM由DBA使用者擁有。下面介紹一些DBA經常使用的典型許可權。

A.grant(授權)命令

下面對剛才建立的使用者user01授權,命令如下:

grant connect, resource to user01;

B.revoke(撤消)許可權

已授予的許可權可以撤消。例如撤消(1)中的授權,命令如下:

revoke connect, resource from user01;

一個具有DBA角色的使用者可以撤消任何別的使用者甚至別的DBA的CONNECT、RESOURCE 和DBA的其他許可權。當然,這樣是很危險的,因此,除非真正需要,DBA許可權不應隨便授予那些不是很重要的一般使用者。

撤消一個使用者的所有許可權,並不意味著從Oracle中刪除了這個使用者,也不會破壞使用者建立的任何表;只是簡單禁止其對這些表的訪問。其他要訪問這些表的使用者可以象以前那樣地訪問這些表。

“`

(2)、建立角色

除了前面講到的三種系統角色—-CONNECT、RESOURCE和DBA,使用者還可以在Oracle建立自己的role。使用者建立的role可以由 表或系統許可權或兩者的組合構成。為了建立role,使用者必須具有CREATE ROLE系統許可權。下面給出一個create role命令的例項:

create role STUDENT;

這條命令建立了一個名為STUDENT的role。

一旦建立了一個role,使用者就可以給他授權。給role授權的grant命令的語法與對對使用者的語法相同。在給role授權時,在grant命令的to子句中要使用role的名稱,如下所示:

grant select on CLASS to STUDENT;

現在,擁有STUDENT角色的所有使用者都具有對CLASS表的select許可權。

(3)、刪除角色

   要刪除角色,可以使用drop role命令,如下所示:

   drop role STUDENT;

相關推薦

Oracle資料庫許可權使用者角色基本知識介紹

Oracle資料庫推薦以引用部落格: 本編文章內容分佈:(1)介紹資料庫常見分類(2)關係型資料庫概念(3)Oracle資料庫基本知識介紹(4)Oracle資料庫許可權介紹,其中許可權的內容涉及範圍較大,許可權在本文中和使用者、角色練習較為緊密,角色是許可

C# 連線 Oracle 資料庫三種方式:OracleClientODBCOLEDB

1、OracleClient //基於.NET 2.0,只有2.0中包含OracleClient using System; using System.Collections; using System.ComponentModel; using System.Data;

ORACLE資料庫的三種狀態:RESTRICTQUIESCE和SUSPEND

bash-2.03$ srvctl status db -d testracInstance testrac1 is running on node racnode1Instance testrac2 is running on node racnode2Instance testrac3 is runnin

Oracle資料庫的邏輯結構未完待續

這是一張非常基本同時也是非常重要的結構圖。物理結構很簡單,就是作業系統物理塊組成資料檔案,對於作業系統來說,資料檔案跟其他非資料庫檔案沒有區別。重點是邏輯結構。 oracle資料庫從邏輯儲存結構上來講

詳細講解Oracle資料庫——系統許可權與物件許可權傳遞使用規則

** 大家好,我是今天的博主,<一個想做全棧的鹹魚> 今天跟大家一起學習一下Oracle資料庫什麼事系統許可權與物件許可權傳遞呢? 舉個小例子: 系統許可權 sys–a--b sys許可權分別給了ab 物件許可權 a-b-c a許可權給了b,b有分配

CSS3 的視口單位vwvh實現自適應帶有px,em,rem的簡單介紹

一、px,em,rem,vw的簡單介紹1、pxpx其實就是畫素的意思,全稱pixel,也就是影象的基本取樣單位。對於不同的裝置,它的影象基本單位是不同的,比如顯示器和印表機。而我們通常所說的顯示器解析度是指桌面設定的解析度,不是顯示器的物理解析度,但是現在我們的桌面解析度和物

關於利用plsql訪問外網oracle資料庫利於花生殼作為對映工具

保證本地plsql能夠連線本機oracle資料庫,並且不會出現任何問題。 利用花生殼做內網穿透工具把資料庫伺服器ip+埠對映到公網上。 oracle資料庫埠號一般為1521。如果伺服器埠號更改要記得改。 在資料庫服務上執行花生殼。 修改oracle客戶端配置檔案:

CentOS 安裝oracle資料庫終於搞通了~~

要在CentOS6.5上,安裝oracle 11 r2,網上搜尋了好久,還是各種不通,搞了一天終於弄好了,這裡記錄一下; 首先宣告:安裝的機器記憶體至少要2G,因為在後面安裝的時候,會有個preckeck,記憶體不能小於1G,我都是到最後才發現不行,崩潰。。。

C++使用POCO庫連線oracle資料庫ODBC

POCO庫是個功能很強大的工具庫,這次專案中就用到了POCO庫中的DATA連線資料庫的方式,直接上程式碼!         //使用ODBC的方式連線oracle資料庫 ODBC::Connector::registerConnector();//註冊 Ses

將oracle11安裝到虛擬機器並在本機進行遠端操控oracle資料庫超詳細步驟另附資源

文末附所有要用到的資源下載連結 一、背景 當我們在安裝oracle資料庫第一次安裝失敗時,解除安裝是一件超級令人頭大的事情,而且很多時候根本解除安裝不乾淨,而且oracle資料庫很大,當我們本機開啟的服務過多,會影響機器的執行! 這樣就急需一個解決辦法—— 那就是將oracle1

oracle 資料庫PL/SQL的匯入匯出

1,這裡介紹兩種資料庫匯入匯出方式,分別是imp/exp與impdp/expdp(資料泵) 2.先介紹一下imp/exp imp(需要建立表空間,管理員身份執行) -------首先建立表空間 create tablespace 表空間名

java把excel資料寫入Oracle資料庫.xls檔案

java把excel資料寫入Oracle資料庫,此處需要引入兩個檔案:ojdbc14.jar,jxl-2.6.10.jar,首先在oracle建立表exceltest,excel檔案內容與其對應,此處注意:(excel版本太高了 報錯:Exception in thread

通過瀏覽器訪問操作Oracle資料庫Oracle修改使用者名稱和密碼

  以前簡單的用過Oracle資料庫,都是用控制檯,通過命令操作的,然後最近學校增加了一門新的課程,又學了一招:通過瀏覽器訪問操作Oracle資料庫。   1.開啟瀏覽器;   2.在位址列輸入“localhost:8080/apex”,回車;   3.已經進入登入頁面,輸

Oracle資料庫使用者許可權查詢和一些檢視操作(彙總)

dba許可權:user為有dba許可權的賬號,如sys,system,或者是已經被授予dba許可權 1.查詢使用者擁有的系統許可權 SQL> SELECT GRANTEE,PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'SC

Python連結oracle資料庫

最近開始學習Python了,記性不好,就要多記筆記。記錄一下學習過程中的一些小問題。 內容:打算寫一個指令碼 連線oracle資料庫,定期去資料庫查詢資料。 步驟:先去http://cx-oracle.sourceforge.net/這個網址找到對應的版本下載並安裝,安裝路

不用第歸演算法快速顯示樹,對於Oracle資料庫1

在顯示不確定樹節點多少時,我們絕大多數使用第歸演算法,要多次和資料庫進行連線操作取資料,下面我講的演算法,僅僅只和資料操作一次,然後用動態陣列在樹型控制元件中顯示,快速方便。我以例項給大家演示,熟悉製造行業的朋友一般都知道BOM(產品結構)。Oracle給大家提供一個非常方便

本地客戶端自己的電腦連線遠端Oracle資料庫伺服器端,客戶端安裝步驟

如果本地自己的電腦沒有安裝Oracle(伺服器端資料庫),那就要單獨安裝HA-Instant Client-v11.2.0.3.0.exe(oracle_client客戶端) 如果本地安裝了Oracle(伺服器端資料庫),就包含了HA-Instant Client-v11.2.0.3.0.exe,不需要單獨安

Spring cache資料三。註釋驅動的 Spring cache 快取介紹

概述 Spring 3.1 引入了激動人心的基於註釋(annotation)的快取(cache)技術,它本質上不是一個具體的快取實現方案(例如 EHCache 或者 OSCache),而是一個對快取使用的抽象,通過在既有程式碼中新增少量它定義的各種 annotation,即能夠達到快取

Verilog HDL基本知識介紹分享1——Verilog 簡介

近期準備抽空準備做一個Verilog HDL 的簡單分享,以供初學者瞭解學習,技術認知有限,有錯誤處歡迎大家指出來一起交流。file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image001.gif

git入門學習一git安裝,增刪改查基本操作命令

git 工作區 暫存區 版本庫 在當前目錄新建一個Git程式碼庫 git init (會多出.git資料夾) 設計提交程式碼時的使用者資訊 :git config --global  user.name zhangsan    git config --glob