快速搞懂19c 數據庫安全新特性 (一)Schema Only Accounts

關鍵字(Keyword):19c 數據庫安全 新特性 Schema Only Accounts

本文目錄:

  • User(用戶) VS Schema(模式)
  • Schema Only Accounts (18c)
    • Schema Only Accounts測試例 (18c)
    • 配置single session proxy方式訪問
  • Schema Only Accounts (19c)
    • Schema Only Accounts測試例(19c)

01

User(用戶) VS Schema(模式)

首先,我們明確一下User(用戶)和Schema(可以翻譯成模式,但是交流中基本上都使用英文)的概念。 User(用戶)可以理解為訪問數據庫的賬號,用於標識一系列的權限(Privileges),角色(Roles )定義等,可以包括系統管理用戶(administrative user accounts 如sys,system)和應用程序用戶(application users 如用戶自己創建的用戶)。 Schema(模式)可以理解為數據庫對象的集合,包含如:表、視圖、存儲過程、索引等各種對象。 在Oracle數據庫中每個User(用戶)都默認擁有一個缺省Schema,並且schema名等於用戶名,所以Schema看上去和用戶名一樣。 下面是官方文檔中的一個例子,HR用戶擁有一個HR schema,在HR schema中包含了employees表,索引等對象。

▲Figure 2-1 HR Schema http://dwz.date/ab7M

參考:(鏈接為縮短的網址)

    Release 19 Database Concepts      http://dwz.date/ab7F      >User Accounts        http://dwz.date/ab7M      >Introduction to Schema Objects        http://dwz.date/ab7N      >Schema Objects

02

Schema Only Accounts (18c)

為了更好的數據庫安全角度考慮,18c 開始可以創建Schema Only的賬戶,這種賬戶可以僅保存數據對象,不允許客戶端直接連接(但可以使用single session proxy方式連接)。 Schema Only的賬戶主要特性如下:

・可以根據需要,分配給這些帳戶密碼,使其變成普通賬戶  ・該特性適用於管理員帳戶,也適用於非管理員帳戶。  ・這些帳戶只能在數據庫實例上創建,而不能在ASM中創建  ・可以授予系統特權(例如CREATE ANY TABLE)和管理員角色(例如DBA)  ・可以根據授予它們的特權來創建表或過程之類的對象。  ・可以使用single session proxy方式配置代理身份驗證進行連接。

Schema Only的賬戶無法通過DB Linke連接,並且在18c版本中無法授予SYSDBA,SYSOPER,SYSBACKUP,SYSKM,SYSASM,SYSRAC,SYSDG管理員權限。 參考:

    Release 18 Security Guide      http://dwz.date/ab7P      >Schema Only Accounts

Schema Only Accounts測試例 (18c)

