Oracle 18c新特性:Schema-Only 帐号提升应用管理安全性

简介:

在 Oracle 18c 中,一个特殊类型的帐号被引入到数据库当中,这特特性被称为 Schema-Only 帐号,这个帐号通过 NO AUTHENTICATION 语句建立,没有密码,也就不允许直接登录,所以这种帐号类型是 纯模式类型

1df9d6e6b56a9d7b49f5c5e6c6a0c23edce698b1

帐号不能直接登录也就具备了天然的安全受益:

可以强制通过应用(Application)来访问数据;

保护对象安全,例如阻止可能的误删除(DROP)操作;

Schema-Only账户具有一些限制:

不能被授予系统管理权限,如(SYSDBA、SYSASM)等;

不能通过DB Link访问;

只支持DB实例,不支持ASM实例;

针对这个特性,DBA_USERS 视图增加了一个新的字段 AUTHENTICATION_TYPE 用于标识帐号属性,当创建Schema-Only 帐号时显示为 NONE否则会显示 PASSWORD。

下面让我们通过简单的测试来看看这个新特性,首先在一个 PDB 上创建 NO AUTHENTICATION 的帐号,用户名是 enmotech:

SQL> connect / as sysdba

Connected.

SQL> select name from v$pdbs;

NAME

---------------------------------------

PDB$SEED

ORCLPDB1


SQL> alter pluggable database ORCLPDB1 open;

Pluggable database altered.


SQL> alter session set container=ORCLPDB1;

Session altered.


SQL> create user enmotech NO AUTHENTICATION;

User created.

SQL> grant create session,create any table,create any view to enmotech;

Grant succeeded.

SQL> exec print_table('select username,password,password_versions,account_status,authentication_type from dba_users where username=''ENMOTECH''');

USERNAME : ENMOTECH

PASSWORD :

PASSWORD_VERSIONS :

ACCOUNT_STATUS : OPEN

AUTHENTICATION_TYPE : NONE

-----------------

这个帐号没有口令,自然就无法直接登录,我们可以通过用户代理来访问这个用户,代理是很早的一个数据库功能,现在有了新的作用。

我们在 ORCLPDB1 创建一个新的用户 yhem,这个用户仅有 create session 权限;

SQL> create user yhem identified by enmotech;


User created.


SQL> grant create session to yhem;


Grant succeeded.

授予用户 yhem 代理权限,通过该用户可以连接到 enmotech 这个受限用户,以下示范中 bethune 是我建立的一个 TNS 连接串名:

SQL> alter user enmotech grant connect through yhem;


User altered.


SQL> connect yhem[enmotech]/enmotech@bethune

Connected.


SQL> show user

USER is "ENMOTECH"

SQL> create table acoug (id number,name varchar2(200));

Table created.


SQL> drop table acoug;


Table dropped.

基本上,这就是新特性的基本展示,最核心的功能,是可以将 Schema-Only 用户的对象增删数据权限授予应用用户,就防范了模式用户直接访问可能带来的种种风险。

验证一下,纯模式用户不能被授予 SYSDBA 权限,其角色切换也很简单,授予密码就解除了 NO AUTHENTICATION 状态,回收SYSDBA权限才可以重新NO AUTHENTICATION 。

SQL> grant sysdba to enmotech;

grant sysdba to enmotech

*

ERROR at line 1:

ORA-40366: Administrative privilege cannot be granted to this user.


SQL> alter user enmotech identified by eygle;


User altered.


SQL> grant sysdba to enmotech;


Grant succeeded.


SQL> alter user enmotech no authentication;

alter user enmotech no authentication

*

ERROR at line 1:

ORA-40367: An Administrative user cannot be altered to have no authentication

type.


SQL> revoke sysdba from enmotech;


Revoke succeeded.


SQL> alter user enmotech no authentication;


User altered.

当然也可以在 CDB 中创建 COMMON 用户,指定其为 NO AUTHENTICATION :

SQL> connect / as sysdba

Connected.

SQL> create user c##enmo no authentication;


User created.


SQL> set serveroutput on


SQL> exec print_table('select con_id,username,authentication_type from cdb_users where username=''C##ENMO''');

CON_ID : 1

USERNAME : C##ENMO

AUTHENTICATION_TYPE : NONE

-----------------

CON_ID : 3

USERNAME : C##ENMO

AUTHENTICATION_TYPE : NONE

-----------------

至于这个小特性在实践中是否能发挥作用,大家可以留言表达一下各自的观点。


原文发布时间为:2018-11-8

本文作者:盖国强

本文来自云栖社区合作伙伴“数据和云 ”,了解相关信息可以关注“数据和云”。

相关文章
|
4月前
|
SQL Oracle 关系型数据库
Win10下安装Oracle 18c
Win10下安装Oracle 18c
|
4月前
|
Oracle 关系型数据库 数据管理
.NET医院检验系统LIS源码,使用了oracle数据库,保证数据的隔离和安全性
LIS系统实现了实验室人力资源管理、标本管理、日常事务管理、网络管理、检验数据管理(采集、传输、处理、输出、发布)、报表管理过程的自动化,使实验室的操作人员和管理者从繁杂的手工劳作中解放出来,提高了检验人员的工作效率和效益,降低了劳动成本和差错发生率。
|
SQL 存储 Oracle
在Oracle 12c中,在RMAN方面有哪些增强的新特性?
在Oracle 12c中,在RMAN方面有哪些增强的新特性?
147 0
|
Oracle 关系型数据库 数据库
在RHEL 6.5上静默安装Oracle 18c
在RHEL 6.5上静默安装Oracle 18c
78 0
|
SQL 存储 Oracle
PostgreSQL Oracle 兼容性 - Oracle 19c 新特性在PostgreSQL中的使用
PostgreSQL Oracle 兼容性 - Oracle 19c 新特性在PostgreSQL中的使用
2795 0
|
SQL 存储 Oracle
PostgreSQL Oracle 兼容性 - Oracle 19c 新特性在PostgreSQL中的使用
标签 PostgreSQL , Oracle 兼容性 , Oracle 19c 背景 《PostgreSQL 覆盖 Oracle 18c 重大新特性》 Oracle 19c 新特性摘自盖老师《Oracle 19c 新特性及官方文档抢鲜下载》文章,其中有一些特性在PostgreSQL中很早以前已经支持。本文旨在介绍PG如何使用这些特性。 1.Data Guard 备库DML自动重定向
676 0
|
Oracle 关系型数据库 Shell
RHEL 7.6 安装 Oracle 18c RAC
RHEL 7.6 安装 Oracle 18c RAC第一部分 安装规划 虚拟环境 VirtualBox 6.0 OS 版本 Red Hat Enterprise Linux Server release 7.
1932 0
|
存储 关系型数据库 数据库
Oracle 11g 新特性(一)-- 虚拟列
数据库版本: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bitOracle11g 增加了虚拟列的新特性, 具体说明如下:1> 只能在堆组织表(普通表)上创建虚拟列,不能在索引组织表、外部表、临时表上创建虚拟列2> 虚...
1299 0
|
12天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
52 7

推荐镜像

更多