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

勤奋不是嘴上说说而已,而是实际的行动,在勤奋的苦度中持之以恒,永不退却。业精于勤,荒于嬉;行成于思,毁于随。在人生的仕途上,我们毫不迟疑地选择勤奋,她是几乎于世界上一切成就的催产婆。只要我们拥着勤奋去思考,拥着勤奋的手去耕耘,用抱勤奋的心去对待工作,浪迹红尘而坚韧不拔,那么,我们的生命就会绽放火花,让人生的时光更加的闪亮而精彩。

导读:本篇文章讲解 快速搞懂Oracle 19c 安全新特性 (一)Schema Only Accounts,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/141604.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!