以下為Schema Only Accounts測試例 (18c):```    --1. 創建Schema Only Account  --create user <username> no authentication;    例:  SQL> create user test no authentication;  --確認用戶信息  SQL> select username,account_status,authentication_type from dba_users where username='TEST';        USERNAME                  ACCOUNT_STATUS       AUTHENTI      ------------------------- -------------------- --------      TEST                      OPEN                 NONE★    --2.修改Schema Only Account為普通用戶  --alter user <username> identified by <password>;    例:  SQL> alter user test identified by test;  SQL> grant dba to test;  --確認用戶信息  SQL> select username,account_status,authentication_type from dba_users where username='TEST';        USERNAME                  ACCOUNT_STATUS       AUTHENTI      ------------------------- -------------------- --------      TEST                      OPEN                 PASSWORD★    --測試連接  SQL> conn test/test  Connected.    --3. 修改普通用戶為Schema Only Account  --alter user <username> no authentication;    例:  SQL> conn / as sysdba  SQL> alter user test no authentication;    --確認用戶信息  SQL> select username,account_status,authentication_type from dba_users where username='TEST';        USERNAME                  ACCOUNT_STATUS       AUTHENTI      ------------------------- -------------------- --------      TEST                      OPEN                 NONE    --測試Schema Only Account連接,會報錯  SQL> conn test/test  ERROR:  ORA-01017: invalid username/password; logon denied  Warning: You are no longer connected to ORACLE.    --4. 18c 版本,將sysdba等管理用戶賦予Schema Only Account 會報錯  SQL> conn / as sysdba  SQL> grant sysdba to test;  grant sysdba to test  *  ERROR at line 1:  ORA-40366: Administrative privilege cannot be granted to this user.

配置single session proxy方式訪問

配置single session proxy方式訪問的方法如下:

conn / as sysdba  --設置通過代理用戶訪問  alter user  <用戶>  grant connect through <代理用戶>;  conn <代理用戶>[<用戶>]/<代理用戶密碼>  show user

測試例:(配置single session proxy)

--創建代理用戶  SQL> create user proxy_user identified by proxy_pass;  SQL> grant create session to proxy_user;    --設置可以通過代理用戶訪問test  SQL> alter user test grant connect through proxy_user;    --連接測試  SQL> conn proxy_user[test]/proxy_pass  SQL> show user  USER is "TEST"

02

Schema Only Accounts (19c)

19c 對Schema Only Accounts特性進行了加強,新增加了如下內容:

1. 取消了無法授予管理員權限的限制,將sysdba等管理用戶賦予Schema Only Account。  2. 為了更強的安全性,除sys,system的預定義用戶都默認設置為Schema Only Accounts

Schema Only Accounts測試例(19c)

Schema Only Accounts測試例(19c)如下:

--1. 19c 版本,可以將sysdba等管理用戶賦予Schema Only Account  conn / as sysdba  SQL> grant sysdba to test;  Grant succeeded.    --2. 預定義用戶的authentication_type變成NONE  SQL> select username,account_status,authentication_type,oracle_maintained from dba_users order by authentication_type;    USERNAME                ACCOUNT_STATUS    AUTHENTI O  ----------------------- ----------------- -------- -  LBACSYS                 LOCKED            NONE     Y  GSMCATUSER              LOCKED            NONE     Y  AUDSYS                  LOCKED            NONE     Y  OLAPSYS                 LOCKED            NONE     Y  GGSYS                   LOCKED            NONE     Y  DIP                     LOCKED            NONE     Y  SYSRAC                  LOCKED            NONE     Y  SYSBACKUP               LOCKED            NONE     Y  ORDSYS                  LOCKED            NONE     Y  REMOTE_SCHEDULER_AGENT  LOCKED            NONE     Y  DVF                     LOCKED            NONE     Y  DBSNMP                  LOCKED            NONE     Y  GSMADMIN_INTERNAL       LOCKED            NONE     Y  MDSYS                   LOCKED            NONE     Y  XDB                     LOCKED            NONE     Y  WMSYS                   LOCKED            NONE     Y  OUTLN                   LOCKED            NONE     Y  DBSFWUSER               LOCKED            NONE     Y  DVSYS                   LOCKED            NONE     Y  APPQOSSYS               LOCKED            NONE     Y  GSMUSER                 LOCKED            NONE     Y  MDDATA                  LOCKED            NONE     Y  SI_INFORMTN_SCHEMA      LOCKED            NONE     Y  ORDDATA                 LOCKED            NONE     Y  SYS$UMF                 LOCKED            NONE     Y  GSMROOTUSER             LOCKED            NONE     Y  OJVMSYS                 LOCKED            NONE     Y  SYSDG                   LOCKED            NONE     Y  SYSKM                   LOCKED            NONE     Y  ORACLE_OCM              LOCKED            NONE     Y  ORDPLUGINS              LOCKED            NONE     Y  CTXSYS                  EXPIRED & LOCKED  PASSWORD Y  ANONYMOUS               EXPIRED & LOCKED  PASSWORD Y  XS$NULL                 EXPIRED & LOCKED  PASSWORD Y  SYS                     OPEN              PASSWORD Y  SYSTEM                  OPEN              PASSWORD Y  

參考:

18c new feature: Schema Only Account (Doc ID 2543817.1)    Release 19 Security Guide  http://dwz.date/ab7Q  >Schema Only Accounts    http://dwz.date/ab7S  >Default User Accounts Now Schema Only    http://dwz.date/ab7T  >Ability to Grant or Revoke Administrative Privileges to and from Schema-Only Accounts    http://dwz.date/ab7U  >Predefined Schema User Accounts Provided by Oracle Database

本文介紹了Oracle 19c 數據庫安全新特性 Schema Only Accounts相關內容,希望對你有所幫助。