docker中安裝oracle,以及oracle登陸、創建用戶、用戶授權[很詳細的教程]

注:確認你已經安裝了docker, docker案子網上有很多教程,我也有寫, 一搜一大堆,所以這裏就不累贅來講述。

在docker下去安裝, 我使用的是 docker鏡像列表中oracle11g — version: 11.2.0.2 ,鏡像名爲 jaspeen/oracle-xe-11g ,一直在使用,很穩定,所以推薦。
在這裏插入圖片描述

安裝步驟:

1、直接拉取鏡像:docker pull jaspeen/oracle-xe-11g (沒有的話可以使用 docker search oracle 搜索一個鏡像,拉取成功後可以看到如下)
在這裏插入圖片描述2、下載完成後就運行鏡像文件:docker run -p 1521:1521 --name oracle_11g -d --restart=always jaspeen/oracle-xe-11g
3、進入使用docker ps -a 查看鏡像是否啓動,剛安裝的默認是啓動好了的,如果沒啓動,使用 docker start oracle 去啓動。[啓動成功後,可以看到如下]
在這裏插入圖片描述
4、進去oracle容器去設置dba密碼等,也可以直接在裏面操作sql : docker exec -it oracle_11g /bin/bash
在這裏插入圖片描述

進入oracle後:

1、oracle默認是安裝在oracle用戶下的,所以下 su oracle
2、去找到sqlplus 命令所在目錄, 本鏡像是在:/u01/app/oracle/product/11.2.0/xe/bin 下。
[也可以自己配置一個環境變量,這就不累贅了]
在這裏插入圖片描述 3、進入目錄下,使用 ./sqlplus / as sysdba 進行登陸, 這樣就進入oracle了。[這兒沒有使用用戶名、密碼是因爲默認操作系統驗證已經通過,所以不用輸入, 也可以自己輸入,不影響。在目錄下使用命令記得加: ./ ]
一般使用登陸方式:
> sqlplus /nolog
> conn user/pswd
[這樣的話,沒有日誌,是不能看到密碼的,直接登陸的話:sqlplus conn user/pswd 這種情況別人是可以看到密碼的。]
在這裏插入圖片描述
在這裏插入圖片描述
4、修改dba的密碼:
> alter user sys identified by newpassword;
> alter user system identified by newpassword;
> alter profile default limit PASSWORD_LIFE_TIME UNLIMITED [設置密碼時效,可以不管]
現在就可以通過dba帳號進行登陸了, 也可以使用工具進行登陸,默認SID :XE

創建用戶並授權:

一般給別人不可能給DBA帳號,所以必須爲其創建帳號:
1、create user xxx identified by password;
2、創建後你會發現你不能登陸,是因爲沒有授權,所以需要授權登陸權限:grant create session to xxx
3、登陸後你發現你沒法建表、也沒有表目錄(使用管理工具的看不到你建的表的列表)等,還是權限不夠,所以繼續授權:
> grant create table,unlimited tablespace to xxx;
> grant select any table to xxx;
> GRANT UPDATE ANY TABLE,DROP ANY TABLE,INSERT ANY TABLE TO xxx
給角色授予了select any table 權限後發現還是不能查詢系統表,原因:
與oracle 的參數O7_DICTIONARY_ACCESSIBILITY有關;該參數默認是false,這種情況下,select any table是不包含sys用戶下的表的權限的。如果要select any table 包含sys下的表,則需將該參數改爲true後將數據庫重啓才生效。
即執行一下語句:> alter system set O7_DICTIONARY_ACCESSIBILITY=true scope=spfile;
再重啓數據庫就ok啦。
在這裏插入圖片描述以上就是全部,希望對大家有幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章