oracle 學習筆記(-)

來源:互聯網
上載者:User

  作為程式員,oracle 資料庫是我們必須學習的 ,下面我將自己學到的基礎知識總結一下,希望分享學習,指教!

  在將資料庫安裝好後,我們會得到一個預設的資料庫,我的資料庫預設名是orcl,並且會得到三個預設的使用者名稱,分別是sys、system、scott。sys預設的登陸密碼是manager、system預設登入密碼是change_on_install。其中,管理資料庫的使用者主要是sys和system,這兩個超級使用者的關係如同是 董事長和總經理的關係,當然 Sys是董事長,System是總經理,這下你知道誰的權利更大了吧!

  Sys:所有的Oracle資料字典和視圖都主要存放在Sys使用者中,由資料庫自己維護,任何使用者都不能手動更改。這個超級使用者擁有dba、sysdba、sysoper角色和許可權,是oracle中許可權最高的使用者,相當於Microsoft Sql Server 中的Sa使用者。當然,sys登陸時必須以sysdba、sysoper形式登陸,即 conn sys/manager as sysdba或則 conn sys/manager as sysoper。 

  System:用於存放次一級的內部資料,擁有dba、sysdba的角色或系統許可權。正常登陸時以dba使用者登陸的,但如果以sysdba登陸,實質上任然是以sys使用者登陸的。

SQL> conn system/change_on_install as sysdba;Connected to Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 Connected as SYS

  當我們需要建立新的新的使用者時,可以用以下代碼建立新的使用者,其中xianrongbin是我建立的使用者名稱,123是此使用者的登陸密碼。

SQL> create user xianrongbin identified by 123;

  然後,有了新建立的使用者後,我們卻不能用此賬戶登陸資料庫的,這是為什麼呢?這裡打個比方:給A人封了一個司令的官銜,但卻沒有給他任何權利,那A人能在軍隊幹什麼了,因此,我們必須要個這個使用者賦予一定的許可權,那麼在這裡我們就要引入角色和許可權這連個基本概念了。

  我的理解是----許可權:是指為了保證職責的有效履行,對某事項進行決策的範圍和程度,說白了就是能幹什麼事。角色:就是許可權的集合,是擁有多項許可權的,一個或多個許可權。

  因此,我們建立一個使用者後,也應該給於其分配一些許可權。角色分為預定義角色和自訂角色。我們常用的角色是 connect、resource、dba三種角色。許可權也分為兩種,系統許可權和對象許可權。系統許可權 描述使用者對資料庫訪問的許可權 ;對象許可權是 使用者對其他使用者的資料對象操作的許可權。

  其中connect 角色擁有的許可權是 alter session、create cluster、create database link、create table、create view、create sequence。

  resource可以讓使用者在任何一個資料表空間建表,resource 角色隱含了 unlimited tablespace 系統許可權,擁有create cluster、create indextype、create  table、create  sequence、create type、create procedure、create trigger

   dba具有所有的系統許可權,但不具備 sysdba sysoper的特權,啟動和關閉資料庫、建立角色。

  因此,建立使用者後必須賦予其許可權,才能夠登入資料庫,命令語句如下:

SQL> grant connect to xianrongbin;

  然後再次登入才能夠登入上去資料庫!

  如果你希望刪除這個使用者,則使用如下命令語句。在刪除使用者時候,如果刪除的使用者已經有表了 那麼就需要在刪除的時候帶一個參數 cascade。

SQL> drop user xianrongbin;

  接下來是建立角色了,建立角色的命令如下

SQL> create  role role1 not identified; ---不用驗證方式
SQL> create role role2 identified by m123; --驗證的方式 

  角色建立後,但並沒有許可權,因此必須授予相應的系統許可權和對象許可權,命令如下

SQL> grant owb_user to role1;

  刪除角色一般是dba 來執行的,如果是其他使用者則要求該使用者具有 drop any role系統許可權;

SQL>  drop role role2;--刪除角色

  使用  select * from dba_roles  可以顯示使用者中所有的角色。

  使用命令語句 select privilege,admin_option from role_sys_privs where role='角色名稱' 可以顯示角色具有的系統許可權,這裡用角色OLAP_USER查看系統許可權。

SQL> select privilege,admin_option from role_sys_privs where role='OLAP_USER';

PRIVILEGE ADMIN_OPTION
---------------------------------------- ------------
CREATE CUBE BUILD PROCESS NO
CREATE CUBE DIMENSION NO
CREATE JOB NO
CREATE MEASURE FOLDER NO
CREATE TABLE NO
CREATE VIEW NO
CREATE SEQUENCE NO
CREATE CUBE

  好的,今天就總結到這裡吧!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.