Oracle

在 Oracle 11g 中創建兩個數據庫

  • August 27, 2020

我是一名學生。我同時有作業和項目。

我希望我的項目數據庫和其他簡單數據庫分開。

我沒有選擇使用 MySQL 或其他,因為我的講師建議只使用 Oracle 11g 和 SQLPlus。

能否請您概述一下流程?

我是一名學生,我同時有作業和項目。所以我只希望我的項目數據庫和其他簡單的數據庫分開。

感謝你的一些出色的想法。

我知道“經驗豐富的”、“專業的”開發人員甚至不會想到這一點。

…我沒有選擇使用 MySQL 或其他,因為我的講師建議只使用 Oracle 11G 和 SQLPlus

把這個想法告訴你的講師。運氣好的話,他們會和我一樣印象深刻。

也就是說,Oracle 11不是SQL Server,創建 Oracle 數據庫非易事。很遺憾您無法訪問 Oracle 12,可插拔數據庫使生活變得更加輕鬆,但是如果您堅持使用 ‘11 …

我建議您在單個數據庫中使用模式來實現您的目標。

這是我將如何設置

$$ one of $$你的項目$$ s $$: 表空間可以獨立於任何其他表空間進行恢復,因此讓我們將所有“項目”內容放入它自己的表空間中:

create tablespace my_project 
  datafile '/.../my_project01.dbf' size 50M autoextend ; 

架構只是另一個帳戶。

create user my_project 
  identified by a_really_strong_password 
  default tablespace my_project 
  ; 
grant create session, resource to my_project ; 

顯然,要更改my_project 架構下的對象,您需要以架構所有者帳戶的身份登錄。但是,要僅使用這些對象,您可能應該在您和造成任何“傷害”之間保持“安全距離”。

從您的數據中“遠離”這一步是與數據庫良好合作的另一個重要步驟。

create role my_project_role 
  identified by a_proper_password ; 

角色會給

$$ update $$訪問模式中的對象,但只有在您將這些權限授予角色之後!您將需要以下許多內容,尤其是在添加任何新表之後。

grant delete, insert, select, update on my_project.table_1 to my_project_role ; 

如果您要讓其他人查看此內容,您可能還需要第二個角色來允許這樣做,但不要讓他們破壞任何東西:

create role my_project_read 
  identified by another_proper_password 
  ; 
grant select on my_project.table_1 to my_project_read ; 

最後,您需要一個自己的帳戶:

create user me 
  identified by yet_another_proper_password 
  ; 

grant create session, my_project_role to me ; 

alter user me default role none ; 

現在,當您登錄時,您需要使用其密碼啟動該角色,然後才能看到您的任何 my_project.* 對象。

set role my_project_role identified by a_proper_password ; 

好的,我承認這有點不方便,但安全。

也就是說,如果你和我一樣,大約一周後你會厭倦它,你會希望角色就在那裡,“預設”可用。

要實現這一點,請不要設置密碼並進行設置

$$ one of $$你的“預設”角色$$ s $$:

alter role my_project_role NOT IDENTIFIED ; 
alter user me default role all ; 

11gR2 或 11.2.0.4 不再受支持。你應該學習 12cR2 或 19C,最後是 20c。話雖如此,創建表空間、使用者和角色與創建數據庫是不一樣的。您仍然可以使用 Oracle 和 sqlplus 手動創建數據庫。以下是一些說明:

使用 CREATE DATABASE 語句創建數據庫

完成所有這些的捷徑是使用 dbca。Dbca 是一個 gui,它將引導您完成創建數據庫時將做出的所有決定。在菜單末尾,您可以選擇創建數據庫、將配置保存為模板或腳本。我目前沒有安裝 11g Oracle home。所以我不能確定選項。但是一種選擇應該是創建用於創建數據庫的腳本。您可以關閉創建數據庫的選項。

從了解創建數據庫時會發生什麼的角度來看,這是一個很好的練習。您可以做的另一件事是在創建數據庫後登錄到 sqlplus 並執行“ALTER DATABASE BACKUP CONTROLFILE TO TRACE;”。然後進入您的診斷跟踪目錄並讀取創建的文件。此 url 告訴您如何查找跟踪文件。查看該文件將告訴您哪些文件是數據庫的一部分以及它們所在的位置。

查找跟踪文件

引用自:https://dba.stackexchange.com/questions/274434