快速搞懂Oracle 19c 安全新特性 Schema Only Accounts

Posted SQLplusDB

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速搞懂Oracle 19c 安全新特性 Schema Only Accounts相关的知识,希望对你有一定的参考价值。

文章目录

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

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](http://dwz.date/ab7F)
>User Accounts

http://dwz.date/ab7M
>Introduction to Schema Objects

http://dwz.date/ab7N
>Schema Objects

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)


--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"

Schema Only Accounts (19c)

19c 对Schema Only Accounts特性进行了加强,新增加了如下内容:

  1. 取消了无法授予管理员权限的限制,将sysdba等管理用户赋予Schema Only Account。

  2. 为了更强的安全性,除sys,system的预定义用户都默认设置为Schema Only Accounts

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相关内容,希望对你有所帮助。

以上是关于快速搞懂Oracle 19c 安全新特性 Schema Only Accounts的主要内容,如果未能解决你的问题,请参考以下文章

快速搞懂Oracle 19c安全新特性 Privilege Analysis(权限分析)

快速搞懂Oracle 19c 安全新特性 Schema Only Accounts

快速搞懂Oracle 19c 安全新特性 Schema Only Accounts

快速搞懂Oracle 19c 安全新特性 Schema Only Accounts

Oracle 19c 新特性 Automatic indexing 自动化索引

圣诞快乐:Oracle Database 19c 的10大新特性一览