在Oracle12C中,用戶權(quán)限的管理相對傳統(tǒng)的 Oracle 單數(shù)據(jù)庫環(huán)境稍有不同。在多租戶環(huán)境中有兩種類型的用戶。
創(chuàng)新互聯(lián)公司專注于荔灣企業(yè)網(wǎng)站建設(shè),自適應網(wǎng)站建設(shè),購物商城網(wǎng)站建設(shè)。荔灣網(wǎng)站建設(shè)公司,為荔灣等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站建設(shè),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
①:共同用戶(Common User): 該用戶存在所有容器 (根和所有的 Pdb) 中。
②:本地用戶(Local User): 用戶只有在特定的 PDB 中存在。同樣的用戶名中可以存在多個Pdb中創(chuàng)建,但它們之間沒有關(guān)系。
同樣,有兩種類型的角色:如
①:共同角色(Common Role): 該角色在所有容器 (根和所有的 Pdb) 中。
②:本地角色(Local Role): 該角色只存在于特定的 PDB。可以在多個 Pdb中創(chuàng)建相同的角色名稱,但它們之間沒有關(guān)系。
一些 DDL 語句有擴充,以使他們能夠定向到當前容器還是所有容器的CONTAINER子句。它的使用將在以下各節(jié)中進行演示。
注意:
在 cdb 中創(chuàng)建公共用戶的時候, pdbs 中也會創(chuàng)建相同用戶。若CDB 下 GRANT 命令賦權(quán),如果賦權(quán)時未指定container=all,則賦權(quán)只在CDB中生效,并不會在PDB中生效,這個用戶要能夠訪問PDB,需要切換到 pdb 再賦權(quán)。。若賦權(quán)時指定 container=all,則賦權(quán)在CDB中生效,也在PDB中生效。
1、在CDB中,給用戶賦權(quán)時未指定container=all:
SQL> show con_name;
CON_NAME
------------------------------
CDB$ROOT
SQL> create user c##zhang identified by zhang;
SQL> grant create session to c##zhang; --賦權(quán)給用戶,這個時候開啟另一個窗口使用該用戶登錄pdb的時候是沒有權(quán)限的,如下:
[oracle@localhost ~]$ sqlplus c##zhang/zhang@192.168.2.100/testpdb
SQL*Plus: Release 12.2.0.1.0 Production on Tue Jul 18 15:15:51 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.
ERROR:
ORA-01045: user C##ZHANG lacks CREATE SESSION privilege; logon denied
----切換到pdb中,給用戶賦權(quán)就可以登錄了:
SQL> alter session set container=testpdb;
SQL> grant create session to c##zhang;
2、在CDB中,給用戶賦權(quán)時指定container=all:
SQL> create user c##zhang1 identified by zhang;
SQL> grant create session to c##zhang1 container=all;
3、創(chuàng)建公共角色:
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> create role c##role; ---創(chuàng)建角色
SQL> grant select on dba_objects to c##role container=all; --給這個角色加權(quán)限
SQL> grant c##role to c##zhang1 container=all; --將角色賦給公共用戶
SQL> alter session set container=testpdb; ---切換到pdb
SQL> grant c##role to admin; ---也可以把這個角色賦予pdb中的本地用戶
4、本地角色
本地角色是以類似的方式到 pre-12 c 數(shù)據(jù)庫創(chuàng)建的。每個 PDB 可以具有與匹配的名稱,因為當?shù)氐淖饔梅秶鷥H限于當前 PDB 的角色。
必須滿足以下條件。
條件:
①:必須連接到具有CREATE ROLE權(quán)限的用戶。
②:如果您連接到公共用戶,容器必須設(shè)置為本地 PDB。
③:角色名稱為本地角色不必須與"C##"或"c##"作為前綴。
④:角色名稱必須是唯一在 PDB 內(nèi)。
⑤:本地角色可以賦權(quán)給公共用戶(作用范圍局限于pdb內(nèi)操作,不影響CDB權(quán)限)或者本地用戶。如:
SQL> show con_name;
CON_NAME
------------------------------
TESTPDB
SQL> create role pdb_role; ---創(chuàng)建角色
SQL> grant select on dba_tables to pdb_role; --給角色加權(quán)限
SQL> grant pdb_role to c##zhang; --將角色賦予公共用戶
SQL> grant pdb_role to admin; ---將角色賦予本地用戶
標題名稱:Oracle12C多租戶管理用戶、角色、權(quán)限
分享URL:http://muchs.cn/article22/ipgccc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、小程序開發(fā)、軟件開發(fā)、企業(yè)網(wǎng)站制作、App設(shè)計、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)